Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 07.11.17
RetepM RetepM ist offline
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 240
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Hi, Ja, Ja, so ist das mir den kleinen Anfragen... das verwende ich für so was. Bei jedem Tick aufrufen. Davor guckst Du noch, ob Orders vorhanden sind. Die Variablen (CheckAmount und MagicNo) musst Du anpassen:

---------------------------------------------------------
void CheckOpenOrdersAll()
{
double profit = 0;
for (int i=OrdersTotal()-1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
{
profit += OrderProfit();
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
}
if (profit > CheckAmount)
{
CloseOrders();
}
}

void CloseOrders(int type=-1)
{
bool select,close,del;
for(int i=OrdersTotal()-1;i>=0;i--)
{
select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrdersTotal()>0&&OrderSymbol()==Symbol()&&Order MagicNumber()==MagicNo)
{
if(OrderType()==type||type==-1)
{
if(OrderType()==OP_BUY){close=OrderClose(OrderTick et(),OrderLots(),NormalizeDouble(Bid,Digits),4*Pip Value*Point);}
if(OrderType()==OP_SELL){close=OrderClose(OrderTic ket(),OrderLots(),NormalizeDouble(Ask,Digits),4*Pi pValue*Point);}
if(OrderType()>OP_SELL){del=OrderDelete(OrderTicke t());}
}
}
}
}

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

Grüße