
Originally Posted by
jimhook_uk1
Hi,
How would you close all the open positions in a specific pair when the sum profit had reached a certain level?
Without closing all other open positions
Example
Profit Target = 50
Sum all EURUSD positions
If sum of EURUSD positions >= Profit Target
Close all EURUSD positions
Thanks in Advance
Hi jimhook_uk,
Parameters
Code:
extern double ProfitTarget=50;
extern string SpecificPairs="EURUSD";
Start
Code:
if(AccountEquity()>=(AccountBalance()+ProfitTarget))
{
CloseBuyOrders(Magic);
CloseSellOrders(Magic);
return(0);
}
Functions
Code:
//|---------close buy orders
int CloseBuyOrders(int Magic)
{
int result,total=OrdersTotal();
for (int cnt=total-1;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==Magic&&OrderSymbol()==SpecificPairs)
{
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
switch(OrderType())
{
case OP_BUYLIMIT:
case OP_BUYSTOP:
result=OrderDelete(OrderTicket());
}
}
}
}
return(0);
}
//|---------close sell orders
int CloseSellOrders(int Magic)
{
int result,total=OrdersTotal();
for(int cnt=total-1;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==Magic&&OrderSymbol()==SpecificPairs)
{
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
switch(OrderType())
{
case OP_SELLLIMIT:
case OP_SELLSTOP:
result=OrderDelete(OrderTicket());
}
}
}
}
return(0);
}