Skip to main content

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.

Metadata

Release files for bn-quik 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bn-quik 1.1.1
File Size Uploaded Provenance Actions
bn_quik-1.1.1.tar.gz 570.4 kB Without provenance Details for bn_quik-1.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bn-quik 1.1.1
File Interpreter ABI Platform Actions
bn_quik-1.1.1-py3-none-any.whl Python 3 none any Details for bn_quik-1.1.1-py3-none-any.whl

Total release size: 611.5 kB

Release files / bn_quik-1.1.1.tar.gz

Download URL bn_quik-1.1.1.tar.gz
Size 570.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5583eb2769ce33a7d5fecc19e610d26c24ed96082494da69d9bb2c46785af582
BLAKE2b-256 checksum
How to use checksums
c737f97ced5e5c19b9c4da15802943ae0427556b147278893b5a7ccd346f37e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bn_quik-1.1.1-py3-none-any.whl

Download URL bn_quik-1.1.1-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8c40eb76d82327cd6fbaea1e6ec684f14502f30727a436881a0f1f8ebcaf7e71
BLAKE2b-256 checksum
How to use checksums
074313e5fcb6a608d920cd9d8bad140dba2bdcb10a1d04f27f4f6bca5a3fce61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for bn-quik 1.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page