Очень странный случай ошибки 4108
Когда используется выбор по тикету в функции OrderSelect(), то значение третьего параметра игнорируется. В итоге ордер с заданным тикетом может находиться не в списке рабочих ордеров, а в истории счета. Поэтому при таком подходе к выбору ордера нужно дополнительно проверять, в каком списке находится ордер:
if (OrderSelect(ordz[i].order_ticket,SELECT_BY_TICKET)) { if (OrderCloseTime() == 0) { // Ордер выбран в списке рабочих ордеров, с ним возможны торговые операции } else { // ордер в истории счета, торговые операции невозможны, ордеру уже ничто не поможет ))) } }
Вот такой код в тестере оногда выдает ошибку 4108
С чем это может быть связано?
if(OrderSelect(ordz[i].order_ticket,SELECT_BY_TICKET,MODE_TRADES)) {
ot=OrderType();
if(ot>1){
if(!OrderDelete(ordz[i].order_ticket,clrMagenta)){
Print(ordz[i].order_ticket,"--------- Ordertype ",ot);
}
}
}