например, так
For cnt=1 To TotalTrades
Begin
If OrderValue(cnt, VAL_SYMBOL) = Symbol() and OrderValue(cnt, VAL_TYPE) > OP_SELL Then
DeleteOrder(OrderValue(cnt,VAL_TICKET), Red);
End;
в приведённом коде проверяется "принадлежность" ордера текущему инструменту и проверяется, что этот ордер отложенный (вот значения параметра "тип": OP_BUY - 0, OP_SELL - 1, OP_BUYLIMIT - 2, OP_SELLLIMIT - 3, OP_BUYSTOP - 4, OP_SELLSTOP - 5). и только после этого берётся значение VAL_TICKET для его удаления.
Спасибо
Спасибо, я разобрался. Проблема отчасти была в том, что я пытался удалить уже удаленный ордер много раз, сейчас все нормально.
Спасибо, я разобрался. Проблема отчасти была в том, что я пытался удалить уже удаленный ордер много раз, сейчас все нормально.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ситуация такая:
MetaTrader 3.20
Пишется стратегия, в которой есть отложенные ордера.
Ее нужно протестировать в Strategy Tester.
При тестировании не удаляются отложенные ордера. Как я понял, они не имеют номера Ticket, поэтому команда скажем
DeleteOrder(OrderValue(1,VAL_TICKET),RED);
будет ругаться и не удалит этот ордер при тестировании.
Как все это обойти и как протестировать программку, удаляя в нужный мне момент отложенные ордера?