Download MetaTrader 5

Please Help Me

To add comments, please log in or register
Saad Iqbal
12
Saad Iqbal  

Dear friends,


I am new in EA programming and i need your help please. I want my EA to wait after close last trade and don't open trade until next signal.

For example if my EA open last Sell trade then after close as TP or ST wait for BUY signal and don't open again Sell before get Buy signal.


if(Buy1_1 > Buy1_2 && Buy4_1 > Buy4_2 && Buy5_1 < Buy5_2) // Here is your open buy rule

     {

        result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,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);

     }

     if(Buy1_1 < Buy1_2 && Buy4_1 < Buy4_2 && Buy5_1 > Buy5_2) // Here is your open Sell rule

     {

        result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,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()==MagicNumber 

         )  

        {

Keith Watford
Moderator
10569
Keith Watford  

static int lastSignal=-1;

  

  if(BuySignal && lastSignal!=OP_BUY)

     {

     //Place Buy order

     lastSignal=OP_BUY;

     }

     

  if(SellSignal && lastSignal!=OP_SELL)

     {

     //Place Sell order

     lastSignal=OP_SELL;

     }

If you don't understand the above, you will need to learn the basics of MQL4.

Using an EA generator produces low quality and very basic code.

Keith Watford
Moderator
10569
Keith Watford  

Please use the SRC button when posting code in future. I have done it for you this time.

Saad Iqbal
12
Saad Iqbal  
Keith Watford:

static int lastSignal=-1;

  

  if(BuySignal && lastSignal!=OP_BUY)

     {

     //Place Buy order

     lastSignal=OP_BUY;

     }

     

  if(SellSignal && lastSignal!=OP_SELL)

     {

     //Place Sell order

     lastSignal=OP_SELL;

     }

If you don't understand the above, you will need to learn the basics of MQL4.

Using an EA generator produces low quality and very basic code.


Thank you so much dear Keith Watford.

To add comments, please log in or register