Из за того, что у меня накрылся на прошлой неделе арендуемый физический сервер, я решил его проапгрейдить заодно установить в ВТБ новый квик.
В ВТБ в частности постоянно прилетало сообщение, что надо устанавливать новый квик, что то там с нумерацией заявок на срочном рынке, а так же о том, что версия ЛУА, встроенного в квик, тоже проапгрейдится, и возможно скрипты работать не будут.
Все это пугало, так как программист из меня никакой, все что я умею, это нагуглить, как написать простые логические действия в Питоне или Луа.
В каждом втором посте было что то про перекомпиляцию, а это для меня вообще не понятно, о чем речь.
Что значит перекомпиляция, если я в блокноте написал код, потом выбрал этот файл в квике, и запустил его нажав на треугольничек?
Ну ладно, деваться некуда, тем более, что когда с сайта ВТБ качаешь дистрибутив квика, там сейчас безвариантивно доступна только версия 8.5
Установил запустил. Скрипт, как и следовало ожидать, на первый взгляд, заработал сразу, без всяких «перекомпиляций». Потому что он написан в блокноте, а переводит в машинный код его (если я правильно понимаю, как все устроено) непосредственно встроенный в квике модуль ЛУА.
Сам запускаемый скрипт Луа устроен так, что реагирует на события Квика, прошло событие, просто отправляет инфу о событии в скрипт Питона. А уже оттуда по алгоритму отправляются ордера через trans2quik.dll в Квик. Почему я всю логику не написал на Луа, это отдельная тема (я пробовал, но получилось коряво).
И вот отправление в Питон я сделал через сокеты, это какая то библиотека, которую я в прошлом году нарыл в интернете - core.dll.
И когда произошло событие, вылезла ошибка. Луа скрипт событие не отправил, а просто ругнулся насчет того, что какая то проблема в core.dll. И тут до меня дошло, что по переделывать нужно вот такие ДЛЛ библиотеки.
На текущий момент для меня это не преодолимое препятствие, я не то что не знаю, как ее переделать, я не знаю как вообще такие библиотеки создаются. При этом, очевидно, что никто новые библиотеки еще не успел создать, или перекомпилировать.
Решение следующее, в квике есть (могут быть) файлы lua51.dll lua53.dll, lua5.1.dll, qlua.dll, может еще какие.
В новом квике были три последних файла, а в старом квике только два файла — первый и последний (при этом первый файл я ранее тоже вместе с библиотекой сокетов качал откуда то и тоже им подменил исходный в свое время).
Я просто тупо удалил все эти файлы в новом квике, и вместо них скопировал эти два файла со старого квика.
И все, вуаля, заработало как ни в чем ни бывало.
Мой скипт луа просто отправляет сообщение в мой скрипт питон.
Это действие от количества цифр в номерах не зависит.
И вообще, биржа перейдет на 19 номера только на рынке фортс, а как же с ФР где количство цифр в номерах другое, или СПБ, который к номерам мос биржи вообще ни сном ни духом?
Я просто не понимаю, как номера заявок вообще связаны с типом данных Луа. Номера заявок это ведь просто значения, например для экспорта в mysql рекомендуемый тип данных decimal у которого по моему макс количество знаков до запятой может быть 64. То есть от биржи приходит значение, а в какой тип переменной его сохранит обработчик события, это же не от биржи зависит??? Я так понимаю, можно номер заявки и в строку сохранить?
Все настройки таблиц рабочего места Quik хранятся в файле info.wnd.
Информация по настройкам Система\Заказ данных\Поток обезличенных сделок храниться в файле info.ini.
Информация по настройкам Система\Заказ данных\Поток котировок в файлах sec.dat, par.dat, classes.dat.