Простенький скрипт, который отправляет заявку на 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
