Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 07.02.18
JungyOC JungyOC ist offline
Neues Mitglied
 
Registriert seit: Dec 2016
Ort: München
Beiträge: 5
JungyOC befindet sich auf einem aufstrebenden Ast
Standard

folgendes sollte dir helfen:

mit der funktion kannst du im String Format die Uhrzeit übergeben z.B. "21:00:00" liefert dir true zurück wenn es Freitag ist und die Uhrzeit erreicht

bool CheckFridayCloseTime(string sCloseTime)
{
bool bBack=false;
datetime TC=TimeCurrent();
datetime tClose=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE )+" "+sCloseTime);


if(DayOfWeek()==5 && TC>tClose)
{
bBack=true;
} else {
bBack=false;
}
return(bBack);
}


danach kannst du klassisch alle orders schliessen, wenn es mehrere sind gerne refreshrates nutzen, damit du einen neuen kurz bekommst, anbei ein Beispiel für BUY Trades, kann natürlich auf alle angewendet werden.

bool CloseAllBuyV2(int MagicNumber,int Slippage)
{
bool ticket;

for(int i=0; i<OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) //SELECT_BY_POS
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderType()==OP_BUY)
{
ticket=OrderClose(OrderTicket(),OrderLots(),OrderC losePrice(),Slippage,Black);
if(ticket==false)
{
Print("Error on Orderexecution CloseAllBuy: "+IntegerToString(GetLastError()));

while(RefreshRates()==false) Sleep(1);
ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Sl ippage,Black);

if(ticket==false)
{
Print("Error on Orderexecution CloseAllBuy Try2: "+IntegerToString(GetLastError()));

while(RefreshRates()==false) Sleep(1);
ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Sl ippage+1,Black);
if(ticket==false)
{
Print("Error on Orderexecution CloseAllBuy Try3: "+IntegerToString(GetLastError()));

while(RefreshRates()==false) Sleep(1);
ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Sl ippage+2,Black);

}

}

}
}

return true;
}

hoffe das hilft dir weiter...
Beste Grüße
Christian