Простенький скрипт, который отправляет заявку на 1 лот в Quik_Junior по сберу так, чтобы она заведомо исполнилась.
В нём определены два колбэка, OnTransReply и OnOrder
В результате вижу, что OnOrder вызывается по-моей заявке два раза (она имеет 1 лот и исполняется сразу).
Причём, очевидно, так бывает не всегда. Но заметил что такое получается чаще, если делать перед этим реконнект с сервером.
Код:
Результат работы (копирую из сообщений)
Вопрос, это разве нормально? Чем обусловлено? Кто сталкивался? Как боретесь?
Номер транзакции - не статический, для теста генерится рандомом от 1 до 1000
В нём определены два колбэка, OnTransReply и OnOrder
В результате вижу, что OnOrder вызывается по-моей заявке два раза (она имеет 1 лот и исполняется сразу).
Причём, очевидно, так бывает не всегда. Но заметил что такое получается чаще, если делать перед этим реконнект с сервером.
Код:
Код |
---|
function OnTransReply(trans) -- Если поступила информация по текущей транзакции message("TransReply:\n" .. --trans.date_time .. '\n' .. tostring(trans.trans_id) .. '\n' .. trans.sec_code .. '\n' .. tostring(trans.status) .. '\n' .. tostring(tobin(trans.flags)) .. '\n' .. tostring(trans.order_num) .. '\n' .. tostring(trans.quantity) .. '\n' .. tostring(trans.price) .. '\n' .. trans.result_msg); end; function OnOrder(order) -- Если поступила информация по сделке message("OnOrder {\n" .. --trade.datetime .. '\n' .. " trans_id: " .. tostring(order.trans_id) .. '\n' .. " order_num: " .. tostring(order.order_num) .. '\n' .. " flags: " .. tostring(tobin(order.flags)) .. '\n' .. " brokerref: " .. tostring(order.brokerref) .. '\n' .. " balance: " .. tostring(order.balance) .."\n" .. " qty: " .. tostring(order.qty) .. '\n' .. " value: " .. tostring(order.value) .. '\n' .. " account: " .. tostring(order.account) .. '\n' .. " activation_time: " .. tostring(order.activation_time) .. '\n' .. " ext_order_status: " .. tostring(order.ext_order_status) .. '\n' .. " trading_session: " .. tostring(order.trading_session) .. "\n}"); end; |
Результат работы (копирую из сообщений)
Код |
---|
TransReply: 236 SBER 3 1001000000000000000001 6307340506 1.0 369.5 (161) Заявка N 6307340506 зарегистрирована. Удовлетворено 1 OnOrder { trans_id: 236 order_num: 6307340506 flags: 11000 brokerref: 10112// balance: 0.0 qty: 1.0 value: 3695.0 account: NL0011100043 activation_time: 0 ext_order_status: 0 trading_session: 0 } OnOrder { trans_id: 236 order_num: 6307340506 flags: 11000 brokerref: 10112// balance: 0.0 qty: 1.0 value: 3695.0 account: NL0011100043 activation_time: 0 ext_order_status: 0 trading_session: 0 } |
Вопрос, это разве нормально? Чем обусловлено? Кто сталкивался? Как боретесь?
Номер транзакции - не статический, для теста генерится рандомом от 1 до 1000