i use 3 ema 5 200 and 300 . want an ea with open martingle lot and stop lose is privious ma cross . means it open position 5 and 300 then stop loss is 5 and 200
.
.
EMA crossover (ema 14 & 34) 4 replies
Questions on EMA and EMA vs SMA 6 replies
Please help code an EMA Crossover 12ema x 24 ema cross 1 reply
EMA's and MA's confiming small time correctoin ema's crossing 1 reply
Disliked//+------------------------------------------------------------------+ //| CrossEMA.mq4 | //| Amine Ahsous | //| https://www.mql5.com/en/users/simpletradeea | //+------------------------------------------------------------------+ #property copyright "Amine Ahsous" #property link "https://www.mql5.com/en/users/simpletradeea" #property version "1.00" #property strict extern int MagicNumber=0; extern double LotSize=0.01; extern int StopLoss=0; extern int TakeProfit=0; extern bool AutoClose=true; extern bool UseTrailingStop=false; extern...Ignored
//+------------------------------------------------------------------+ //| CrossEMA.mq4 | //| Amine Ahsous | //| [url]https://www.mql5.com/en/users/simpletradeea[/url] | //+------------------------------------------------------------------+ #property copyright "Amine Ahsous" #property link "https://www.mql5.com/en/users/simpletradeea" #property version "1.00" #property strict extern int MagicNumber=0; extern double LotSize=0.01; extern int StopLoss=0; extern int TakeProfit=0; extern bool AutoClose=true; extern bool UseTrailingStop=false; extern int TrailingStop=0; extern bool EmailAlert=true; extern string Mode1="=====FIRST MODE====="; extern int FirstMA=5; extern ENUM_MA_METHOD FirstMAmode=MODE_EMA; extern int SecondMA=100; extern ENUM_MA_METHOD SecondMAmode=MODE_EMA; double point; int digits,Q; double SL,TP,sell,buy,close,move; int ThisBarTrade=0; bool NewBar; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- if(Digits==5||Digits==3)Q=10; else Q=1; if(Digits<4) { point=0.01; digits=2; } else { point=0.0001; digits=4; } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if (Bars != ThisBarTrade ) { NewBar=true; ThisBarTrade = Bars; NewBar=true; } double FirstEMA2=iMA(Symbol(),0,FirstMA,0,FirstMAmode,PRICE_CLOSE,2); double FirstEMA1=iMA(Symbol(),0,FirstMA,0,FirstMAmode,PRICE_CLOSE,1); double SecondEMA2=iMA(Symbol(),0,SecondMA,0,SecondMAmode,PRICE_CLOSE,2); double SecondEMA1=iMA(Symbol(),0,SecondMA,0,SecondMAmode,PRICE_CLOSE,1); if(NewBar){ if(FirstEMA1>SecondEMA1&&FirstEMA2<=SecondEMA2){ if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;} buy=OrderSend(Symbol(),OP_BUY,LotSize,Ask,3*Q,SL,TP,"Buy Market",MagicNumber,0,clrBlue); if(EmailAlert)SendMail(Symbol(),"Order Opened Buy"); if(AutoClose)CloseOrders(OP_SELL); } if(FirstEMA1<SecondEMA1&&FirstEMA2>=SecondEMA2){ if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;} sell=OrderSend(Symbol(),OP_SELL,LotSize,Bid,3*Q,SL,TP,"Sell Market",MagicNumber,0,clrRed); if(EmailAlert)SendMail(Symbol(),"Order Opened Sell"); if(AutoClose)CloseOrders(OP_BUY); } NewBar=false; } } //+------------------------------------------------------------------+ int orderscnt(){ int cnt=0; for(int i =0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){ cnt++; } } return(cnt); } //+++++++++++++++++++// int CloseOrders(int type) { int cnt=OrdersTotal(); for(int i=cnt-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber&&OrderType()==type) { close=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3*Q,clrWhite); } } return(0); } //********* void ModifyStopLoss(double ldStop) { bool fm; double ldOpen=OrderOpenPrice(); double ldTake=OrderTakeProfit(); fm=OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, Pink); } void sub_trailingsl() { for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber ) { if (OrderType()==OP_SELL) { if (OrderOpenPrice()-Ask>=TrailingStop*point&&(OrderStopLoss()==0||OrderStopLoss()>=OrderOpenPrice()) &&OrderStopLoss()!=NormalizeDouble(Ask+TrailingStop*point,digits)) { ModifyStopLoss(NormalizeDouble(Ask+TrailingStop*point,digits)); } if (OrderStopLoss()!=0&&OrderStopLoss()!=NormalizeDouble(Ask+TrailingStop*point,digits) &&OrderStopLoss()<OrderOpenPrice()&&OrderStopLoss()-Ask>TrailingStop*point) { ModifyStopLoss(NormalizeDouble(Ask+TrailingStop*point,digits)); } } if (OrderType()==OP_BUY) { if (Bid-OrderOpenPrice()>=TrailingStop*point&&(OrderStopLoss()==0||OrderStopLoss()<=OrderOpenPrice()) &&OrderStopLoss()!=NormalizeDouble(Bid-TrailingStop*point,digits)) { ModifyStopLoss(NormalizeDouble(Bid-TrailingStop*point,digits)); } if (OrderStopLoss()!=0&&OrderStopLoss()!=NormalizeDouble(Bid-TrailingStop*point,digits) &&OrderStopLoss()>OrderOpenPrice()&&Bid-OrderStopLoss()>(TrailingStop*point)) { ModifyStopLoss(NormalizeDouble(Bid-TrailingStop*point,digits)); } } } } } } //========== [list][*][/list]