Дмитрий К
Дмитрий К личный блог
06 июня 2020, 16:35

Как я переехал на версию Quik 8.5 ничего не перекомпилируя и не переделывая в роботах. Лайфхак для нубов в программировании.

Из за того, что у меня накрылся на прошлой неделе арендуемый физический сервер, я решил его проапгрейдить  заодно установить в ВТБ новый квик.
В ВТБ  в частности постоянно прилетало сообщение, что надо устанавливать новый квик, что то там с нумерацией заявок на срочном рынке, а так же о том, что версия ЛУА, встроенного в квик, тоже проапгрейдится, и возможно скрипты работать не будут.

Все это пугало, так как программист из меня никакой, все что я умею, это нагуглить, как написать простые логические действия в Питоне или Луа.
В каждом втором посте было что то  про перекомпиляцию, а это для меня вообще не понятно, о чем речь.
Что значит перекомпиляция, если я в блокноте написал код, потом выбрал этот файл в квике, и запустил его нажав на треугольничек?

Ну ладно, деваться некуда, тем более, что когда с сайта ВТБ качаешь дистрибутив квика, там сейчас безвариантивно доступна только версия 8.5

Установил запустил. Скрипт, как и следовало ожидать, на первый взгляд, заработал сразу, без всяких «перекомпиляций». Потому что он написан в блокноте, а переводит в машинный код его (если я правильно понимаю, как все устроено) непосредственно встроенный в квике модуль ЛУА. 

Сам запускаемый скрипт Луа устроен так, что реагирует на события Квика, прошло событие, просто отправляет инфу о событии в скрипт Питона. А уже оттуда по алгоритму отправляются ордера через trans2quik.dll в Квик. Почему я всю логику не написал на Луа, это отдельная тема (я пробовал, но получилось коряво). 
И вот отправление в Питон я сделал через сокеты, это какая то библиотека, которую я в прошлом году нарыл в интернете - core.dll.

И когда произошло событие, вылезла ошибка. Луа скрипт событие не отправил, а просто ругнулся насчет того, что какая то проблема в core.dll. И тут до меня дошло, что по переделывать нужно вот такие ДЛЛ библиотеки.
На текущий момент для меня это не преодолимое препятствие, я не то что не знаю, как ее переделать, я не знаю как вообще такие библиотеки создаются. При этом, очевидно, что никто новые библиотеки еще не успел создать, или перекомпилировать.

Решение следующее, в квике есть (могут быть) файлы lua51.dll lua53.dll, lua5.1.dll, qlua.dll, может еще какие.
В новом квике были три последних файла, а в старом квике только два файла — первый и последний (при этом первый файл я ранее тоже вместе с библиотекой сокетов качал откуда то и тоже им подменил исходный в свое время).
Я просто тупо удалил все эти файлы в новом квике, и вместо них скопировал эти два файла со старого квика.

И все, вуаля, заработало как ни в чем ни бывало.
14 Комментариев
  • GOLD
    06 июня 2020, 20:39
    Удалить дэ-эль-эльки из живой программы — это сильный ход. Возможно, QUIK когда-нибудь вам отомстит за это… не удивляйтесь))
  • В Казино завезли новые рулеточные столы ,  опять нужно о новой привыкать к их работе, а это время и деньги.
  • Андрей Иванов
    06 июня 2020, 21:02


  • tashik
    06 июня 2020, 21:18
    Когда биржа перейдет на 19-значные номера, счастье кончится. Работает, пока не перешла. Lua 5.3 туда не зря досунули.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн