Skip to content

Lua library for connecting Evraon with Quik terminal

License

Notifications You must be signed in to change notification settings

avently/EvraonQ

Folders and files

NameName
Last commit message
Last commit date
Aug 14, 2020
Aug 14, 2020
Aug 14, 2020
Aug 14, 2020
Aug 14, 2020
Aug 14, 2020
Mar 16, 2021
Aug 14, 2020
Aug 14, 2020
Aug 14, 2020
Aug 14, 2020
Aug 9, 2021
Aug 14, 2020

Repository files navigation

Эта библиотека позволяет "общаться" торговым терминалам Evraon и Quik. Через нее можно получать информацию с бирж и отправлять заявки. Цель проекта проста: дать возможность пользователям Evraon торговать на Московской и Санкт-Петербургской биржах, а никак не повторение всего API Quik'a. То есть реализовано лишь то, что требуется в данный момент. Заявки на новый функционал не принимается, если это не касается непосредственно Эвраона.

Зачем эти скрипты нужны

Для начала неплохо бы понять, зачем они вообще нужны. К сожалению, нельзя торговать на биржах в обход Квика. И вот для того, чтобы иметь таки возможность торговать, придуман Lua API Квика. Это некая договоренность двух программ, как обмениваться информацией. Эти скрипты запускают два сокет сервера, к которым подключается программа, и начинается взаимная отправка и получение информации. При этом запросы от программы передаются непосредственно в Квик.

Как использовать

Скачайте на этой странице архив с версией, равной версии Evraon. Если таковой нет, а у вас самая новая версия Evraon, то скачивайте самый верхний архив. Распакуйте его в любую папку. Затем зайдите в Квик, выберите меню Сервисы -> Lua скрипты..., затем Добавить, выберите файл под названием Server.lua, Открыть, нажмите Запустить. Все, теперь можно подключаться к серверу из программы Evraon, а вот и инструкция, как это сделать.

Как подключиться к двум терминалам сразу

Достаточно сделать ряд простых действий:

  1. Найдите в файле config.json секцию servers, там будет название опции scriptName со значением Server_2. В данном случае Server_2 является названием файла в папке lua (расширение .lua в config.json указывать нельзя).
  2. Измените опции согласно вашим предпочтениям. По умолчанию, дополнительный сокет сервер будет запущен на localhost'e (т.е. опции responseHostname и callbackHostname имеют значение 127.0.0.1), а порты (опции responsePort и callbackPort) равны 15515 для сервера запросов-ответов и 15516 для сервера коллбэков (данные, которые хочет отправить Квик). Порты не должны конфликтовать с уже указанными портами в файле config.json
  3. Добавьте Server_2.lua в Quik и запустите. При этом необязательно запускать Server.lua, если он вами не используется. Если используется и для него указаны другие порты, то, безусловно, можно запускать оба.

Все!

Вопросы и ответы

  • Как добавить еще сервера?

Скопируйте файл Server_2.lua и сохраните его в той же папке под другим именем, например, MyBroker.lua. В файле config.json в секции servers скопируйте текст внутри фигурных скобок {"scriptName"..."responseHostname"..."responsePort"..."callbackHostname"..."callbackPort"...}, поставьте запятую после }, вставьте скопированный текст и измените в нем данные. Как минимум, нужно указать в scriptName название файла скрипта (в примере это MyBroker), а в опциях портов указать любые свободные номера портов. Такую процедуру можно делать столько раз, сколько серверов вам нужно. Не забудьте, что responsePort и callbackPort не могут быть одинаковыми и повторяться в файле.

  • Как обновляться на новые версии библиотеки и скриптов в частности?

В новых версиях будет меняться код скриптов и код config.json. Но если вы вносили изменения в config.json, то сохраните в другом месте файл с вашими изменениями. После этого замените все старые файлы новыми. Обратите внимание, что, возможно, в одном из обновлений содержимое Server_2.lua изменится и все созданные вами лично копии этого файла потребуется пересоздать на основе обновленного файла. Продолжаем. Отредактируйте файл config.json в соответствии с настройками из старого файла (если не меняли ничего, делать ничего не надо). Процесс обновления завершен.

  • Как сделать так, чтобы можно было подключаться к сокету из локальной сети WiFi с другого устройства?

Нужно указать в responseHostname и callbackHostname значение 0.0.0.0. Лучше так не делать и вот, почему. Когда компьютер подключен к роутеру, то разрешение подключаться к нему извне (а именно это делает 0.0.0.0) открывает доступ к нему всему миру при допущении, что роутер недостаточно хорошо защищен и настроен. А так как при подключении к сокетам нет ни пароля, ни шифрования, открытый доступ всему миру открывает ваш Квик всем. Т.е. если вы все же хотите подключаться из локальной сети, позаботьтесь о безопасности и верных настройках роутера.

  • Как можно подключаться из локальной сети безопасно?

Просто подключайтесь к серверу Evraon, запущенному на вашем компьютере. responseHostname и callbackHostname должны быть равны 127.0.0.1. В таком случае подключение будет защищено логином и паролем, а само соединение между мобильной версией и настольной будет зашифровано.

  • Можно ли переименовать Server_2.lua?

Да, только укажите новое имя в scriptName файла config.json.

  • Можно ли переименовать Server.lua?

Нет. Этот файл обязательно должен сохранить свое имя, потому что все остальные скрипты используют часть его кода.

  • Создается папка logs, зачем она?

Там пишется диагностическая информация и ошибки. Иногда полезно туда заглядывать в поиске чего-то необычного.

About

Lua library for connecting Evraon with Quik terminal

Resources

License

Stars

Watchers

Forks

Languages