Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На сегодняшний день меня такая проблема беспокоит:
DK 0 16:02:03.239 Network '12126': terminal synchronized with ОАО ''Брокерский дом ''ОТКРЫТИЕ''
FO 0 16:04:07.942 Trades '12126': buy limit 1.00 SBPR-9.14 at 5000
QD 0 16:04:08.004 Trades '12126': accepted buy limit 1.00 SBPR-9.14 at 5000
GI 2 16:04:08.020 Trades '12126': failed buy limit 1.00 SBPR-9.14 at 5000 [Invalid price]
А в общем с новым билдом новые сюрпризы (
На прошлом билде стакан перестал работать ...
Дело в том, что биржа для любого контракта может выставлять лимиты цен отложенных ордеров для безопасности.
Вы легко можете сами увидеть эти характеристики в деталях инструмента:
Я специально только что проверил на реальном счете:
То есть, ошибки нет.
А что пишется в логах?
Лимитные ордера, находящиеся близко к исполнению, могут не удаляться - это решают настройки сервера.
Renat, КОД не менялся!
в 930 - НОРМАЛЬНО
в 965 - НОРМАЛЬНО
в 975 периодически не удаляются!
Логи в сервисдеске.
Renat, КОД не менялся!
Приведите логи, пожалуйста. Включая результаты вашей штатной распринтовки результата операции.
Обоснование что код не менялся, ничего не значит. Я описал возможную проблему - неправильная работа с тикетами.
Кроме того, у вас есть явная проблема - нет обработки отрицательного результата OrderSelect. Поставьте там распринтовку и скорее всего увидите, что тикет в функцию приходит ошибочный.
tol64, ясно же написано, что в 965 ВСЁ РАБОТАЛО!
Но если хочется посмотреть, то пожалуйста:
А теперь так.
Приведите логи, пожалуйста. Включая результаты вашей штатной распринтовки результата операции.
Обоснование что код не менялся, ничего не значит. Я описал возможную проблему - неправильная работа с тикетами.
LG 0 10:00:10.684 Trades '-----': buy limit 3.00 SNGR-12.14 at 25202
..................................
QK 0 10:04:32.311 Trades '-----': cancel order #5129196 buy limit 3.00 SNGR-12.14 at 25202Ну раз такое дело. Было так.
А теперь так.
Классическая ошибка с выбиванием табуретки из-под ног.
Вы не обращаете внимание, что после успешного удаления количество ордеров у вас уменьшается и индекс становится неправильным.
Кроме того, этот код рекурсивный и при неудаче удаления вы гарантированно исчерпаете стек и получите остановку эксперта по критической ошибке.
Renat,
Вот записть из севисдеск:
Версия и битность терминала
5.0 build 871 64-bit Брокер "Открытие", реальный счёт
Описание проблемы
Достаточно часто не удаляется выставленный ордер
Последовательность действий
Выставляется отложенный ордер ( long ) на фьючерс GOLD-3.14, а затем я его удаляю
Полученный результат
Ордер не удаляется с сообщением "invalid request"
Ожидаемый результат
Ордер удаляется
Это было в 871 билде, потом исправили, а сейчас снова!
Классическая ошибка с выбиванием табуретки из-под ног.
Вы не обращаете внимание, что после успешного удаления количество ордеров у вас уменьшается и индекс становится неправильным.
Тогда пока заберу свои слова обратно. Надо перепроверить.
Полагаю что цикл должен быть таким
А раньше работало.Только что повторил такой ордер, а потом программно его удалил вашим скриптом:
Вот скрипт, чуть упростил и убрал лишнее (для удаления ордера достаточно его номера):
Тогда пока заберу свои слова обратно. Надо перепроверить.
Полагаю что цикл должен быть таким
А раньше работало.Оно теоретически может иногда срабатывать, так как все зависит от скорости обновления базы открытых ордеров с сервера и процессы обновления асинхронные.
Но ошибка классическая, ей минимум 10 лет. Самый простой способ - удалять циклом с конца.