Skip to main content

Backtrader-next connector for QUIK terminal

Project description

bn_quik

PyPi Release Total downloads Made with Python License

Интеграция Backtrader-Next с торговым терминалом QUIK для реальной торговли

Установка

pip install bn_quik

Внимание: для работы bn_quik необходимо в торговом терминале QUIK установить и запустить Lua коннектор. Подробнее

Как получить Demo доступ к Quik

Демо доступ можно получить на сервере ARQA

Параметры объектов

QuikStore

Параметр Значение по умолчанию Обязательный Примечание
trade_account_id Да Торговый счет
client_code_for_orders Да(для Finam) Номер торгового терминала. У брокера Финам требуется для совершения торговых операций
host "127.0.0.1" Host с Quik Lua коннектором
port 34130
lots True Входящий остаток в лотах (задается брокером)
limit_kind 1 Основной режим торгов T1 (Для Demo Quik -1)
currency "SUR" Валюта
futures_firm_id "SPBFUT" Идентификатор фирмы для фьючерсов
edp False Единая денежная позиция
slippage_steps 10 Кол-во шагов цены для проскальзывания, для рыночных ордеров
data_dir "DataQuik" Каталог для хранения данных, свечные данные тикеров и состояние объекта Broker с ордерами

QuikData

Параметр Значение по умолчанию Обязательный Примечание
drop_price_doji True False - не пропускать дожи 4-х цен, True - пропускать
live_bars False False - только история, True - история и новые бары
count 2000 Количество запрашиваемых исторических баров по умолчанию

Быстрый старт

import logging
import backtrader_next as bt
from bn_quik import QuikStore

class MyStrategy(bt.Strategy):
    def __init__(self):
        # Инициализация торговой системы
        self.isLive = False  # Сначала будут приходить исторические данные

    def next(self):
        # Получаем данные текущего бара и печатаем
        close = self.data.close[0]
        print(f'{self.data.datetime.datetime(0)}  Close: {close:.2f}')
        
    def notify_data(self, data, status, *args, **kwargs):
        """Изменение статсуса приходящих баров"""
        data_status = data._getstatusname(status)  # Получаем статус (только при LiveBars=True)
        print(f'=== Notify Data: {data._name} - Status: {data_status} ===')
        self.isLive = data_status == 'LIVE'

# Подключаемся к QUIK
store = QuikStore(trade_account_id='YOUR_ACCOUNT_ID', limit_kind=-1)  # limit_kind=-1 для QuikDemo Акции
# store = QuikStore(trade_account_id='SPBFUT0XXXXX') # Срочный рынок

cerebro = bt.Cerebro(quicknotify=True)

data = store.getdata(dataname='QJSIM.SBER', timeframe=bt.TimeFrame.Minutes, compression=1, live_bars=True)
cerebro.adddata(data)

broker = store.getbroker()
cerebro.setbroker(broker)

cerebro.addstrategy(MyStrategy)
cerebro.run()

Примеры использования bn_quik

Все примеры находятся в папке examples

Использование Lua коннектора

Скопировать содержимое папки lua c GIT репозитария в отдельную папку, которая будет доступна приложению QUIK.

ВНИМАНИЕ Для корректной работы с получением свечных данных используйте обновлённые Lua скрипты из QUIK Python или bn_quik Данные Lua скрипты будут также корректно работать и с QUIKSharp клиентами.

В терминале QUIK, через диалоговое окно работы со скриптами Lua, запустить "QuikSharp.lua" из скопированной ранее папки. Подробнее о Lua скриптах.

В случае возникновения проблем с работоспособностью демонстрационных приложений убедитесь, что:

  1. Терминал QUIK загружен и подключен к серверу.
  2. Скрипт QuikSharp.lua запущен и не выдает никаких ошибок в соответствующем диалоговом окне.
  3. Никакие сторонние программы не используют для своих нужд порты 34130 и 34131. Данные порты используются по умолчанию для связи библиотеки с терминалом.
  4. Проверьте настройки что соединения не блокируются в Windows Firewall.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bn_quik-1.1.0.tar.gz (570.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bn_quik-1.1.0-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file bn_quik-1.1.0.tar.gz.

File metadata

  • Download URL: bn_quik-1.1.0.tar.gz
  • Upload date:
  • Size: 570.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bn_quik-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c6d5faf64995dad7860a812e33ec551c26165f0760516deee07beb31751eba07
MD5 c6c5a679234907e10559109c116774b8
BLAKE2b-256 1c7eec07ccf8d5d9dfcc88ad98d5b318950c7c01339d5c748255bc7e803b19e0

See more details on using hashes here.

File details

Details for the file bn_quik-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: bn_quik-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bn_quik-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be83294d82dcb7e29fe86f6b5c9b886b5e4917bc449022aa6e10d72322297f90
MD5 81603cc0e44799a6cd8779df080d787f
BLAKE2b-256 a042a80d51fd7b2e1ea02ce8c11d646be97c5fa516113b59ef394f163614ca6a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page