Cara membuat ea dengan Indicator Parabolic SAR :
1.Time Frame = H4
2. Pair = GBPUSD
Berikut codingnya gaes :
//+------------------------------------------------------------------+//// Copyright ©2020, RalindhaBlogspot.com// http://www.ralindhablogspot.com// Version 20//+------------------------------------------------------------------+extern string Expert_Advisor_By="Tony Koes";extern int Magic_Number=10001;extern int MaxSpread =30;extern string Time_Filter="Trading Time";extern bool UseTimer = true;extern int StartTime=1;extern int EndTime=23;extern string Parabolic_SAR="Setting";extern double Step =0.05;extern double Max =1;extern double Lots =0.01;extern double StopLoss=5;extern double TakeProfit=0;extern int TrailingStop=2;extern int Slippage=3;//+------------------------------------------------------------------+// expert start function//+------------------------------------------------------------------+int start(){double MyPoint=Point;if(Digits==3 || Digits==5) MyPoint=Point*10;//+------------------------------------------------------------------+//+ spread filter//+------------------------------------------------------------------+double SymSpread = MarketInfo(Symbol(), MODE_SPREAD);if(MaxSpread > 0 && MaxSpread <= SymSpread ){Print("Spread is greater than Maximum allowed Spread");return;}//+------------------------------------------------------------------+//+ Time Filter//+------------------------------------------------------------------+datetime CurrentTime;if(UseTimer == true){CurrentTime = TimeLocal();int GetHour = TimeHour(CurrentTime);if(GetHour > StartTime && GetHour < EndTime ){bool TradeAllowed = true;}else TradeAllowed = false;}//+-------------------------------------------------------------------+double TheStopLoss=0;double TheTakeProfit=0;if( TotalOrdersCount()==0 ){//--------------------------------------------------------------------------------------------+// BUY ORDER OPENED//--------------------------------------------------------------------------------------------+int result=0;if((iSAR(NULL,0,Step,Max,0)<Close[1])&&Bid>High[2]&& TradeAllowed == true){result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Tony_Koes_Buy",Magic_Number,0,Blue);if(result>0){TheStopLoss=0;TheTakeProfit=0;if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;OrderSelect(result,SELECT_BY_TICKET);OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);}return(0);}//--------------------------------------------------------------------------------------------+// SELL ORDER OPENED//--------------------------------------------------------------------------------------------+if(iSAR(NULL,0,Step,Max,0)>Close[1]&& Ask<Low[1]&& TradeAllowed == true){result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"Tony_Koes_Sell",Magic_Number,0,Red);if(result>0){TheStopLoss=0;TheTakeProfit=0;if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;OrderSelect(result,SELECT_BY_TICKET);OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);}return(0);}}for(int cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);if(OrderType()<=OP_SELL &&OrderSymbol()==Symbol() &&OrderMagicNumber()==Magic_Number){if(OrderType()==OP_BUY){//-------------------------------------------------------------------------------------------+// BUY ORDER CLOSE//-------------------------------------------------------------------------------------------+// if(iSAR(NULL,0,Step,Max,0)>Close[1]&& Ask<Low[1]&& TradeAllowed == true)// {// OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);// }//-------------------------------------------------------------------------------------------+// BUY TRAILING STOP//-------------------------------------------------------------------------------------------+if(Ask<Low[1]&&TrailingStop>0){if(Bid-OrderOpenPrice()>MyPoint*TrailingStop){if(OrderStopLoss()<Bid-MyPoint*TrailingStop){OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);return(0);}}}}else{//------------------------------------------------------------------------------------------+// SELL ORDER CLOSE//------------------------------------------------------------------------------------------+// {// if((iSAR(NULL,0,Step,Max,0)<Close[1])&&Bid>High[2]&& TradeAllowed == true)// OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);// }//------------------------------------------------------------------------------------------+// SELL TRAILING STOP//-------------------------------------------------------------------------------------------+if(Bid>High[1]&&TrailingStop>0){if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop)){if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)){OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);return(0);}}}}}}return(0);}int TotalOrdersCount(){int result=0;for(int i=0;i<OrdersTotal();i++){OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);if (OrderMagicNumber()==Magic_Number) result++;}return (result);}
Hasil Back Test sbb :
Tidak ada komentar:
Posting Komentar