Блог им. SergeyTunkin

moexalgo для Algopack мосбиржи – #2 Тахометр трейдера скачал 114млн свечей на 10Гб данных

moexalgo для Algopack мосбиржи – #2 Тахометр трейдера скачал 114млн свечей на 10Гб данных

Всем привет! Наконец-то я закончил работу над своей первой настоящей, правда еще консольной, программой, с помощью которой можно скачать все исторические данные (свечки OHLCV) с различными таймфреймами по всем акциям Мосбиржи. И вроде достаточно простая задача, но отняла достаточное количество времени. И кажется я все больше начинаю понимать как программировать, хотя осознаю, что знаний в безграничном python катастрофически не хватает. Тем не менее получилось сделать то, о чем не мог себе представить еще месяц назад. Открывая сейчас код программы начинаю чувствую на подсознании, что не все так страшно, как было совсем недавно.

Итак, в конце года я писал о том, как с помощью Algopack можно вытащить справочную информацию о всех акциях Мосбиржи. Был написан мой первый небольшой и достаточно простой скрипт использующий библиотеку moexalgo. И я обозначил планы дописать его с целью добычи всех исторических данных.

Тахометр трейдера

Сказано – сделано. В итоге получилась, как я считаю, вполне полноценная программа. Естественно захотелось скомпилировать программу под windows. Дальше больше – придумал ей название “Тахометр Трейдера”. (не смейтесь сильно:-) Был у меня в давней истории небольшой период, когда продавал тахометры для подвесных лодочных моторов и был даже сделанный за деньги небольшой интернет магазин “Тахометр” со слоганом “живи ритмично”. Так что название программы пришло как-то само и сразу же.)

Ну а теперь к делу.  Для программы я сверстал на генераторе статичных сайтов MkDocs (тоже на python) сайт с пользовательским мануалом – https://tahometr.ru/. С него же можно скачать дистрибутив программы. Качайте, буду очень рад, если программа сможет пригодиться Вам!

Текущая статистика по добываемой программой данным:

С таймфреймом D (день) по всем 249 акциям сохранено 481118 строк, объем файлов составил 38.5 Мб.
С таймфреймом 60 мин по всем 249 акциям сохранено 3809927 строк, объем файлов составил 306.4 Мб.
С таймфреймом 10 мин по всем 249 акциям сохранено 16050063 строк, объем файлов составил 1285.3 Мб.
С таймфреймом 1 мин по всем 249 акциям сохранено 94300353 строк, объем файлов составил 7520.3 Мб.
Вообще всего в 996 файлах исторических данных сохранено 114,6 миллиона строк(свечек), общий объем сохраненных данных 9.15 Гб.

Для получения этой статистики дописал отдельный скрипт, который можно просто положить рядом с файлом программы и запускать, когда появится интерес. Скачать можно там же. Программа скомпилирована инсталлятором PyInstaller, должна запуститься на любом компьютере с windows.

ALGOPACK

Программа использует официальную библиотеку moexalgo для работы с Algopack. Что интересного выяснилось?

  1. Негативный момент. Уже после сборки программы во время тестирования Алгопак при цикличном обращении к нему стал неожиданно отдавать ошибку, стал разбираться – ошибка касается акции “VEON-RX”. Представитель мосбиржи в телеграмме обещал “косяк” этот поправить. Но, к сожалению, спустя 2 недели ситуация не изменилась. Пришлось сделать обработчик ошибок. Мало ли по какой еще акции будут подобные фичи. Так что имейте ввиду, если Вы сами напишите некий исправный код, и он неожиданно даст сбой — причина наверняка будет крыться именно в этой причине.
  2. Приятный момент. На официальной странице ЧТО ТАКОЕ ALGOPACK? отмечено, что по Super Candles история предоставляется с 2020 года. Однако, как выяснилось, по факту такого ограничения нет, даты начала данных рознятся по всем акциям и начинаются с 2011 года. Например по Сберу минутки доступны с 2011-12-15 10:00:00 и сейчас скачивается 1,8 млн записей в объеме 160мБ

Документация программы

Программа проста в использовании. Тем не менее я написал небольшой мануал и даже снял отдельное видео:


Листинг программы

Детально описывать весь алгоритм программы не сложно, но на самом деле уже достаточно трудоемко и долго, как никак, а в программе 4 сотни строк. Возможно в след раз как минимум буду рисовать блок схему. Листинг можно скачать на гитхабе. Если будут вопросы по коду — обязательно отвечу.

Планы

В Алгопаке функционал намного шире, чем я использовал в программе — по сути в ней используется только один метод Ticker.candles(). В планах изучить остальные возможности алгопака и при целесообразности конечно же добавить их к функционалу программы. И очень хочется сделать все в нормальном графическом интерфейсе.

Чтобы быть в курсе Telegram-канал Алготрейдинг на Python

★6
12 комментариев
А по фьючерсами не пробовали? 
avatar

SergeyJu, вроде как этот алгопак через iss качает, но это не точно. Так написано у них.

А в iss они доступ к прошлым фьючам прикрывают. (

avatar
Обещали на мосбирже добавить их в алгопак чуть ли не к концу 2023, но судя по гитхабу обновлений так и не было

avatar
Реальный спасиб :)

value — это объем в рублях?
volume — объем в лотах?

avatar
Кто знает где можно взять базу данных по лучшим бид-аскам с миллисекундным таймстемпом для российского рынка?
Леха «my-trade», ты же вроде спрашивал. И тебя вроде отправляли на сервис типа такого www.qscalp.ru/qsh-service

не подошло?

есть еще фишка, что MT5 распространяет котиры, надо только проверить, какая она там. Дмитрий Овчинников наверное точно подскажет
avatar
Андрей К, 
да, они там есть по всем инструментам. 
Нюанс котировок в Финаме в том, что таймстамп скорее всего не будет совпадать с таймстампом биржи.

Андрей К, я для CME спрашивал, а для россиийских ничего не знаю.
СПС!

Леха «my-trade», ну тогда к той ссылке что я приложил, погугли конвертер qshtobin или просто конвертер qsh. Их не один в инете, даже с исходниками. Сам когда то тоже писал.

qsh распространяется в нескольких вариантах:

— ордерлог. И тут ты без труда построишь best bid, best ask
— поток трейдов. Тут ты ничего не дернешь. Но обычно, там где есть все трейды, есть еще файл с market level 2 инфой, там то и есть best bid, best ask

насколько я помню StockSharp, а именно S# Data Гидра, умеет с этим qsh все что хочешь делать.

avatar
Андрей К, ордерлога там нет, есть левел 1, 2 и трейды. Гидра в qsh не умеет, надо идти в гитхаб.
avatar
Sprite, да нууу. Я все это делал, и ордерлог брал и гидрой из ордерлога стакан собирал. Но возможно сначала брал их конвертер, это да
avatar
Андрей К, верю ) но с тех пор из 4 ссылок на компании пишущие маркет-дату в qsh осталась одна и ордерлог она не пишет. И да — у S# в репо есть [де]сериализатор qsh/bin/csv, но он отдельный, давно неработающий и не встроен в гидру. Но как образец куда копать — самое то.
avatar

теги блога Beekeeper-algo

....все тэги



UPDONW
Новый дизайн