hallo
MA-EA,
wenn ich eine bool Variable deklariere ist sie automatisch true? ok.
@
Indikator-Trading
du hast völlig recht.Ich habe den Code etwas eingekürzt weil noch ein paar andere Dinge über diese Funktion geregelt werden.
Es ist aber nur der Teil den ich kopiert habe fehlerhaft.
Leider habe ich kein Idee woran es liegen kann.
hier noch der Teil für die Market Orders.
Und Danke für eure Bemühungen.
Code:
void CloseAllOpenPositions(string f, int intMaxSlippage) {
if(debug)
Print(">>>",f,"::",__FUNCTION__+"()");
bool checkOrderClose=true;
int index=OrdersTotal()-1;
while(index>=0) {
if(OrderSelect(index,SELECT_BY_POS,MODE_TRADES)) {
Print(f,"::Close all Positions durchlauf ",cap,"| ",TimeCurrent());
if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
RefreshRates();
if(OrderType()==OP_BUY || OrderType()==OP_SELL) {
Print("::index market Order ",index,"|type ",OrderType(),"|ticket ",OrderTicket());
if(OrderType()==OP_BUY) {
checkOrderClose=OrderClose(OrderTicket(),OrderLots(),Bid,Deviation,CLR_NONE);
if(checkOrderClose){
if(pLable)
ProfitLable(__FUNCTION__);
if(Optimizer)
VirtualTrades(__FUNCTION__+"()"+"()",OrderTicket(),OrderType(),_Symbol,TimeToStr(OrderOpenTime(),TIME_MINUTES),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),"22:55",OrderClosePrice(),OrderLots(),"Life");
}
}
if(OrderType()==OP_SELL) {
checkOrderClose=OrderClose(OrderTicket(),OrderLots(),Ask,Deviation,CLR_NONE);
if(checkOrderClose){
if(pLable)
ProfitLable(__FUNCTION__);
if(Optimizer)
VirtualTrades(__FUNCTION__+"()"+"()",OrderTicket(),OrderType(),_Symbol,TimeToStr(OrderOpenTime(),TIME_MINUTES),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),"22:55",OrderClosePrice(),OrderLots(),"Life");
}
}
if(checkOrderClose==false) {
int errorCode=GetLastError();
if(errorCode==1 || errorCode==2 || errorCode==5 || errorCode==6 || errorCode==64 || errorCode==65 || errorCode==132 || errorCode==133 || errorCode==139) {
Print(__FUNCTION__," Error: marketOrder",ErrorDescription(errorCode));
break;
} else continue;
}
}
if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) {
checkOrderClose=OrderDelete(OrderTicket(),CLR_NONE);
if(!checkOrderClose) {
int errorCode=GetLastError();
if(errorCode==1 || errorCode==2 || errorCode==5 || errorCode==6 || errorCode==64 || errorCode==65 || errorCode==132 || errorCode==133 || errorCode==139) {
Print(__FUNCTION__," Error: delete pendingOrder ",OrderTicket(),"|",OrderComment(),"|",ErrorDescription(errorCode));
}
}
}
}
}
index--;
}