Beekeeper-algo
Beekeeper-algo личный блог
16 января 2024, 12:11

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

12 Комментариев
  • SergeyJu
    16 января 2024, 14:47
    А по фьючерсами не пробовали? 
    • Андрей К
      16 января 2024, 15:55

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

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

  • Zoran
    16 января 2024, 19:14
    Реальный спасиб :)

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

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

      не подошло?

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

      • Леха «my-trade»
        17 января 2024, 21:06
        Андрей К, я для CME спрашивал, а для россиийских ничего не знаю.
        СПС!
        • Андрей К
          17 января 2024, 21:52

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

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

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

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

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

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн