/qlua-exocket

QUIK qlua lua биндинги на Python, Go, Perl

Primary LanguageLua

Чё

Простой QUIK qlua сервер, висящий на порту и принимающий луа-код для исполнения, в ответ выдающий json. И биндинги на разных языках, включая сам lua. Такого сервера достаточно для написания не-HFT роботов.

Имеет минимум зависимостей: только dkjson и luasocket (взят из https://github.com/lua-batteries/lua-batteries/releases/tag/v0.5.15). Обе включены в репу.

qlua-exocket позволяет без знания экосистемы луа писать код для квика на разных языках. Способен исполнять код по сети, присылаемый другими компьютерами. Работает под wine.

Установка

Клонировать эту репу:

git clone https://github.com/mzavoloka/qlua-exocket

Создать софт-ссылку на код в директории квика:

cd path-to-quik-directory
ln -s ~/path-to-qlua-exocket lua

Теперь в квике в Сервисы→Lua скрипты выбрать exocket.lua и нажать Запустить

Запустить какой-нибудь из биндингов, например:

perl bindings/perl.pl

И увидеть примерно такой результат в stdout:

Session status: основная сессия
USDRUBF best offer: 78.550000
USDRUBF best bid: 78.540000

Как работает

Получает по сокету код и исполняет его в pcall(). Святая простота.

  • TODO вынести cpath и путь к логам в конфиг
  • TODO Запуск под виндой (портировать пути к файлам)
  • TODO клиенты на Python, Go, lua