Ouaii Spout niikkk mon compte a moi aussi et en réel ^^ enfin bon je comprend pas furax tu nous montre des belles performance et la soudainement ca fait un bordel pour quoi ?
Devenez membre de la plus grande
communauté francophone sur le Forex
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading
Robot de trading
-
MisterM (invité)
-
Furax
si tout était simple il y a aurait 2 solutions :
Nous serions tous riches ou les EA seraient interdits... -
Harrakis
J'ai mis la main sur le code source d'un EA cette nuit.
j'ai fait plusieurs backtests dessus et les résultats sont hallucinants. Tellement que je me demande si c'est pas un piège pour avoir des visites sur le site ou un genre de rémunération par clic. Le résultat du backtest etait affiché en gros sur le site avec un lien pour le telecharger.
Ce qui me met la puce à l'oreille, c'est qu'en backtest il fonctionne nikel. Mais en live pas moyen d'ouvrir un trade.
800000€ en 2ans et en bidouillant un peu, 18 milliards sur 2ans (là mais MDR quoi)
voilà le code source pour ceux qui veulent faire joujou, ou trouver pkoi il démarre pas
Codeextern string rem1="//---- Definition Trend et Breakout"; extern int BreakoutPeriode=1; extern int TrendPeriode=3; extern string rem2="//---- Order"; extern bool OnlyShort=false; extern bool OnlyLong=false; extern int MaxTradesPerBar=3; extern int StopLoss=40; extern int BreakEven=30; extern int SeuilSL = 330; extern int PartialTP1=550; extern int PartialRatio1=30; extern int PartialTP2=1100; extern int PartialRatio2=70; extern int TakeProfit=1500; extern int Slippage=30; extern int MaxSpread=22; extern int Magic=12387; extern string rem3="//---- MM: 1.Fixed 2.Geometrical 3.Proportional 4.Smart 5.TSSF"; extern int MMType=2; extern double FixedLots=0.1; extern int GeometricalFactor=3; extern int ProportionalRisk=90; extern int LastXTrades=10; extern double DecreaseFactor=2; extern double TSSFTrigger1=1; extern int TSSFRatio1=50; extern double TSSFTrigger2=2; extern int TSSFRatio2=75; extern double TSSFTrigger3=3; extern int TSSFRatio3=100; extern string rem4="//---- Debug"; extern bool DebugMode=false; double Lots; bool SignalBuy=false; bool SignalSell=false; double highrange, lowrange; double trend, trend1, signaltrend; datetime LastTradeTime=0; int MaxTrades=false; int FlagPartial=0; int OrdersThisBar; int orders; int losses; int nbDecimales; int i; int tradegagnant,tradeperdant; double profit, perte, avgwin, avgloss, prcwin, tssf; bool TradingRange; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- nbDecimales = 5; double tempPoint = Point; while(tempPoint < 1) { tempPoint *= 10; nbDecimales++; } //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (OrdersTotal()>0) OrdersList(); if (OrdersTotal()<1) FlagPartial=0; highrange=High[iHighest(NULL,0,MODE_HIGH,BreakoutPeriode,1)]; lowrange=Low[iLowest(NULL,0,MODE_LOW,BreakoutPeriode,1)]; trend=iMA(NULL,0,TrendPeriode,0,MODE_SMMA,PRICE_MEDIAN,0); trend1=iMA(NULL,0,TrendPeriode,0,MODE_SMMA,PRICE_MEDIAN,1); signaltrend=trend-trend1; if (Time[0]==LastTradeTime&&OrdersThisBar>=MaxTradesPerBar) {MaxTrades=true;} else {MaxTrades=false;} if (Time[0]!=LastTradeTime) {OrdersThisBar=0;} if (Close[0]==High[0] &&Close[0]>highrange &&signaltrend>0 &&OrdersTotal()<1 &&MaxTrades==false &&Ask-Bid<=MaxSpread*Point &&!OnlyShort) SignalBuy=true; if (Close[0]==Low[0] &&Close[0]<lowrange &&signaltrend<0 &&OrdersTotal()<1 &&MaxTrades==false &&Ask-Bid<=MaxSpread*Point &&!OnlyLong) SignalSell=true; //+------------------------------------------------------------------+ //| Money Management | //+------------------------------------------------------------------+ if (SignalBuy==true||SignalSell==true) { if (MMType==1&&OrdersTotal()<1)Lots=FixedLots; if (MMType==2&&OrdersTotal()<1)Lots=0.1*MathSqrt(AccountBalance()/1000)*GeometricalFactor; if (MMType==3&&OrdersTotal()<1)Lots=AccountEquity()/Close[0]/1000*ProportionalRisk/100; if (MMType==4&&OrdersTotal()<1) {orders=HistoryTotal(); // Historique des ordres losses=0; // Nombre de trade perdants consécutifs Lots=NormalizeDouble(AccountFreeMargin()*ProportionalRisk/10000,1); for(int i=orders-1;i>=orders-LastXTrades;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==False) { Print("Erreur dans l historique!"); break; } if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue; //---- if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } if(losses>1) Lots=NormalizeDouble(Lots-Lots*losses/DecreaseFactor,1); } if (MMType==5&&OrdersTotal()<1) { orders=HistoryTotal(); tradegagnant=0; tradeperdant=0; profit=0; perte=0; avgwin=0; avgloss=0; prcwin=0; tssf=0; for(int j=orders-1;j>=orders-LastXTrades;j--) { if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)==False) { Print("Erreur dans l historique!"); break; } if(OrderProfit()>=0) { tradegagnant++; profit=profit+OrderProfit(); } else { tradeperdant++; perte=perte+OrderProfit(); } } if (orders>LastXTrades)avgwin=profit/tradegagnant; if (orders>LastXTrades)avgloss=perte/tradeperdant; if (orders>LastXTrades)prcwin=tradegagnant/(tradegagnant+tradeperdant); if (orders>LastXTrades)tssf=avgwin/avgloss*((1.1-prcwin)/(prcwin-0.1)+1); if(tssf<=TSSFTrigger1)Lots=0.1; if(tssf>TSSFTrigger1&&tssf<=TSSFTrigger2)Lots=NormalizeDouble(AccountFreeMargin()*ProportionalRisk/TSSFRatio1*100/100000,1); if(tssf>TSSFTrigger2&&tssf<=TSSFTrigger3)Lots=NormalizeDouble(AccountFreeMargin()*ProportionalRisk/TSSFRatio2*100/100000,1); if(tssf>TSSFTrigger3)Lots=NormalizeDouble(AccountFreeMargin()*ProportionalRisk/TSSFRatio3*100/100000,1); } Lots = arrondirLots(Lots); double minLot = MarketInfo(Symbol(), MODE_MINLOT); double maxLot = MarketInfo(Symbol(), MODE_MAXLOT); if (Lots<minLot)Lots=minLot; if (Lots>maxLot)Lots=maxLot; } //+------------------------------------------------------------------+ //| Passage des ordres | //+------------------------------------------------------------------+ if (SignalBuy==true) { OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"MindFulNess",Magic,Blue); SignalBuy=false; LastTradeTime=Time[0]; OrdersThisBar++; } if (SignalSell==true) { OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,"MindFulNess",Magic,Red); SignalSell=false; LastTradeTime=Time[0]; OrdersThisBar++; } if (DebugMode==true) { Comment ( "OboTrading, @2009 Christophe Sangouard", "\nStopLoss="+StopLoss*Point, "\nStopLevel="+DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL),0), "\nSpread= "+DoubleToStr(MarketInfo(Symbol(),MODE_SPREAD),0), "\nLastError="+GetLastError() ); } //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ void OrdersList() { for (int cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS); if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic) { if (OrderType()==OP_BUY) { //---- BreakEven if (BreakEven>0 &&Bid-OrderOpenPrice()>Point*BreakEven &&NormalizeDouble(OrderStopLoss(),nbDecimales)<NormalizeDouble(OrderOpenPrice(),nbDecimales)) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,LightGreen); return(0); } //---- Augmentation du SL au delà de zéro if (SeuilSL>0 &&Bid-OrderOpenPrice()>Point*SeuilSL &&NormalizeDouble(OrderStopLoss(),nbDecimales)<NormalizeDouble(OrderOpenPrice()+StopLoss*Point,nbDecimales)) { OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+StopLoss*Point,nbDecimales),OrderTakeProfit(),0,LightGreen); return(0); } //---- PartialTP1 if (Bid-OrderOpenPrice()>Point*PartialTP1&&FlagPartial==0&&PartialTP1>0&&OrderLots()*PartialRatio1*PartialRatio2/10000>=0.1) { OrderClose(OrderTicket(),arrondirLots(OrderLots()*PartialRatio1/100),Bid,Slippage,Red); FlagPartial=1; return(0); } //---- PartialTP2 if (Bid-OrderOpenPrice()>Point*PartialTP2&&FlagPartial==1&&PartialTP2>0) { OrderClose(OrderTicket(),arrondirLots(OrderLots()*PartialRatio2/100),Bid,Slippage,Red); FlagPartial=2; return(0); } } if (OrderType()==OP_SELL) { //---- BreakEven if (BreakEven>0 &&OrderOpenPrice()-Ask>Point*BreakEven &&NormalizeDouble(OrderStopLoss(),nbDecimales)>NormalizeDouble(OrderOpenPrice(),nbDecimales)) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Yellow); return(0); } //---- Augmentation du SL au delà de zéro if (SeuilSL>0 &&OrderOpenPrice()-Ask>Point*SeuilSL &&NormalizeDouble(OrderStopLoss(),nbDecimales)>NormalizeDouble(OrderOpenPrice()-StopLoss*Point,nbDecimales)) { OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-StopLoss*Point,nbDecimales),OrderTakeProfit(),0,LightGreen); return(0); } //---- PartialTP1 if (OrderOpenPrice()-Ask>Point*PartialTP1&&FlagPartial==0&&PartialTP1>0&&OrderLots()*PartialRatio1*PartialRatio2/10000>=0.1) { OrderClose(OrderTicket(),arrondirLots(OrderLots()*PartialRatio1/100),Ask,Slippage,Red); FlagPartial=1; return(0); } //---- PartialTP2 if (OrderOpenPrice()-Ask>Point*PartialTP2&&FlagPartial==1&&PartialTP2>0) { OrderClose(OrderTicket(),arrondirLots(OrderLots()*PartialRatio2/100),Ask,Slippage,Red); FlagPartial=2; return(0); } } } } } double arrondirLots(double nbLots) { double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP); double tempDouble = nbLots + lotStep/2; tempDouble /= lotStep; int tempInt = tempDouble; return (tempInt*lotStep); }
-
furynick
je regarderai ça à l'occasion. -
Harrakis
Il m'a ouvert 4 positions pour le moment, toutes rouges. C'est assez fidèle au journal du backtest en fait. je vais le laisser tourner pour le fun.
mais je pense que le SL est trop limite, il cloture quasiement en suivant lol. -
Harrakis
arf, désolé c'est pas la bonne image. c'est un test que j'ai fait sur un autre EA ...
Voivi celle du Trader fou : -
Maka1043
J'ai laissé tourner Spoutnik toute la nuit.
Ce matin, j'ai vu que j'avais perdu de l'argent (sur un compte démo).
En regardant l'historique des trades, je vois que Spoutnik a acheté de EUR/JPY; le cours est descendu, à atteint le S/L...donc clôture des positions....avant de remonter et de générer un profit.
Je pense pour qu'il ne spout nike pas le compte, la version 1.05 (sans le S/L) apparait comme meilleure.
-
furynick
Il suffit d'augmenter le stoploss dans les paramètres, disons un peu avant le margin call juste au cas où. -
MisterM (invité)
je repet encore ^^
mais il n'y a pas de T/P Pour moi normal ?
-
furynick
Si j'ai bien lu, les profits sont gérés directement par le robot. -
Harrakis
Alors aujourd'hui c'était une journée de tests pas banale.
Pour ceux qui ont pas suivi, j'ai mis le code d'un robot qui promet au minimum 800000€ en 2 ans. Le backtest à l'appui sur le site source que je ne citerais pas :).
Pour le fun car n'y croyant pas 1s, je me suis lancé dans les tests. J'ai backtesté à mort en suivant les même protocoles que l'auteur. Pour m'apercevoir que sa modélisation n'était fiable qu'a 42% (lol).J'ai donc fait ma propre modélisation avec des sources sûre à 90%, et la surprise, j'obtiens la même courbe que lui mais dans l'autre sens (re lol). Mr l'auteur, faut-il lire votre courbe à l'envers ??.
Pour les tests en live, il prend bien des positions, mais il les perd toutes ou cloture à 00.
Là ça devient carrément poilant. En fouillant un peu sur le fofo du site source, je trouve un fil expliquant qu'il manque quelques settings au code pour le faire fonctionner correctement et l'auteur se propose de les fournir via un système allopass.
Sans me vanter, je hante le Web depuis 15ans et allopass j'arrive à le contourner sans tp de pb. Donc je test et je tombe sur le lien des settings, clickage sur download et là une belle erreur 404 !
Halala le web, paradis des arnaqueurs :)
Voilà, un post qui sert à rien mais je me suis bien marré.
Les trades du bot qui gagne en négatif : -
antonin1021
qu'elle sont tes parametre exterieur, en backtest il m'ouvre aucune position? et le time frame
@furax
spoutnik ne m'ouvre aucune position depuis sa matin 7h! -
Harrakis
@antonin
Tu parles de quel EA, le robot fou ? ou mégadroid ? -
Furax
Comment gagner , avec 1000€, 250€ en 1 heures avec Spoutnik v1.06
J'ai déjà expliqué qu'il fallait lancer le robot au bon moment... -
Furax
une fois calé et lancé, Spoutnik choisit les parités au fur et à mesure de la progression et en vitesse de croisière.
-
Furax
Le money managment est automatique sur Spoutnik.
à partir d'environ 2100€ les lots doubles pour passer à 0.2 .
ensuite, tous les 1000€ environ, les lots gagnent 0.1 .
Pas vraiment exponentielle mais quand même...:)
Testé sur AlpariUK :
T/P 250
S/L 500
Quelques trades sur ZuluTrade aussi, provider "Furax". -
antonin1021
le robot fou désolé du manque de précision -
antonin1021
j'ai lu mais j'ai pas vraiment compris qu'elle et le bon moment :s -
Harrakis
@antonin
Je te mets des images avec les valeurs que j'utilises. t'as juste à modifier celles que j'ai entouré en rouge. les autres ça va.
Pour le time frame, j'utilise du D1.
Après les résultats sont tres variables d'un back à l'autre. TT dépend de la qualité de tes archives. -
Harrakis
@antonin
Voilà la suite.
En live j'ai tenté de mettre M30, mais il foire tt à cause du stop loss vraiment tres juste.
A mon avis il est fait pour tourner sur du D1.
Il tourne depuis 3H en D1 et toujours pas de trades. On verra demain si ça bouge.
Bon tests.
Exposez cette discussion :