Как отслеживать конкретную сделку, закрылась она уже или нет.
Запоминать ее тикет и потом, на каждом тике, проверять есть ли она в списке открытых ордеров?
Или есть какой-то более удобный способ?
А чем этот плох? Работает компьютер же, а мы отдыхаем. А он пусть работает, он железный... Ну можно, только осторожно, еще OrdersTotal() проверять.
А чем этот плох? Работает компьютер же, а мы отдыхаем. А он пусть работает, он железный... Ну можно, только осторожно, еще OrdersTotal() проверять.
может OrderType() меняется на -1, если она попадает в список закрытых? да нет же, остается таким же.
может какое свойство меняется?
Как отслеживать конкретную сделку, закрылась она уже или нет.
Запоминать ее тикет и потом, на каждом тике, проверять есть ли она в списке открытых ордеров?
Или есть какой-то более удобный способ?
На каждом тике:
for (по массиву отслеживаемых ордеров) { if (!OrderSelect(nTicket[i], SELECT_BY_TICKET)) continue; if (OrderCloseTime() == 0) { // Ордер находится в списке рабочих (MODE_TRADES) } else { // Ордер находится в истории счета, т. е. закрыт или удален (MODE_HISTORY) } }
Но со временем, если речь именно о стратегиях, пришел к тому, что выгоднее не по тикетам отслеживать, а на каждом тике формировать список ордеров эксперта заново, используя специальные признаки, записываемые в Magic Number.
В этом случае требуется только один проход по списку ордеров на один тик. Если же поддерживать список по тикетам, помня предыдущее состояние, то придется проходить список несколько раз: удаление из списка закрытых/отмененных ордеров, модификация данных в измененных ордерах, добавление новых ордеров.
На каждом тике:
Но со временем, если речь именно о стратегиях, пришел к тому, что выгоднее не по тикетам отслеживать, а на каждом тике формировать список ордеров эксперта заново, используя специальные признаки, записываемые в Magic Number.
В этом случае требуется только один проход по списку ордеров на один тик. Если же поддерживать список по тикетам, помня предыдущее состояние, то придется проходить список несколько раз: удаление из списка закрытых/отмененных ордеров, модификация данных в измененных ордерах, добавление новых ордеров.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Запоминать ее тикет и потом, на каждом тике, проверять есть ли она в списке открытых ордеров?
Или есть какой-то более удобный способ?