В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина? Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
Пользователь
Сообщений: Регистрация: 30.01.2015
02.02.2026 06:34:47
Цитата
User12501 написал: В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина? Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
А зачем Вам trans_id в сделке? ------------------- Поясняю: Сделка совершается по выставленной заявке. В сделке есть номер заявки, Номер есть всегда и по нему можно найти эту заявку. ----------------------------- trans_id - это номер транзакции, по которой уже выставлена заявка. т е транзакция уже давно исполнена. Вместо нее есть заявка. В данном случае и заявка исполнена, вместо нее есть сделка. Т е даже заявку нет смысла искать, а уж trans_id тем более...
написал: В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина? Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
А зачем Вам trans_id в сделке?
Конкретно trans_id мне не нужен. Но если по протоколу он должен прийти, и не приходит, значит что-то пошло не так. В другой раз не прийти может что-то более серьёзное, например комиссия. Или это другое? Вопрос отчасти пересекается с моим предыдущим вопросом про повторные OnTrade ( ). Т.е. по trans_id=0 я пытался фильтровать OnTrade, которые заведомо не последние.
написал: В последнее время несколько раз наблюдал такое: приходит OnTrade, в котором trans_id=0. Я знаю, что это промежуточная версия, поэтому в мой алгоритм вписано игнорировать такие вызовы, ожидая более полных. И почти всегда они приходят. Но в среднем 1-2 раза за день случается так, что полный OnTrade с ненулевым trans_id так и не приходит. В чём может быть причина? Я мог бы убрать эту дополнительную проверку из своего кода и обрабатывать такие вызовы, в принципе trans_id мне ни для чего не нужен, достаточно brokerref. Но ведь может не прийти что-то более важное. Например бывает, что приходит OnTrade с нулевой комиссией, и сразу после него ещё один OnTrade с заполненной комиссией. Здесь сбоев не было ни разу, но что если он тоже не придёт?
А зачем Вам trans_id в сделке?
Конкретно trans_id мне не нужен. Но если по протоколу он должен прийти, и не приходит, значит что-то пошло не так. В другой раз не прийти может что-то более серьёзное, например комиссия. Или это другое? Вопрос отчасти пересекается с моим предыдущим вопросом про повторные OnTrade ( ). Т.е. по trans_id=0 я пытался фильтровать OnTrade, которые заведомо не последние.
Предположу, что он не приходит при выполнении заявки в нескольких сделках, либо в заявках, установленных до за пуска скрипта. Но это лишь предположение.
QUIK clients support
Сообщений: Регистрация: 11.08.2025
03.02.2026 12:05:28
Добрый день.
Уточните, пожалуйста, версию Рабочего места QUIK, которую Вы в данный момент используете? Используется свой скрипт или какие-то готовые библиотеки? По каким именно сделкам не приходят trans_id, можете привести пример? Заполнен ли при этом параметр в Таблице Сделок в Рабочем месте?
Уточните, пожалуйста, версию Рабочего места QUIK, которую Вы в данный момент используете? Используется свой скрипт или какие-то готовые библиотеки? По каким именно сделкам не приходят trans_id, можете привести пример? Заполнен ли при этом параметр в Таблице Сделок в Рабочем месте?
Версия quik 12.6.0.53. Полностью свой скрипт. Например сделка на покупку одной акции SOFL. Последний раз ошибка была 1-го февраля. За короткий промежуток были совершены три абсолютно идентичные сделки по близкой цене: в 17:01:54, в 17:04:15, и в 17:05:29. Все три на покупку одной акции SOFL. По первой и третьей сделкам пришли три функции OnTrade. По второй сделке только одна. Замечу также, что по первой и третьей сделкам вместе с функциями OnTrade приходили также две функции OnOrder, по второй сделке функция OnOrder пришла только одна. Но в эти функции я не заглядывал, не могу сказать, в чём отличие (если это важно - могу заглянуть, всё сохранено). Каких-либо особых событий, предшествовавших этой ошибке, типа разрыва соединения и т.д., не наблюдалось.
Пользователь
Сообщений: Регистрация: 30.01.2015
04.02.2026 05:56:32
, Два вопроса, которые могут дать ответ. 1) С какой задержкой у вас Sleep в main? 2) есть ли у Вас очередь событий?
Пользователь
Сообщений: Регистрация: 26.11.2025
05.02.2026 01:33:09
Цитата
nikolz написал: , Два вопроса, которые могут дать ответ. 1) С какой задержкой у вас Sleep в main?
2) есть ли у Вас очередь событий?
Пользователь
Сообщений: Регистрация: 26.11.2025
05.02.2026 01:35:11
Цитата
nikolz написал: , Два вопроса, которые могут дать ответ. 1) С какой задержкой у вас Sleep в main? 2) есть ли у Вас очередь событий?
1) 585 секунд. 2) Не знаю. А что это?
(Предыдущее сообщение отправилось по ошибке, не ту клавишу нажал).