Closed QApplication closed 4 years ago
Номер сделок (trade_num) обновил в 7e222c60400be66207d636a40f41aa3b00520040 Номер заявок (order_num) не обновлял, у вас есть возможность подтвердить, что они тоже не работают и стали 19-значными? Я к сожалению, не могу проверить, FORTS есть только на продакшн терминалах, работу с ним сейчас не веду, а Quik Junior (demo-доступ от Arqa) до сих пор транслирует записи со старыми номерами сделок и в вопросе заявок на него опираться так же нельзя.
Каким Вы сейчас пользуетесь терминалом на moex?
В этих сообщениях идет только о срочном рынке (Spectra). На срочном рынке в демо-терминале Квика идет проигрыш старых записанных событий, то есть со старыми номерами сделок, поэтому там я не могу проверить какие поля изменились, а какие нет. Являются ли все поля, называемые orders в QLua полями, куда транслируются номера сделок со срочного рынка, или часть этих полей осталась Int и их менять не нужно. У меня есть доступ к продакшн терминалам Quik 8 64-битному и 7 32-битному, на которых можно это проверить, исполнив реальные сделки на реальной бирже и посмотреть, какие будут номера в каких таблицах. Но на срочном рынке я заявки не выставляю сделки не исполняю в настоящий момент, и специально исполнить ради проверки у меня тоже возможности нет. Что касается пассивной информации, типа all_trades сделок, их я проверил в 64 и 32 терминалах.
выше я привел таблицу ордеров для срочного рынка с ордером на покупку - нужно посмотреть как при этом работет qluacpp? или нужно сделку совершить?
Проверил работу OnOrder callback на срочном рынке. При выставлении ордера, а также его снятия, кидается исключение (предположительно на поле order_num)
Exception at 0x7ffb633aa388, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) at contrib\qluacpp\contrib\luacpp\src\entity.hpp:63
PLUGIN: 2020-Feb-17 11:25:22.908 void __cdecl quik::QLua::OnOrder(const struct lua::state &,const struct lua::entity<struct lua::type_policy<class qlua::table::orders> > &) EXCEPTION: Luacpp entity get: typecheck failed (Lua type at stack index -1 is nil; content as string: <Oops, got null from Lua when tried to get actual content as string>)
Также брокер за спамил сообщением
Думаю можно смело менять все поля ордеров на string
Давайте действительно сделаем так. Заменю все поля с номерами сделок/заявок на строки. А если у кого-то возникнут проблемы с измененными номерами, уже будем фиксить по месту.
Ок, буду тестить на фонде и срочном рынках. Спасибо за оперативность.
Добавил, когда будете тестировать, проверьте, пожалуйста стоп-заявки. Думаю, там используется внутренний номер сервера Quik, и его следует откатить обратно в int.
Проверил стоп-заявку, исключений из-за смены типа данных номера int
to string
не кидает.
QUIK:
QLUACPP:
Проверил лимитную заявку на FORTS (SPBFUT), иключений не кидает QUIK: QLUACPP:
alltrade callback работает без иключений
Завтра скину сканы с транзакций
Проверил стоп-заявку, исключений из-за смены типа данных номера
int
tostring
не кидает.QUIK:
Судя по скрину, order_num короткий?
да, номер короткий. У меня есть предположение, что арка когда нибудь и эти ордера переведет на 19-значные. Теоретически можно оставить uint.
Добрый день. Прошу Вас внести изменения в библиотеку в связи с переходом Spectra 6.3 с 14-значного на 19-значные номера заявок и сделок. Ссылка на ветку quik форума. Проблему частично описал в issues.
Изменения предположительно касаются:
Пример значения полей callback alltrade, полученные через qluacpp quik при этом аналогичные значения в quik для приведенной выше сделки
QUIK 8.3.2.4 Библиотеки (на сколько я понял используется lua5.1 (на lua5.3 quik не перешел))