Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Robot de trading

  • furynick

    Pour info sur les 189 dernières positions :

    bas moyen de 17 pips, le maxi étant de 237 pips

    profit moyen 5,7 pips, maxi 20,9 pips et mini 1,5 pips
  • MisterM

    Spoutnik je l'aime bien celui ci ^^
    Je te suis sur zulutrade furax ...:)
  • miczou1

    vivement que tu nous presente spoutnik...;
  • Furax

    Bilan de la semaine pour Spoutnik v1.03 sur ZuluTrade :

    99% de trades gagnants réels.
    1000 pips récupérés environ.

    Malheureusement, les gros boulets me collent encore et la semaine prochaine sera rapidement décisive, probablement dès lundi.

    EOT v1.01 m'a grillé 2 comptes démo dû au retournement du marché ce vendredi, décidément... les vendredis...
    Donc 2 comptes grillés pour 6 gagnants de quelques centaines d'euros avec dépos initial de 1000€ démo.

    ETP v1.01 reste modestement positif. Pas vraiment d'étincelles cette semaine.

    Merci de déposer vos bilans ici...:)

    Furax a joint une image
    G1165ED
  • Furax

    Je vous présente EB3, du même auteur.
    Adapté de "EarlyBird3".
    A back tester ce week end sans modération...:)

    Code
    //+------------------------------------------------------------------+ //| earlyBird3.mq4 26.05.2010 - 18:53 //| mit Hedge-Funktion //| Range-Break mit RSI-Filter +/-50 //| TrailingStop/Profit mit Vola-Filter //| DayTrading: je 3 Buy- u. Sell-Trades //| Modified and settings by Furax from "forexagone.com" //+------------------------------------------------------------------+ #property copyright "hansH" #property link "[email protected]" string Name ="RangeBreak3"; // ---- extern bool autoTrading = true; extern bool HedgeTrading = true; // ---- bool CommentDaten = true; // ***************************************************** // manuelle Entries extern int OrderTyp = 0; // extern // 0=Long&Short, 1=Long, 2=Short; // TakeProfit extern double OrderTP1 = 10; // 15 // was extern double OrderTP2 = 20; // 30 // was extern double OrderTP3 = 30; // 45 // was // StopLoss extern double OrderSL = 60; // 45 // was // TrailingStop/Profit extern double TrailingStop = 15; // 50 // was extern double TrailingRisk = 1; // 1.1 // was // Umwandlung double shortEntry, longEntry, TakeProfit, TrailingTP, StopLoss, TrailingSL; string Long_Selekt, Short_Selekt; // Einstieg u. Hinweis string ShortInfo = " short"; string LongInfo = " long"; //---- extern double Lots = 0.2; // was 0.1 // Trading-Zeiten extern int Start_Std = 1; // 6 Uhr TradeBeginn dtsch. Zeit // was 7 int Start_Min = 03; // extern // was extern int Schluss = 22; // 11, 21, 22 oder / bis // was 15 extern int Closing = 23; // 22:00 Uhr // was 17 int ZD; // 1=WZ, 2=SZ Zeit-Differenz // was ZD int inTime; // Tradingzeit // Zeit-Differennz-Korrektur int Sommerzeit = 87; // DayOfYear Beginn Sommerzeit int Winterzeit = 297; // DayOfYear Beginn Winterzeit // Break-Time extern int TimeStart = 1; // was 3 extern int TimeEnd = 25; // was 7 datetime Time_Start, Time_End, RectangleEnd; // ---- extern int RectangleHours = 72; // ---- bool PendingView = true; // ---- extern string TRADING°TESTER ="=== RangeBreak3 ==="; int MagicNumber = 1805100925; // ---- double clsBuyOrder, clsSellOrder; double opLongPos, opShortPos, shortTP, longTP; string OrderTxt, TxtCom, TxtTime, doubleTxt, PendingTyp, RSItrend; color col1=Gray, col2=Gray, col3=Silver, col4=Silver, col5=Silver, col1a=Gray, col2a=Gray; double Fakt, RSI; int cntHistBuy, cntHistSell; int i, Dig, opBar, cnt, oLP, oSP, offen, opOrders, opPos, LongIsOpen, ShortIsOpen; double Vola, Vola0; // ---------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------- int init() { } //---------- int deinit() { Comment(""); ObjectDelete("bar0"); ObjectDelete("bar0_Label"); ObjectDelete("opShort"); ObjectDelete("opShort_Label"); ObjectDelete("opLong"); ObjectDelete("opLong_Label"); ObjectDelete("aktuell"); ObjectDelete("aktuell_Label"); ObjectDelete("longTP"); ObjectDelete("longTP_Label"); ObjectDelete("shortTP"); ObjectDelete("shortTP_Label"); ObjectDelete("RangeL"); ObjectDelete("RangeL_Label"); ObjectDelete("RangeS"); ObjectDelete("RangeS_Label"); ObjectDelete("Trend"); ObjectDelete("Trend_Label"); } //--------- int start() { if(DayOfYear()>=Sommerzeit && DayOfYear()<=Winterzeit) ZD=2; else ZD=1; if(TimeHour(Time[0])<=5) { clsBuyOrder=0; clsSellOrder=0; } // if(TimeHour(Time[0])>= 3-ZD && TimeHour(Time[0])< 10-ZD) { TimeStart=3; TimeEnd= 7; } else // if(TimeHour(Time[0])>=10-ZD && TimeHour(Time[0])< 24 ) { TimeStart=6; TimeEnd=10; } Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeStart-ZD,":00")); Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeEnd-ZD, ":00")); RectangleEnd = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",Schluss-ZD, ":00")); // ---- Tradingzeit 1=ja, 0=nein if(DayOfWeek()>0 && DayOfWeek()<=5 && ((TimeHour(Time[0])==Start_Std-ZD && TimeMinute(Time[0])>=Start_Min) || TimeHour(Time[0])>Start_Std-ZD) && TimeHour(Time[0])< Schluss-ZD) inTime=1; else inTime=0; // ---- if(Close[0]>10) {Fakt=100; Dig=2; } else if(Close[0]<10) {Fakt=10000; Dig=4; } // ---- if(OrderSL!=0) StopLoss=OrderSL/Fakt; if(TrailingStop!=0) TrailingSL=TrailingStop/Fakt; // ************************************************************************ // ********** Selektion ********** (Anfang) ********** Selektion ********** // ---- Breakwerte RSI = iRSI(NULL,0,14,PRICE_OPEN,0); int BarStart = iBarShift(NULL,0,Time_Start,false); int BarEnd = iBarShift(NULL,0,Time_End ,false); double Top = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,BarStart-BarEnd,BarEnd))+2/Fakt; double Bottom = iLow (NULL,0,iLowest (NULL,0,MODE_LOW, BarStart-BarEnd,BarEnd))-2/Fakt; // ---- Entries if(RSI> 50) longEntry=Top; else longEntry =0; if(RSI<=50) shortEntry=Bottom; else shortEntry=0; // ---- Vola double V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16; V1=High[i+1]-Low[i+1]; V2=High[i+2]-Low[i+2]; V3=High[i+3]-Low[i+3]; V4=High[i+4]-Low[i+4]; V5=High[i+5]-Low[i+5]; V6=High[i+6]-Low[i+6]; V7=High[i+7]-Low[i+7]; V8=High[i+8]-Low[i+8]; V9=High[i+9]-Low[i+9]; V10=High[i+10]-Low[i+10]; V11=High[i+11]-Low[i+11]; V12=High[i+12]-Low[i+12]; V13=High[i+13]-Low[i+13]; V14=High[i+14]-Low[i+14]; V15=High[i+15]-Low[i+15]; V16=High[i+16]-Low[i+16]; Vola=(V1+V2+V3+V4+V5+V6+V7+V8+V9+V10+V11+V12+V13+V14+V15+V16)*Fakt/16; Vola0=(High[i]-Low[i])*Fakt; // ---- Rectangle ObjectDelete("bar0"); ObjectDelete("bar0_Label"); ObjectCreate("bar0", OBJ_RECTANGLE, 0, 0,0, 0,0); ObjectSet ("bar0", OBJPROP_STYLE, STYLE_SOLID); ObjectSet ("bar0", OBJPROP_COLOR, C'60,60,60'); ObjectSet ("bar0", OBJPROP_BACK, true); ObjectSet ("bar0", OBJPROP_TIME1 ,Time_End); // Time_Start // Time_End-1*60 ObjectSet ("bar0", OBJPROP_PRICE1,Top); ObjectSet ("bar0", OBJPROP_TIME2 ,MathMin(TimeCurrent(),RectangleEnd)); // Time_End od. TimeCurrent() ObjectSet ("bar0", OBJPROP_PRICE2,Bottom); // ********** Selektion ********** (Ende) ********** Selektion ********** // ********************************************************************** // -------------------------------------------------------------- // ---- bilanzierte, offene Positionen u. Pendings ermitteln ---- // -------------------------------------------------------------- int cnt = OrdersHistoryTotal(); // ---- geschlossene Positionen cntHistBuy=0; cntHistSell=0; for (int i=0; i < cnt; i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; if (TimeDayOfYear(OrderCloseTime()) == DayOfYear()) { if (OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) { clsBuyOrder = OrderOpenPrice(); cntHistBuy =cntHistBuy +1; } if (OrderType()==OP_SELL) { clsSellOrder = OrderOpenPrice(); cntHistSell=cntHistSell+1; } } } // TimeDayOfYear } // for(int // ---- Anzahl offene Positionen/Symbol opOrders=0; if(OrdersTotal()!=0) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if((OrderType()==OP_SELL || OrderType()==OP_BUY) && OrderSymbol()==Symbol()) { opOrders=opOrders+1; } } // for(cnt } // if(OrdersTotal // ---- Anzahl offene Positionen/Typ LongIsOpen=0; ShortIsOpen=0; for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { LongIsOpen=LongIsOpen+1; } if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { ShortIsOpen=ShortIsOpen+1; } } // -------------------------------------------------------------------------------- string lEntryTxt=DoubleToStr(longEntry,Digits); string sEntryTxt=DoubleToStr(shortEntry,Digits); // ---- int DiffL, DiffS; // ---- string BidTxt=DoubleToStr(Bid,Digits); string AskTxt=DoubleToStr(Ask,Digits); // ---- string longTxt, shortTxt; if(longEntry!=0) longTxt =DoubleToStr(longEntry,Digits); if(shortEntry!=0) shortTxt=DoubleToStr(shortEntry,Digits); // ---- ObjectDelete("longTP"); ObjectDelete("longTP_Label"); ObjectDelete("shortTP"); ObjectDelete("shortTP_Label"); ObjectDelete("opLong"); ObjectDelete("opLong_Label"); ObjectDelete("opShort"); ObjectDelete("opShort_Label"); // ---- if(OrdersTotal()!=0) { opShortPos=0; shortTP=0; opLongPos=0; longTP=0; for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { opShortPos=OrderOpenPrice(); shortTP=(opShortPos-Ask)*Fakt; col1=Red; } if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { opLongPos=OrderOpenPrice(); longTP= (Bid-opLongPos)*Fakt; col2=SpringGreen; } } // for(cnt } // if(OrdersTotal // -------------------------------------------- // ----------------- Objekte ------------------ // -------------------------------------------- if(opShortPos==0) {shortTP=0; col1=Gray; col1a=Gray;} if(opLongPos==0) {longTP=0; col2=Gray; col2a=Gray;} // ---- if(shortTP< 0) col1a=Yellow; if(shortTP> 0) col1a=Aqua; if(longTP < 0) col2a=Yellow; if(longTP > 0) col2a=Aqua; // ---- if(CommentDaten==true) { if(opShortPos!=0) { ObjectCreate("opShort", OBJ_LABEL, 0, 0, 0); ObjectSetText("opShort",DoubleToStr(opShortPos,Dig),9,"Tahoma", col1); ObjectSet("opShort", OBJPROP_CORNER, 0); ObjectSet("opShort", OBJPROP_XDISTANCE, 3); ObjectSet("opShort", OBJPROP_YDISTANCE, 11); ObjectCreate("shortTP", OBJ_LABEL, 0, 0, 0); ObjectSetText("shortTP","("+DoubleToStr(shortTP,0)+")",9,"Tahoma", col1a); ObjectSet("shortTP", OBJPROP_CORNER, 0); ObjectSet("shortTP", OBJPROP_XDISTANCE, 44); ObjectSet("shortTP", OBJPROP_YDISTANCE, 11); } if(opLongPos!=0) { ObjectCreate("opLong", OBJ_LABEL, 0, 0, 0); ObjectSetText("opLong",DoubleToStr(opLongPos,Dig),9,"Tahoma", col2); ObjectSet("opLong", OBJPROP_CORNER, 0); ObjectSet("opLong", OBJPROP_XDISTANCE, 85); ObjectSet("opLong", OBJPROP_YDISTANCE, 11); ObjectCreate("longTP", OBJ_LABEL, 0, 0, 0); ObjectSetText("longTP","("+DoubleToStr(longTP,0)+")",9,"Tahoma", col2a); ObjectSet("longTP", OBJPROP_CORNER, 0); ObjectSet("longTP", OBJPROP_XDISTANCE, 126); ObjectSet("longTP", OBJPROP_YDISTANCE, 11); } // ---- ObjectCreate("aktuell", OBJ_LABEL, 0, 0, 0); ObjectSetText("aktuell",StringSubstr(BidTxt,0,6),9,"Tahoma", col3); ObjectSet("aktuell", OBJPROP_CORNER, 0); ObjectSet("aktuell", OBJPROP_XDISTANCE, 172); ObjectSet("aktuell", OBJPROP_YDISTANCE, 11); // ---- Pending-Typ if(cntHistBuy <=0 && cntHistSell ==0 && RSI>50 && LongIsOpen<=0) {PendingTyp="*up*"; col4=Aqua; } else if(cntHistBuy <=0 && cntHistSell !=0 && RSI>50 && LongIsOpen<=0) {PendingTyp="*up*"; col4=Aqua; } else if(cntHistBuy <=0 && cntHistSell !=0 && RSI<50 && LongIsOpen<=0) {PendingTyp="*up*"; col4=Olive; } else if(cntHistSell<=0 && cntHistBuy ==0 && RSI<50 && ShortIsOpen<=0) {PendingTyp="*down*"; col4=Red; } else if(cntHistSell<=0 && cntHistBuy !=0 && RSI<50 && ShortIsOpen<=0) {PendingTyp="*down*"; col4=Red; } else if(cntHistSell<=0 && cntHistBuy !=0 && RSI>50 && ShortIsOpen<=0) {PendingTyp="*down*"; col4=Olive; } else {PendingTyp="-flat-"; col4=Gray; } ObjectCreate("Trend", OBJ_LABEL, 0, 0, 0); ObjectSetText("Trend",PendingTyp,12,"Arial Black", col4); ObjectSet("Trend", OBJPROP_CORNER, 0); ObjectSet("Trend", OBJPROP_XDISTANCE, 218); ObjectSet("Trend", OBJPROP_YDISTANCE, 4); } // if(CommentDaten==true) // ----------------------------------------------------- // ----------------- Text für Comment ------------------ // ----------------------------------------------------- double spread=MarketInfo(Symbol(),MODE_SPREAD)/10; // ---- Risk if(Vola0>=Vola*TrailingRisk && opOrders==1) string trail="Trailing!"; else trail=""; // ---- TxtCom if(Period()<5) TxtCom="Periode ändern: von M5 bis H1"; else TxtCom=""; // ---- TxtTime if(Start_Min<10) TxtTime=(Start_Std+":0"+Start_Min+" bis "+Schluss+":00 / "+Closing+" Uhr"); else TxtTime=(Start_Std+":"+Start_Min+" bis "+Schluss+":00 / "+Closing+" Uhr"); // ---- OrderTxt if(autoTrading==false) OrderTxt="Trading deaktiviert!"; else if(inTime==0) if(Start_Min<10) OrderTxt="DayTrading geschlossen bis "+Start_Std+":0"+Start_Min; else OrderTxt="DayTrading geschlossen bis "+Start_Std+":"+Start_Min; else if(OrderTyp==1) OrderTxt=">>>>> Long <<<<< "; else if(OrderTyp==2) OrderTxt=">>>>> Short <<<<< "; else OrderTxt=""; // ---------------------------------------------- // ----------------- Comment -------------------- // ---------------------------------------------- if(CommentDaten==true) // "DayOfYear: "+DayOfYear()+"\n" + Comment( // Standard "\n"+ //"\n"+ // Extra s.Selektion **************************** "Vola: ("+DoubleToStr(Vola,1)+") "+DoubleToStr(Vola0,2)+ " Range: "+TimeStart+"-"+TimeEnd+" Uhr"+" "+trail+"\n"+ "Break / Long: "+DoubleToStr(Top,Dig)+ " RSI "+DoubleToStr(RSI,1)+"\n"+ " Short: "+DoubleToStr(Bottom,Dig)+ " L -S "+DoubleToStr((Top-Bottom)*Fakt,1)+"\n"+ "\n"+ // ********************************************** // Standard // " Spread: "+DoubleToStr(spread,1)+"\n"+ "Lots: "+DoubleToStr(Lots,1)+doubleTxt+" offen: "+opOrders+" L/S: "+(cntHistBuy+LongIsOpen)+"´"+(cntHistSell+ShortIsOpen)+ "\n"+ "TP: +"+DoubleToStr(OrderTP1,0)+", "+DoubleToStr(OrderTP2,0)+", "+DoubleToStr(OrderTP3,0)+" SL -"+DoubleToStr(OrderSL,0)+ "\n" + "Trail SL (TP): "+DoubleToStr(TrailingStop,0)+" ("+DoubleToStr(TrailingStop/2,1)+")\n" + TxtTime+"\n"+ "\n"+ TxtCom+"\n"+ OrderTxt+"\n"+ "\n" ); // ---------------------------------------------- // --------------- Rectangle (Range) ------------ // ---------------------------------------------- double EntryL, topL, bottomL, EntryS, topS, bottomS; datetime EntryTimeL,EntryTimeS; color colRangeL=C'0,0,100', colRangeS=C'100,0,0'; // -- int cntRect; if(OrdersTotal()!=0) { oSP=0; oLP=0; for(cntRect=0; cntRect<OrdersTotal(); cntRect++) { OrderSelect(cntRect,SELECT_BY_POS); if( OrderType()==OP_SELL && OrderSymbol()==Symbol() ) { opShortPos=OrderOpenPrice(); shortTP=(opShortPos-Ask)*Fakt; oSP=oSP+1; } if( OrderType()==OP_BUY && OrderSymbol()==Symbol() ) { opLongPos=OrderOpenPrice(); longTP= (Bid-opLongPos)*Fakt; oLP=oLP+1; } } // for(cntRect=0; } // if(OrdersTotal()!=0) // -- ObjectDelete("RangeL"); ObjectDelete("RangeL_Label"); ObjectDelete("RangeS"); ObjectDelete("RangeS_Label"); // offene Orders prüfen ... int cnt0buy=0, cnt0sell=0 ; for (i=0; i<OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY && OrderTakeProfit()!=0 && opLongPos!=0) { EntryL = OrderOpenPrice(); EntryTimeL = OrderOpenTime(); topL = OrderTakeProfit(); bottomL = OrderOpenPrice()+(Ask-Bid); // ---- datetime leftL =EntryTimeL; datetime rightL =EntryTimeL+(RectangleHours*60*60); // ---- ObjectCreate("RangeL",OBJ_RECTANGLE,0,leftL,topL,rightL,bottomL); ObjectSet("RangeL",OBJPROP_BACK,true); ObjectSet("RangeL",OBJPROP_COLOR,colRangeL); } // if(OrderType // ---- if(OrderType()==OP_SELL && OrderTakeProfit()!=0 && opShortPos!=0) { EntryS = OrderOpenPrice(); EntryTimeS = OrderOpenTime(); topS = OrderOpenPrice(); bottomS = OrderTakeProfit()-(Ask-Bid); // ---- datetime leftS =EntryTimeS; datetime rightS =EntryTimeS+(RectangleHours*60*60); // ---- ObjectCreate("RangeS",OBJ_RECTANGLE,0,leftS,topS,rightS,bottomS); ObjectSet("RangeS",OBJPROP_BACK,true); ObjectSet("RangeS",OBJPROP_COLOR,colRangeS); } // if(OrderType } // if(OrderSymbol()==Symbol()) } // for(int // -------------------------------------------- // ----------- 1st Trade / OrderSend ---------- // -------------------------------------------- if(autoTrading==true && opOrders==0 && inTime==1) { // ---- open Long if( longEntry!=0 && Low[0]<longEntry && Bid<=longEntry+1/Fakt && Bid>=longEntry-2/Fakt && cntHistBuy==0 && OrderTyp!=2) { OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"1st Trade",MagicNumber,0); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"2nd Trade",MagicNumber,0); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"3rd Trade",MagicNumber,0); } // ---- open Short if( shortEntry!=0 && High[0]>shortEntry && Bid>=shortEntry-1/Fakt && Bid<=shortEntry+2/Fakt && cntHistSell==0 && OrderTyp!=1) { OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"1st Trade",MagicNumber,0); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"2nd Trade",MagicNumber,0); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"3rd Trade",MagicNumber,0); } } // autoTrading // -------------------------------------------- // ------------ Hedging / OrderSend ----------- // -------------------------------------------- if(autoTrading==true && HedgeTrading==true && opOrders!=0 && inTime==1) { // ---- open Long if(longEntry!=0 && LongIsOpen==0 && ShortIsOpen!=0 && cntHistBuy==0 && Low[0]<longEntry && Bid<=longEntry+1/Fakt && Bid>=longEntry-2/Fakt && OrderTyp!=2) { OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"1st Hedge",MagicNumber,0,Green); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"2nd Hedge",MagicNumber,0,Green); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"3rd Hedge",MagicNumber,0,Green); } // ---- open Short if(shortEntry!=0 && ShortIsOpen==0 && LongIsOpen!=0 && cntHistSell==0 && High[0]>shortEntry && Bid>=shortEntry-1/Fakt && Bid<=shortEntry+2/Fakt && OrderTyp!=1) { OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"1st Hedge",MagicNumber,0,Crimson); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"2nd Hedge",MagicNumber,0,Crimson); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"3rd Hedge",MagicNumber,0,Crimson); } } // autoTrading // ---------------------------------------------- // ------------- OrderModify TP u. SL ----------- // ---------------------------------------------- opPos=0; // ---- if( opOrders!=0 && OrderTP1!=0 && OrderSL!=0 && autoTrading==true && inTime==1) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && (OrderStopLoss()==0 || OrderTakeProfit()==0)) { opPos=opPos+1; if(opPos==1) { TakeProfit=OrderTP1/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderOpenPrice()+TakeProfit,0); } if(opPos==2) { TakeProfit=OrderTP2/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderOpenPrice()+TakeProfit,0); } if(opPos==3) { TakeProfit=OrderTP3/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderOpenPrice()+TakeProfit,0); } } // if(OrderType()==OP_BUY // ---- if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && (OrderStopLoss()==0 || OrderTakeProfit()==0)) { opPos=opPos+1; if(opPos==1) { TakeProfit=OrderTP1/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss,OrderOpenPrice()-TakeProfit,0); } if(opPos==2) { TakeProfit=OrderTP2/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss,OrderOpenPrice()-TakeProfit,0); } if(opPos==3) { TakeProfit=OrderTP3/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss,OrderOpenPrice()-TakeProfit,0); } } // if(OrderType()==OP_SELL } // for(cnt=0 } // if(OrderTP1 // ---------------------------------------------- // --------------- TrailingSL/TP ---------------- // ---------------------------------------------- if( opOrders!=0 && TrailingStop!=0 && Vola0 > Vola*TrailingRisk) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && opOrders==1) { if( Bid > OrderOpenPrice()+TrailingSL && Bid-TrailingSL > OrderStopLoss() ) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-StopLoss,Bid+TrailingSL/2,0); } } // ---- if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && opOrders==1) { if( Ask < OrderOpenPrice()-TrailingSL && Ask+TrailingSL < OrderStopLoss() ) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss,Ask-TrailingSL/2,0); } } } // for(cnt=0; } // if(TrailingStop // ---------------------------------------------- // --------- DayTrade-Closing ------------------- // ---------------------------------------------- if( opOrders!=0 && Closing!=0 && TimeHour(Time[0])>=Closing-ZD) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { if(Bid<OrderOpenPrice()) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),0); if(Bid>OrderOpenPrice()) OrderClose(OrderTicket(),Lots,Bid,0); } // ---- if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { if(Ask>OrderOpenPrice()) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),0); if(Ask<OrderOpenPrice()) OrderClose(OrderTicket(),Lots,Ask,0); } } // for(cnt=0; } // if(Closing!=0 // ---- } // start return(0); //+------------------------------------------------------------------+
    Furax a joint une image
    G1168AD
  • antonin1021

    je viens de backtesté EB3 c'est pas très concluant voyer vous même
    antonin1021 a joint une image
    G1169BA
  • miczou1

    EOT / une vrai misere il ma planter 3 comptes demo 500 malgres de bon resiltat il en suffit d un seul pour tout cramer malgrés le changement des SL ou lot, mma ect de plus si le marché est capricieux ben plouf a voir dans les prochain jour je vais essayer d autre modif

    ETP je suis d accord avec toi FUFU mais reste dans une bonne continuité avec beaucoup de petit trade gagant contre trés peu de trade perdant depuis deux semaine avec un compte demo 250 j en suis a 680 sur 5 paires eur /usd /chf /jpy /aud /cad la paire ou ca marche le moin est eur/jpy....
    risk 2 lot 0.1
    je vais l ouvrir sur 7 paires de plus a partir de dimanche soir

    maintenant je m attaque a t on EB3 on va voir se qu il dans le ventre....

    *bon WEEK end
  • Furax

    N'hésitez pas à changer les réglages avec les variables extérieures, c'est fait pour ça...:)

    Nous gagnerons du temps s'y on se me à plusieurs, c'est un travail d'équipe...:)
  • antonin1021

    ok, c'est reparti pour EB3
  • miczou1

    je maitrise pas bien les back test EBme donne rien quel parametre vous mettez
  • Furax

    Je vais vous rajouter une variable extérieure concernant le hedging. 0 = sans, 1 = avec.
  • miczou1

    c est quoi le trailing stop
  • lorka85-1085820

    merci beaucoup Furax !

    Perso EOT : pas une seul journée sans des pertes immenses
    ETP reste noble et constant :)

    Voir EB3 donc, on vas se régaler :)
  • furynick

    c'est un stop loss qui suit le cours.

    Si tu mets un TS à 30 pips par ex. pour un cours à 1.3250 ton SL est de 1.3220 pour un BUY (1.3280 pour un SELL). Si le cours monte à 1.3290, ton SL passe automatiquement à 1.3260 et le cours peut donc redescendre à cette valeur et tu prend un profit de 40 pips.
  • furynick

    Je formatte le code pour qu'il soit lisible (sans en modifier la teneur) et je le publie.

    Je ferais les backtests en essayer de me monter une plateforme de backtest fiable (historique avec ticks).
  • Furax

    Code
    //+------------------------------------------------------------------+ //| earlyBird3.mq4 26.05.2010 - 18:53 //| mit Hedge-Funktion //| Range-Break mit RSI-Filter +/-50 //| TrailingStop/Profit mit Vola-Filter //| DayTrading: je 3 Buy- u. Sell-Trades //| Modified and settings by Furax from "forexagone.com" //| Added Hedging in extern data by Furax for v1.01 //+------------------------------------------------------------------+ #property copyright "Furax" #property link "forexagone.com" string Name ="RangeBreak3"; // ---- extern bool autoTrading = true; // extern bool HedgeTrading = true; // ---- bool CommentDaten = true; // ***************************************************** // manuelle Entries extern int OrderTyp = 0; // extern // 0=Long&Short, 1=Long, 2=Short; // TakeProfit extern double HedgeTrading = false; // Variable extérieure ajoutée extern double OrderTP1 = 10; // 15 // was extern double OrderTP2 = 20; // 30 // was extern double OrderTP3 = 30; // 45 // was // StopLoss extern double OrderSL = 45; // 45 // was // TrailingStop/Profit extern double TrailingStop = 15; // 50 // was extern double TrailingRisk = 1; // 1.1 // was // Umwandlung double shortEntry, longEntry, TakeProfit, TrailingTP, StopLoss, TrailingSL; string Long_Selekt, Short_Selekt; // Einstieg u. Hinweis string ShortInfo = " short"; string LongInfo = " long"; //---- extern double Lots = 0.2; // was 0.1 // Trading-Zeiten extern int Start_Std = 1; // 6 Uhr TradeBeginn dtsch. Zeit // was 7 int Start_Min = 03; // extern // was extern int Schluss = 22; // 11, 21, 22 oder / bis // was 15 extern int Closing = 23; // 22:00 Uhr // was 17 int ZD; // 1=WZ, 2=SZ Zeit-Differenz // was ZD int inTime; // Tradingzeit // Zeit-Differennz-Korrektur int Sommerzeit = 87; // DayOfYear Beginn Sommerzeit int Winterzeit = 297; // DayOfYear Beginn Winterzeit // Break-Time extern int TimeStart = 1; // was 3 extern int TimeEnd = 25; // was 7 datetime Time_Start, Time_End, RectangleEnd; // ---- extern int RectangleHours = 72; // ---- bool PendingView = true; // ---- extern string TRADING°TESTER ="=== RangeBreak3 ==="; int MagicNumber = 1805100925; // ---- double clsBuyOrder, clsSellOrder; double opLongPos, opShortPos, shortTP, longTP; string OrderTxt, TxtCom, TxtTime, doubleTxt, PendingTyp, RSItrend; color col1=Gray, col2=Gray, col3=Silver, col4=Silver, col5=Silver, col1a=Gray, col2a=Gray; double Fakt, RSI; int cntHistBuy, cntHistSell; int i, Dig, opBar, cnt, oLP, oSP, offen, opOrders, opPos, LongIsOpen, ShortIsOpen; double Vola, Vola0; // ---------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------- int init() { } //---------- int deinit() { Comment(""); ObjectDelete("bar0"); ObjectDelete("bar0_Label"); ObjectDelete("opShort"); ObjectDelete("opShort_Label"); ObjectDelete("opLong"); ObjectDelete("opLong_Label"); ObjectDelete("aktuell"); ObjectDelete("aktuell_Label"); ObjectDelete("longTP"); ObjectDelete("longTP_Label"); ObjectDelete("shortTP"); ObjectDelete("shortTP_Label"); ObjectDelete("RangeL"); ObjectDelete("RangeL_Label"); ObjectDelete("RangeS"); ObjectDelete("RangeS_Label"); ObjectDelete("Trend"); ObjectDelete("Trend_Label"); } //--------- int start() { if(DayOfYear()>=Sommerzeit && DayOfYear()<=Winterzeit) ZD=2; else ZD=1; if(TimeHour(Time[0])<=5) { clsBuyOrder=0; clsSellOrder=0; } // if(TimeHour(Time[0])>= 3-ZD && TimeHour(Time[0])< 10-ZD) { TimeStart=3; TimeEnd= 7; } else // if(TimeHour(Time[0])>=10-ZD && TimeHour(Time[0])< 24 ) { TimeStart=6; TimeEnd=10; } Time_Start = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeStart-ZD,":00")); Time_End = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",TimeEnd-ZD, ":00")); RectangleEnd = StrToTime(StringConcatenate(Day(),".",Month(),".",Year()," ",Schluss-ZD, ":00")); // ---- Tradingzeit 1=ja, 0=nein if(DayOfWeek()>0 && DayOfWeek()<=5 && ((TimeHour(Time[0])==Start_Std-ZD && TimeMinute(Time[0])>=Start_Min) || TimeHour(Time[0])>Start_Std-ZD) && TimeHour(Time[0])< Schluss-ZD) inTime=1; else inTime=0; // ---- if(Close[0]>10) {Fakt=100; Dig=2; } else if(Close[0]<10) {Fakt=10000; Dig=4; } // ---- if(OrderSL!=0) StopLoss=OrderSL/Fakt; if(TrailingStop!=0) TrailingSL=TrailingStop/Fakt; // ************************************************************************ // ********** Selektion ********** (Anfang) ********** Selektion ********** // ---- Breakwerte RSI = iRSI(NULL,0,14,PRICE_OPEN,0); int BarStart = iBarShift(NULL,0,Time_Start,false); int BarEnd = iBarShift(NULL,0,Time_End ,false); double Top = iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,BarStart-BarEnd,BarEnd))+2/Fakt; double Bottom = iLow (NULL,0,iLowest (NULL,0,MODE_LOW, BarStart-BarEnd,BarEnd))-2/Fakt; // ---- Entries if(RSI> 50) longEntry=Top; else longEntry =0; if(RSI<=50) shortEntry=Bottom; else shortEntry=0; // ---- Vola double V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16; V1=High[i+1]-Low[i+1]; V2=High[i+2]-Low[i+2]; V3=High[i+3]-Low[i+3]; V4=High[i+4]-Low[i+4]; V5=High[i+5]-Low[i+5]; V6=High[i+6]-Low[i+6]; V7=High[i+7]-Low[i+7]; V8=High[i+8]-Low[i+8]; V9=High[i+9]-Low[i+9]; V10=High[i+10]-Low[i+10]; V11=High[i+11]-Low[i+11]; V12=High[i+12]-Low[i+12]; V13=High[i+13]-Low[i+13]; V14=High[i+14]-Low[i+14]; V15=High[i+15]-Low[i+15]; V16=High[i+16]-Low[i+16]; Vola=(V1+V2+V3+V4+V5+V6+V7+V8+V9+V10+V11+V12+V13+V14+V15+V16)*Fakt/16; Vola0=(High[i]-Low[i])*Fakt; // ---- Rectangle ObjectDelete("bar0"); ObjectDelete("bar0_Label"); ObjectCreate("bar0", OBJ_RECTANGLE, 0, 0,0, 0,0); ObjectSet ("bar0", OBJPROP_STYLE, STYLE_SOLID); ObjectSet ("bar0", OBJPROP_COLOR, C'60,60,60'); ObjectSet ("bar0", OBJPROP_BACK, true); ObjectSet ("bar0", OBJPROP_TIME1 ,Time_End); // Time_Start // Time_End-1*60 ObjectSet ("bar0", OBJPROP_PRICE1,Top); ObjectSet ("bar0", OBJPROP_TIME2 ,MathMin(TimeCurrent(),RectangleEnd)); // Time_End od. TimeCurrent() ObjectSet ("bar0", OBJPROP_PRICE2,Bottom); // ********** Selektion ********** (Ende) ********** Selektion ********** // ********************************************************************** // -------------------------------------------------------------- // ---- bilanzierte, offene Positionen u. Pendings ermitteln ---- // -------------------------------------------------------------- int cnt = OrdersHistoryTotal(); // ---- geschlossene Positionen cntHistBuy=0; cntHistSell=0; for (int i=0; i < cnt; i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; if (TimeDayOfYear(OrderCloseTime()) == DayOfYear()) { if (OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) { clsBuyOrder = OrderOpenPrice(); cntHistBuy =cntHistBuy +1; } if (OrderType()==OP_SELL) { clsSellOrder = OrderOpenPrice(); cntHistSell=cntHistSell+1; } } } // TimeDayOfYear } // for(int // ---- Anzahl offene Positionen/Symbol opOrders=0; if(OrdersTotal()!=0) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if((OrderType()==OP_SELL || OrderType()==OP_BUY) && OrderSymbol()==Symbol()) { opOrders=opOrders+1; } } // for(cnt } // if(OrdersTotal // ---- Anzahl offene Positionen/Typ LongIsOpen=0; ShortIsOpen=0; for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { LongIsOpen=LongIsOpen+1; } if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { ShortIsOpen=ShortIsOpen+1; } } // -------------------------------------------------------------------------------- string lEntryTxt=DoubleToStr(longEntry,Digits); string sEntryTxt=DoubleToStr(shortEntry,Digits); // ---- int DiffL, DiffS; // ---- string BidTxt=DoubleToStr(Bid,Digits); string AskTxt=DoubleToStr(Ask,Digits); // ---- string longTxt, shortTxt; if(longEntry!=0) longTxt =DoubleToStr(longEntry,Digits); if(shortEntry!=0) shortTxt=DoubleToStr(shortEntry,Digits); // ---- ObjectDelete("longTP"); ObjectDelete("longTP_Label"); ObjectDelete("shortTP"); ObjectDelete("shortTP_Label"); ObjectDelete("opLong"); ObjectDelete("opLong_Label"); ObjectDelete("opShort"); ObjectDelete("opShort_Label"); // ---- if(OrdersTotal()!=0) { opShortPos=0; shortTP=0; opLongPos=0; longTP=0; for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { opShortPos=OrderOpenPrice(); shortTP=(opShortPos-Ask)*Fakt; col1=Red; } if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { opLongPos=OrderOpenPrice(); longTP= (Bid-opLongPos)*Fakt; col2=SpringGreen; } } // for(cnt } // if(OrdersTotal // -------------------------------------------- // ----------------- Objekte ------------------ // -------------------------------------------- if(opShortPos==0) {shortTP=0; col1=Gray; col1a=Gray;} if(opLongPos==0) {longTP=0; col2=Gray; col2a=Gray;} // ---- if(shortTP< 0) col1a=Yellow; if(shortTP> 0) col1a=Aqua; if(longTP < 0) col2a=Yellow; if(longTP > 0) col2a=Aqua; // ---- if(CommentDaten==true) { if(opShortPos!=0) { ObjectCreate("opShort", OBJ_LABEL, 0, 0, 0); ObjectSetText("opShort",DoubleToStr(opShortPos,Dig),9,"Tahoma", col1); ObjectSet("opShort", OBJPROP_CORNER, 0); ObjectSet("opShort", OBJPROP_XDISTANCE, 3); ObjectSet("opShort", OBJPROP_YDISTANCE, 11); ObjectCreate("shortTP", OBJ_LABEL, 0, 0, 0); ObjectSetText("shortTP","("+DoubleToStr(shortTP,0)+")",9,"Tahoma", col1a); ObjectSet("shortTP", OBJPROP_CORNER, 0); ObjectSet("shortTP", OBJPROP_XDISTANCE, 44); ObjectSet("shortTP", OBJPROP_YDISTANCE, 11); } if(opLongPos!=0) { ObjectCreate("opLong", OBJ_LABEL, 0, 0, 0); ObjectSetText("opLong",DoubleToStr(opLongPos,Dig),9,"Tahoma", col2); ObjectSet("opLong", OBJPROP_CORNER, 0); ObjectSet("opLong", OBJPROP_XDISTANCE, 85); ObjectSet("opLong", OBJPROP_YDISTANCE, 11); ObjectCreate("longTP", OBJ_LABEL, 0, 0, 0); ObjectSetText("longTP","("+DoubleToStr(longTP,0)+")",9,"Tahoma", col2a); ObjectSet("longTP", OBJPROP_CORNER, 0); ObjectSet("longTP", OBJPROP_XDISTANCE, 126); ObjectSet("longTP", OBJPROP_YDISTANCE, 11); } // ---- ObjectCreate("aktuell", OBJ_LABEL, 0, 0, 0); ObjectSetText("aktuell",StringSubstr(BidTxt,0,6),9,"Tahoma", col3); ObjectSet("aktuell", OBJPROP_CORNER, 0); ObjectSet("aktuell", OBJPROP_XDISTANCE, 172); ObjectSet("aktuell", OBJPROP_YDISTANCE, 11); // ---- Pending-Typ if(cntHistBuy <=0 && cntHistSell ==0 && RSI>50 && LongIsOpen<=0) {PendingTyp="*up*"; col4=Aqua; } else if(cntHistBuy <=0 && cntHistSell !=0 && RSI>50 && LongIsOpen<=0) {PendingTyp="*up*"; col4=Aqua; } else if(cntHistBuy <=0 && cntHistSell !=0 && RSI<50 && LongIsOpen<=0) {PendingTyp="*up*"; col4=Olive; } else if(cntHistSell<=0 && cntHistBuy ==0 && RSI<50 && ShortIsOpen<=0) {PendingTyp="*down*"; col4=Red; } else if(cntHistSell<=0 && cntHistBuy !=0 && RSI<50 && ShortIsOpen<=0) {PendingTyp="*down*"; col4=Red; } else if(cntHistSell<=0 && cntHistBuy !=0 && RSI>50 && ShortIsOpen<=0) {PendingTyp="*down*"; col4=Olive; } else {PendingTyp="-flat-"; col4=Gray; } ObjectCreate("Trend", OBJ_LABEL, 0, 0, 0); ObjectSetText("Trend",PendingTyp,12,"Arial Black", col4); ObjectSet("Trend", OBJPROP_CORNER, 0); ObjectSet("Trend", OBJPROP_XDISTANCE, 218); ObjectSet("Trend", OBJPROP_YDISTANCE, 4); } // if(CommentDaten==true) // ----------------------------------------------------- // ----------------- Text für Comment ------------------ // ----------------------------------------------------- double spread=MarketInfo(Symbol(),MODE_SPREAD)/10; // ---- Risk if(Vola0>=Vola*TrailingRisk && opOrders==1) string trail="Trailing!"; else trail=""; // ---- TxtCom if(Period()<5) TxtCom="Periode ändern: von M5 bis H1"; else TxtCom=""; // ---- TxtTime if(Start_Min<10) TxtTime=(Start_Std+":0"+Start_Min+" bis "+Schluss+":00 / "+Closing+" Uhr"); else TxtTime=(Start_Std+":"+Start_Min+" bis "+Schluss+":00 / "+Closing+" Uhr"); // ---- OrderTxt if(autoTrading==false) OrderTxt="Trading deaktiviert!"; else if(inTime==0) if(Start_Min<10) OrderTxt="DayTrading geschlossen bis "+Start_Std+":0"+Start_Min; else OrderTxt="DayTrading geschlossen bis "+Start_Std+":"+Start_Min; else if(OrderTyp==1) OrderTxt=">>>>> Long <<<<< "; else if(OrderTyp==2) OrderTxt=">>>>> Short <<<<< "; else OrderTxt=""; // ---------------------------------------------- // ----------------- Comment -------------------- // ---------------------------------------------- if(CommentDaten==true) // "DayOfYear: "+DayOfYear()+"\n" + Comment( // Standard "\n"+ //"\n"+ // Extra s.Selektion **************************** "Vola: ("+DoubleToStr(Vola,1)+") "+DoubleToStr(Vola0,2)+ " Range: "+TimeStart+"-"+TimeEnd+" Uhr"+" "+trail+"\n"+ "Break / Long: "+DoubleToStr(Top,Dig)+ " RSI "+DoubleToStr(RSI,1)+"\n"+ " Short: "+DoubleToStr(Bottom,Dig)+ " L -S "+DoubleToStr((Top-Bottom)*Fakt,1)+"\n"+ "\n"+ // ********************************************** // Standard // " Spread: "+DoubleToStr(spread,1)+"\n"+ "Lots: "+DoubleToStr(Lots,1)+doubleTxt+" offen: "+opOrders+" L/S: "+(cntHistBuy+LongIsOpen)+"´"+(cntHistSell+ShortIsOpen)+ "\n"+ "TP: +"+DoubleToStr(OrderTP1,0)+", "+DoubleToStr(OrderTP2,0)+", "+DoubleToStr(OrderTP3,0)+" SL -"+DoubleToStr(OrderSL,0)+ "\n" + "Trail SL (TP): "+DoubleToStr(TrailingStop,0)+" ("+DoubleToStr(TrailingStop/2,1)+")\n" + TxtTime+"\n"+ "\n"+ TxtCom+"\n"+ OrderTxt+"\n"+ "\n" ); // ---------------------------------------------- // --------------- Rectangle (Range) ------------ // ---------------------------------------------- double EntryL, topL, bottomL, EntryS, topS, bottomS; datetime EntryTimeL,EntryTimeS; color colRangeL=C'0,0,100', colRangeS=C'100,0,0'; // -- int cntRect; if(OrdersTotal()!=0) { oSP=0; oLP=0; for(cntRect=0; cntRect<OrdersTotal(); cntRect++) { OrderSelect(cntRect,SELECT_BY_POS); if( OrderType()==OP_SELL && OrderSymbol()==Symbol() ) { opShortPos=OrderOpenPrice(); shortTP=(opShortPos-Ask)*Fakt; oSP=oSP+1; } if( OrderType()==OP_BUY && OrderSymbol()==Symbol() ) { opLongPos=OrderOpenPrice(); longTP= (Bid-opLongPos)*Fakt; oLP=oLP+1; } } // for(cntRect=0; } // if(OrdersTotal()!=0) // -- ObjectDelete("RangeL"); ObjectDelete("RangeL_Label"); ObjectDelete("RangeS"); ObjectDelete("RangeS_Label"); // offene Orders prüfen ... int cnt0buy=0, cnt0sell=0 ; for (i=0; i<OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY && OrderTakeProfit()!=0 && opLongPos!=0) { EntryL = OrderOpenPrice(); EntryTimeL = OrderOpenTime(); topL = OrderTakeProfit(); bottomL = OrderOpenPrice()+(Ask-Bid); // ---- datetime leftL =EntryTimeL; datetime rightL =EntryTimeL+(RectangleHours*60*60); // ---- ObjectCreate("RangeL",OBJ_RECTANGLE,0,leftL,topL,rightL,bottomL); ObjectSet("RangeL",OBJPROP_BACK,true); ObjectSet("RangeL",OBJPROP_COLOR,colRangeL); } // if(OrderType // ---- if(OrderType()==OP_SELL && OrderTakeProfit()!=0 && opShortPos!=0) { EntryS = OrderOpenPrice(); EntryTimeS = OrderOpenTime(); topS = OrderOpenPrice(); bottomS = OrderTakeProfit()-(Ask-Bid); // ---- datetime leftS =EntryTimeS; datetime rightS =EntryTimeS+(RectangleHours*60*60); // ---- ObjectCreate("RangeS",OBJ_RECTANGLE,0,leftS,topS,rightS,bottomS); ObjectSet("RangeS",OBJPROP_BACK,true); ObjectSet("RangeS",OBJPROP_COLOR,colRangeS); } // if(OrderType } // if(OrderSymbol()==Symbol()) } // for(int // -------------------------------------------- // ----------- 1st Trade / OrderSend ---------- // -------------------------------------------- if(autoTrading==true && opOrders==0 && inTime==1) { // ---- open Long if( longEntry!=0 && Low[0]<longEntry && Bid<=longEntry+1/Fakt && Bid>=longEntry-2/Fakt && cntHistBuy==0 && OrderTyp!=2) { OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"1st Trade",MagicNumber,0); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"2nd Trade",MagicNumber,0); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"3rd Trade",MagicNumber,0); } // ---- open Short if( shortEntry!=0 && High[0]>shortEntry && Bid>=shortEntry-1/Fakt && Bid<=shortEntry+2/Fakt && cntHistSell==0 && OrderTyp!=1) { OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"1st Trade",MagicNumber,0); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"2nd Trade",MagicNumber,0); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"3rd Trade",MagicNumber,0); } } // autoTrading // -------------------------------------------- // ------------ Hedging / OrderSend ----------- // -------------------------------------------- if(autoTrading==true && HedgeTrading==true && opOrders!=0 && inTime==1) { // ---- open Long if(longEntry!=0 && LongIsOpen==0 && ShortIsOpen!=0 && cntHistBuy==0 && Low[0]<longEntry && Bid<=longEntry+1/Fakt && Bid>=longEntry-2/Fakt && OrderTyp!=2) { OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"1st Hedge",MagicNumber,0,Green); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"2nd Hedge",MagicNumber,0,Green); OrderSend(Symbol(),OP_BUY,Lots,Ask,0, 0, 0,"3rd Hedge",MagicNumber,0,Green); } // ---- open Short if(shortEntry!=0 && ShortIsOpen==0 && LongIsOpen!=0 && cntHistSell==0 && High[0]>shortEntry && Bid>=shortEntry-1/Fakt && Bid<=shortEntry+2/Fakt && OrderTyp!=1) { OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"1st Hedge",MagicNumber,0,Crimson); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"2nd Hedge",MagicNumber,0,Crimson); OrderSend(Symbol(),OP_SELL,Lots,Bid,0, 0, 0,"3rd Hedge",MagicNumber,0,Crimson); } } // autoTrading // ---------------------------------------------- // ------------- OrderModify TP u. SL ----------- // ---------------------------------------------- opPos=0; // ---- if( opOrders!=0 && OrderTP1!=0 && OrderSL!=0 && autoTrading==true && inTime==1) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && (OrderStopLoss()==0 || OrderTakeProfit()==0)) { opPos=opPos+1; if(opPos==1) { TakeProfit=OrderTP1/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderOpenPrice()+TakeProfit,0); } if(opPos==2) { TakeProfit=OrderTP2/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderOpenPrice()+TakeProfit,0); } if(opPos==3) { TakeProfit=OrderTP3/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderOpenPrice()+TakeProfit,0); } } // if(OrderType()==OP_BUY // ---- if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && (OrderStopLoss()==0 || OrderTakeProfit()==0)) { opPos=opPos+1; if(opPos==1) { TakeProfit=OrderTP1/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss,OrderOpenPrice()-TakeProfit,0); } if(opPos==2) { TakeProfit=OrderTP2/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss,OrderOpenPrice()-TakeProfit,0); } if(opPos==3) { TakeProfit=OrderTP3/Fakt; OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss,OrderOpenPrice()-TakeProfit,0); } } // if(OrderType()==OP_SELL } // for(cnt=0 } // if(OrderTP1 // ---------------------------------------------- // --------------- TrailingSL/TP ---------------- // ---------------------------------------------- if( opOrders!=0 && TrailingStop!=0 && Vola0 > Vola*TrailingRisk) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && opOrders==1) { if( Bid > OrderOpenPrice()+TrailingSL && Bid-TrailingSL > OrderStopLoss() ) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-StopLoss,Bid+TrailingSL/2,0); } } // ---- if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && opOrders==1) { if( Ask < OrderOpenPrice()-TrailingSL && Ask+TrailingSL < OrderStopLoss() ) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+StopLoss,Ask-TrailingSL/2,0); } } } // for(cnt=0; } // if(TrailingStop // ---------------------------------------------- // --------- DayTrade-Closing ------------------- // ---------------------------------------------- if( opOrders!=0 && Closing!=0 && TimeHour(Time[0])>=Closing-ZD) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) { if(Bid<OrderOpenPrice()) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),0); if(Bid>OrderOpenPrice()) OrderClose(OrderTicket(),Lots,Bid,0); } // ---- if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) { if(Ask>OrderOpenPrice()) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),0); if(Ask<OrderOpenPrice()) OrderClose(OrderTicket(),Lots,Ask,0); } } // for(cnt=0; } // if(Closing!=0 // ---- } // start return(0); //+------------------------------------------------------------------+
  • Furax

    EB3 v1.01 pas si mal...:)
    Furax a joint une image
    G1170FC
  • antonin1021

    avec qu'elle variable extérieur car j'ai pas encore réussi a avoir une aussi belle courbe
  • miczou1

    ok merci furynick
  • fredkiller

    Salut,

    Furax, je voudrais te poser une question par mail si possible...

    A++

    Fred