В скрипте ниже, после вызова второго CreateDataSource() не работает колбэк. Тестировалось на QUIK 9.5.0.42, lua 5.3.5 Проверьте кто-нибудь на последней версии Квик, есть ли этот баг?
Код
stopped = false
ClassCode = "TQBR"
SecCode = "GAZP"
function OnStop(row)
stopped = true
end
function main()
ds = CreateDataSource("QJSIM", "GAZP", INTERVAL_M1)
ds: SetUpdateCallback (cb)
ds: Close()
ds = CreateDataSource("QJSIM", "GAZP", INTERVAL_M1)
ds: SetUpdateCallback (cb)
while not stopped do
end
end
function cb( index )
local t = ds:T(index)
local _str = string.format("#%d of %d\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f %02d.%02d.%04d %02d:%02d:%02d.%04d\n",
index, ds:Size(),ds:O(index), ds:H(index), ds:L(index),
ds:C(index), ds:V(index),
t.day, t.month, t.year, t.hour, t.min, t.sec, t.ms)
message(_str)
end
На скриншоте видно, что первая часть полей из Инструмента находится за пределами группы, 2ая часть в самой группе. Могу предположить, что первая часть тоже должна быть в группе. Прошу прокомментировать.
Суть проблемы описана в заголовке. Ниже привожу запросы и ответы клиента-сервера:
Код
Запрос на исполнение сделки
20220906-14:19:19.044 : 8=FIX.4.29=19935=D34=5849=CLIENT152=20220906-14:19:19.04356=QFCC1=L01-00000F0011=CORID-1662473923-121=122=838=1040=244=26348=GAZP54=159=060=20220906-17:19:19.042100=MICEX109=E151041=MC010020000010=105
Ответ с данными по заявке
20220906-14:19:19.062 : 8=FIX.4.29=34835=849=QFCC56=CLIENT134=9452=20220906-14:19:1937=220906-TQBR-3246518839611=CORID-1662473923-1109=E1517=220906-TQBR-ZR6cYu-0-BdM0520=0150=039=01=L01-00000F0022=848=GAZP100=MICEX207=MICEX54=138=10151=1014=040=244=26315=SUR59=032=031=0.0000006=060=20220906-14:19:18.30321=15015=52245017=-3:00:005002=324651883965060=610=104
Запрос на получение сделок по заявке
20220906-14:19:19.063 : 8=FIX.4.29=10835=AD34=5949=CLIENT152=20220906-14:19:19.06256=QFCC11=CORID-1662473923-1568=TRID-1662473923-16569=4910=126
Ответ с ошибкой
20220906-14:19:19.064 : 8=FIX.4.29=9235=349=QFCC56=CLIENT134=9552=20220906-14:19:1945=5958=Unsupported message type373=1110=239
Пробовал подставлять в тэг 11 разные значение и всегда один ответ : Unsupported message type.
Здравствуйте. Столкнулся с нелогичной работой Security Definition Request. На примере USD000000TOD@CETS_GAME
При получении всех бумаг приходит вся информацию по данной бумаге, но если сделать запрос только по этой бумаге, то приходит ответ с ошибкой Security is locked now, try later.
"Fix Client Connector" предлагает работать по протоколу FIX 4.2, но спецификация больше схожа с FIX4.4, т.к. FIX4.2 - отсутствуют сообщения "Request for Positions", "Request for Positions Ack", "Position Report" (возможно другие, еще не всё проверил). Это вызывает большие проблемы, если использовать фреймворк, такой как quickfix и аналогичные, потому что для каждой спецификации у него описан свой набор классов и методов. Т.е. включив в работу протокол FIX42, программист не может использовать готовые классы для обработки Request for Positions, Request for Positions Ack, Position Report, т.к. они есть только в FIX44, но включив в работу протокол FIX44, возникают ошибки, тк протокол не соответствует версии на сервере.
Сейчас приходится колхозить, переносить классы и методы из фикс44 в фикс42, что сильно затрудняет разработку и адаптацию под вашу спецификацию FIX.
Предложение Добавить в FCC возможность подключаться по протоколу FIX44(а лучше FIX5+). Т.е. не меняя функционал FCC добавить возможность получать ответы с тегом 8=FIX.4.4 и 8=FIX.4.2(для созданных систем).
Здравствуйте. Заказывают стакана GAZP@TQBR, а получаю GAZP@MICEX. Я понимаю, что это одно и тоже, но по какому признаку в ответе в теге 100 указывается либо код рынка, либо код класса? Что первично для FCC: код рынка или код класса?
FCC Security Definition возвращает данные с пустым значением кода 48, хотя в документации указано, что по нему происходит идентификация инструмента. (версия руководство 3.6)
Здравствуйте! В таблице "Инструменты" не нашел параметр отвечающий за тип бумаги (фьючерс, опцион, др) Как определить к какому типу относится данный инструмент?
Здравствуйте. Сегодня установил QUIK Junior 9.7.0.14 для отладки своих программ, но при поптыке подключится к процессу QUIK просто закрывается. В боевой версии квика 9.5.0.42 такой проблемы нет.
Работает левый lua скрипт и мой. Оба скрипта подписываются на стаканы. Если остановить левый lua-скрипт, то он описывает от всех стаканов, включая стакан моего скрипта. Сейчас я в цикле проверяют подписку и заново подписываюсь, но хотелось бы это делать по событию "Отмена стакана"
Прошу внести данную возможность в функционал квика.
После onTransReply() вызывается onDepoLimit() c теми же значениями, что и до SendTransaction(). Изменения в onDepoLimit() происходят только после вызова onOrder(). Правильно ли я понимаю, что меняются какие-то внутренние параметры в depo_limits ?
Приветствую. Подскажите, где можно скачать файл спецификацию по вашему FIX-серверу? Точнее файл FIX50SP2.xml с вашими дополнениями к описанию протокола.
Периодически выводится ошибка "1000". Подскажите, это может значить? Появление ошибки хаотичное.
Мой код в С++
Код
int lua_OnQuote(lua_State *st)
{
int top = _luafix.GetTop();
if (top == 0) return 0;
string sec_code = _luafix.ToString(-1); // код бумаги
string class_code = _luafix.ToString(-2);// код класса
TABLEQuote quote = _luafix.getQuoteLevel2(class_code, sec_code);
_luafix.Pop(1);
_luafix.sendQuote(quote); // здесь отправка стакана в торговый робот
return 0;
}
В данном примере переменная sec_code иногда имеет значение = 1000.