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]