Jump to content

Adding: Maximum Trade option


razib

Recommended Posts

Dear Friends,

 

Anybody please help adding Maximum open order option to this attached EA. Currently It opens more than 10 trade & after touching the TP level it opens more than 20 trade.

 

Adding MaxTrade option will be a great help to control the maximum open orders.

 

-----------------------------------------------------------------------------------

 

extern double Lots = 0.1;

extern int StopLoss = 50;

extern int TakeProfit = 100;

extern int TrailingStop = 20;

 

extern int mafastperiod=5;

extern int mafastshift=0;

extern int mafastmethod =MODE_EMA;

extern int mafastprice=PRICE_CLOSE;

 

extern int maslowperiod=8;

extern int maslowshift=0;

extern int maslowmethod =MODE_EMA;

extern int maslowprice=PRICE_OPEN;

 

double fast1, fast2, slow1, slow2;

//---------------------------------------------------------------------

int init()

{

return(0);

}

//---------------------------------------------------------------------

int deinit()

{

return(0);

}

//---------------------------------------------------------------------

int start()

{

// Calculate Indicators -------------------------------------------------

fast1=iMA(Symbol(),0,mafastperiod,mafastshift,mafastmethod,mafastprice,1);

fast2=iMA(Symbol(),0,mafastperiod,mafastshift,mafastmethod,mafastprice,2);

slow1=iMA(Symbol(),0,maslowperiod,maslowshift,maslowmethod,maslowprice,1);

slow2=iMA(Symbol(),0,maslowperiod,maslowshift,maslowmethod,maslowprice,2);

 

// Open Trades ----------------------------------------------------------

 

//LONG

if (fast1>slow1&&fast2<slow2)

 

{

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,NULL,0,0,Blue);

}

 

//Short

if(fast1<slow1&&fast2>slow2)

{

OrderSend(Symbol(),OP_SELL,Lots ,Bid,0,Bid+StopLoss*Point,Bid-TakeProfit*Point,NULL,0,0,Red);

}

 

// Close Trades ---------------------------------------------------------

 

int i;

 

for (i = OrdersTotal()-1; i >=0 ;i-- )

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

 

if ( (OrderSymbol() == Symbol()) &&

(OrderType() == OP_BUY) &&

(fast1 < slow1) &&

(fast2 > slow2) )

{

OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,White);

}

 

if ( (OrderSymbol() == Symbol()) &&

(OrderType() == OP_SELL) &&

(fast1 > slow1) &&

(fast2 < slow2) )

{

OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,White);

}

}

 

// Trailing Stop ---------------------------------------------------------

 

for (i = OrdersTotal()-1; i>=10 ;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

 

if (OrderType() == OP_BUY)

{

if ( (Bid - OrderOpenPrice()) > (TrailingStop*Point) )

{

if ( OrderStopLoss() < (Bid - TrailingStop*Point) )

{

OrderModify(OrderTicket(),

OrderOpenPrice(),

Bid - TrailingStop*Point,

OrderTakeProfit(),

Red);

}

}

}

 

if (OrderType() == OP_SELL)

{

if ( (OrderOpenPrice() - Ask) > (TrailingStop*Point) )

{

if ( (OrderStopLoss() > (Ask + TrailingStop*Point)) ||

(OrderStopLoss() == 0) )

{

OrderModify(OrderTicket(),

OrderOpenPrice(),

Ask + TrailingStop*Point,

OrderTakeProfit(),

Red);

}

}

}

}

 

return(0);

 

}

 

 

//+------------------------------------------------------------------+

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...