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.1.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.1-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bn_quik-1.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 5583eb2769ce33a7d5fecc19e610d26c24ed96082494da69d9bb2c46785af582
MD5 49199dc8c931d01e9debf8be1cd85641
BLAKE2b-256 c737f97ced5e5c19b9c4da15802943ae0427556b147278893b5a7ccd346f37e0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bn_quik-1.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c40eb76d82327cd6fbaea1e6ec684f14502f30727a436881a0f1f8ebcaf7e71
MD5 b3372ca71cc1eb61e160fd3eb3ec4703
BLAKE2b-256 074313e5fcb6a608d920cd9d8bad140dba2bdcb10a1d04f27f4f6bca5a3fce61

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