MOEX Store for Backtrader
Project description
Хранилище (Store) Источников данных Московской биржи MOEX для Backtrader.
Содержание:
Назначение
Позволяет осуществить загрузку исторических котировок по инструментам Московской Бирже MOEX с информационного сервера биржи iss.moex.com прямо из кода тестирования вашей стратегии в backtrader. Не требует предварительной регистрации и аутентификации при запросе данных. Больше не нужно искать данные по историческим котировкам в открытых источниках, сохранять их в файлы и регулярно обновлять.
Установка
pip install moex-store
Установит библиотеку и все необходимые зависимости. Требуется Python 3.10
и выше.
Применение в Backtrader
-
Импортируйте класс Хранилища
MoexStore
из библиотекиmoex_store
в скрипте, где вы инициализируетеcerebro
.from moex_store import MoexStore ...
-
Создайте экземпляр Хранилища, сохраните его в переменную.
store = MoexStore()
Хранилище имеет один устанавливаемый пользователем атрибут
write_to_file
(по умолчанию True), управляющий записью полученных с Биржи котировок на диск в файлcsv
для их визуальной проверки. Запись осуществляется в подпапкуfiles_from_moex
, создаваемую в папке, где лежит ваш скрипт стратегии. Если запись файлов не требуется, установите этот атрибут в False при создании Хранилища:store = MoexStore(write_to_file=False)
-
Получение котировок осуществляется вызовом метода
get_data
экземпляра Хранилищаstore
. На примере акций Аэрофлота (тикер на биржеAFLT
), сохраняем исторические котировки с тайм-фреймом 1 минута с 01 января 2023 по 01 января 2024 года в источник данных (DataFeed)data
, присваивая ему имяaflt
:data = store.get_data(sec_id='AFLT', fromdate='01-01-2023', todate='01-01-2024', tf='1m')
Все аргументы метода
get_data
являются обязательными:-
sec_id
- тикер инструмента Мосбиржи (Код инструмента в торговой системе). -
fromdate
- дата, с которой будут загружаться котировки. -
todate
- дата, по которую будут загружаться котировки.Допустимые форматы для
fromdate
иtodate
:- datetime (
datetime.datetime(2023, 1, 1)
). - строка в формате
'YYYY-MM-DD'
или'DD-MM-YYYY'
, как в примере выше.
- datetime (
-
tf
- тайм-фрейм котировки. Допустимые значения:1m
: 1 минута,5m
: 5 минут,10m
: 10 минут,15m
: 15 минут,30m
: 30 минут,1h
: 60 минут,1d
: день,1w
: неделя,1M
: месяц,1q
: квартал
Метод
get_data
возвращает объект feeds.PandasData экосистемы backtrader, поэтому его можно сразу подгружать вcerebro
с помощьюcerebro.adddata()
. -
-
Добавление Источника данных в движок cerebro осуществляется стандартно:
cerebro.adddata(data)
Полный код примера:
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import backtrader as bt
from moex_store import MoexStore
def runstrat():
cerebro = bt.Cerebro(stdstats=False)
cerebro.addstrategy(bt.Strategy)
store = MoexStore()
data = store.get_data("AFLT", "01-01-2023", "01-01-2024", "1h")
cerebro.adddata(data)
cerebro.run()
cerebro.plot(style="bar")
if __name__ == '__main__':
runstrat()
Вывод покажет загруженный Источник данных:
Экземпляр Хранилища store
позволяет осуществлять загрузку нескольких источников данных:
from __future__ import (absolute_import, division, print_function,
unicode_literals)
import backtrader as bt
from moex_store import MoexStore
from datetime import datetime
def runstrat():
cerebro = bt.Cerebro(stdstats=False)
cerebro.addstrategy(bt.Strategy)
store = MoexStore(write_to_file=False)
tf = '1d'
fromdate = '01-01-2023'
todate = datetime.today()
for tiker in ('GAZP', 'NLMK', 'SIH4'):
data = store.get_data(sec_id=tiker,
fromdate=fromdate,
todate=todate,
tf=tf)
cerebro.adddata(data, name=tiker)
cerebro.run()
cerebro.plot(style='bar')
if __name__ == '__main__':
runstrat()
Источники данных, добавленные в cerebro
:
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file moex_store-0.0.6.tar.gz
.
File metadata
- Download URL: moex_store-0.0.6.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec817ac25c46ec597c354e7c97ea38be15f2355217d7c276a32a873becd638d1 |
|
MD5 | dffa92c47ea299bfaab6c4d9f948853b |
|
BLAKE2b-256 | 9039501df308d58442f19304aeaf2e06c092fbceb3cf9c12d812e9f22272ea03 |
File details
Details for the file moex_store-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: moex_store-0.0.6-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fa69bc7470f8489fdddde7f6ba6cb60de6aae3a0c7cc8d7415fefdf354caa94 |
|
MD5 | 649c29ff97db431d636282470799a591 |
|
BLAKE2b-256 | 2c0f979a8e30db02e02ee56bbb9c7bb8528e0e341518910bf60b9b5f0230f630 |