Code:
for(int y=OrdersHistoryTotal()-1; y>=0; y--) {
if(OrderSelect(y,SELECT_BY_POS,MODE_HISTORY)) {
if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol())) {
Du suchst nach dem Schließen der Order in der History nach allen Orders, welche das selbe Symbol und die gleiche Magicnumber haben. Da müsstest du ja einige Treffer laden, da in der History ja alle für den aktuell gewählten Zeitraum vorhanden sind.
Code:
if(Optimizer) {
VirtualTrades(__FUNCTION__+"()"+"()",OrderTicket(),OrderType(),_Symbol,TimeToStr(OrderOpenTime(),TIME_MINUTES),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit(),"22:55",OrderClosePrice(),OrderLots(),"Life");
}
Zudem hast du über die letzte OrderSelect, ja irgendeine Order selektiert.
Im Coder für das Closen fragst du allerdings direkt wieder die OrderTicket() usw. ab ohne genau zu wissen, ob die letzte Orderselect auch noch die Order ausgewählt hat, welche du erwartest.