Backtrader-next connector for QUIK terminal
Project description
Интеграция 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 скриптах.
В случае возникновения проблем с работоспособностью демонстрационных приложений убедитесь, что:
- Терминал QUIK загружен и подключен к серверу.
- Скрипт QuikSharp.lua запущен и не выдает никаких ошибок в соответствующем диалоговом окне.
- Никакие сторонние программы не используют для своих нужд порты 34130 и 34131. Данные порты используются по умолчанию для связи библиотеки с терминалом.
- Проверьте настройки что соединения не блокируются в 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6d5faf64995dad7860a812e33ec551c26165f0760516deee07beb31751eba07
|
|
| MD5 |
c6c5a679234907e10559109c116774b8
|
|
| BLAKE2b-256 |
1c7eec07ccf8d5d9dfcc88ad98d5b318950c7c01339d5c748255bc7e803b19e0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be83294d82dcb7e29fe86f6b5c9b886b5e4917bc449022aa6e10d72322297f90
|
|
| MD5 |
81603cc0e44799a6cd8779df080d787f
|
|
| BLAKE2b-256 |
a042a80d51fd7b2e1ea02ce8c11d646be97c5fa516113b59ef394f163614ca6a
|