GitHub - cia76/QuikPy: Библиотека-обертка, которая позволяет получить доступ к функционалу торгового теримнала QUIK из Python

Библиотека-обертка, которая позволяет получить доступ к функционалу QUIK из Python на основе Документации по языку LUA в QUIK и примеры - Интерпретатор языка LUA. В качестве коннектора используются скрипты LUA проекта QUIK#.

Что такое библиотека-обертка?

Компактная библиотека, содержащая только самый необходимый код для работы с API брокера из Python:

  • Подключение к API. Отслеживание корректности подключения (обновление токенов, переподключение)
  • Выполнение запросов и получение ответов от API
  • Механизмы подписок, отмены подписок. Получение и разбор данных подписок
  • Конвертация типов данных брокера в типы данных Python и обратно. Например, цена, лоты/штуки, дата/время
  • Конвертация типов данных брокера в универсальные типы и обратно. Например, название тикера, режимы торгов, временнОй интервал
  • Ведение лога отправляемых и получаемых данных от API

Назначение

  • Создание автоматических торговых систем любой сложности
  • Написание дополнений к системам Технического Анализа
  • Тестирование торговых систем и автоматическая торговля в BackTrader через систему "Финансовая Лаборатория".

Установка

Установите библиотеку через командную строку:

pip install git+https://github.com/cia76/QuikPy.git

Начало работы

Скопируйте папку со скриптами LUA QUIK\lua в папку установки QUIK. Эти скрипты также можно получить из проекта QUIK# здесь >>>

Скопируйте папку QUIK\socket в папку установки QUIK. Библиотека core.dll для LUA версии 5.4.1 также выложена в проекте QUIK# здесь >>>

Запустите QUIK. Из меню Сервисы выберите LUA скрипты. Нажмите кнопку Добавить. Выберете скрипт QuikSharp.lua Нажмите кнопку OK. Выделите скрипт из списка. Нажмите кнопку Запустить.

Если в окне сообщений QUIK выдаст QUIK# is waiting for client connection..., то скрипт запущен успешно.

В папке Examples находится хорошо документированный код примеров. С них лучше начать разбираться с библиотекой.

  • Connect.py - Проверка работоспособности запросов/ответов и подписок
  • Accounts.py - Получение позиций, свободных средств, активных заявок (лимитные и стоп) для каждого счета
  • Ticker.py - Спецификация тикеров с лотом, шагом цены, кол-вом десятичных знаков
  • Bars.py - Получение дневных свечек с начала истории
  • Stream.py - Подписка на котировки, стакан, последние сделки
  • Transactions.py - Получение последней цены. Выставление/исполнение рыночных заявок на покупку и продажу. Выставление/отмена лимитной заявки. Выставление/отмена стоп заявки.

Авторство, право использования, развитие

Автор данной библиотеки Чечет Игорь Александрович.

Библиотека написана в рамках проекта Финансовая Лаборатория и предоставляется бесплатно. При распространении ссылка на автора и проект обязательны.

Исправление ошибок, доработка и развитие библиотеки осуществляется автором и сообществом проекта Финансовая Лаборатория.

Что дальше