War mein Fehler.
Es lag (höchstwahrscheinlich) daran, dass ich bei OrderClose() bei einigen Stellen nur NULL eingetragen hatte. Müsste doch eigentlich egal sein, ob ich z.B. bei Ticket "double 1=23"; oder "string w = "woher soll ich das Ticket wissen?";" schreibe.
Aber anscheinend ist der MT4 nur zufrieden, wenn er die entsprechenden Bezeichnungen vorfindet.
Code:
if(OrderMagicNumber()==MN_FiSel||OrderMagicNumber()==MN_NeSel||OrderMagicNumber()==MN_FiBuy||OrderMagicNumber()==MN_NeBuy){
if(IsTradeAllowed()==true)OCsel=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}
Code:
if(OrderMagicNumber()==MN_FiBuy||OrderMagicNumber()==MN_NeBuy||OrderMagicNumber()==MN_FiSel||OrderMagicNumber()==MN_NeSel){
if(IsTradeAllowed()==true)OCbuy=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,clrRed);
if(IsTradeContextBusy()==true)Sleep(slMS);}