В прошлый раз я показал, как можно автоматизировать торговый сценарий на Python с помощью TKSBrokerAPI. Это платформа для упрощения автоматизации торгов на бирже, которая работает через Tinkoff Invest REST API. Всё начинается с вашей гениальной торговой идеи и завершается автоматизацией сценария, а TKSBrokerAPI берёт на себя всю работу с инфраструктурой брокера.
Но откуда же взять этот «гениальный торговый алгоритм»? Платформа TKSBrokerAPI поможет и для решения задачи получения первичных, «сырых» данных по торговым инструментам (акции, облигации, фонды, фьючерсы и валюты) с сервера брокера, для их последующего анализа в любом удобном для вас аналитическом инструменте.
Для этого в методах модуля TKSBrokerAPI предусмотрена возможность обогащения, расширения и сохранения данных в классических форматах: XLSX и CSV (для анализа в табличных редакторах), Markdown (для удобства чтения), а также Pandas DataFrame (для датасайнтистов и биржевых аналитиков). Некоторые методы можно найти в разделе «Основные возможности» или в полной «API-документации» на модуль TKSBrokerAPI.
В качестве «сырых» данных может быть всё, что возможно получить с сервера брокера. После обогащения из этих данных можно построить, например, сводный календарь выплат по облигациям и подсчитать их купонные и текущие доходности, или можно сформировать аналитику о состоянии портфеля пользователя и распределении активов по типам, компаниям, отраслям, валютам и странам. Кроме того, можно скачать исторические данные по ценам любого инструмента в виде OHLCV-свечей.
Как обогащаются и используются данные в TKSBrokerAPI:
- Вы запрашиваете нужные вам данные с сервера брокера с помощью модуля TKSBrokerAPI:
- в этом модуле почти все методы возвращают «сырые» данные в виде словаря Python.
- Далее происходит их обработка, обогащение и расширение:
- добавляются различные статистические данные, параметры и некоторые аналитические отчёты.
- После обогащения данные сохраняются в пригодном для дальнейшего анализа виде:
- большинство методов возвращают обогащённые данные в виде словаря Python или Pandas DataFrame;
- если вы запускали платформу TKSBrokerAPI в консоли, то данные будут сохранены в форматах XLSX, CSV или Markdown.
- Далее можно загрузить данные в привычную вам аналитическую систему и использовать различные методы анализа данных для поиска и выделения в них зависимостей, корреляций, делать прогнозы и строить предположения.
- Далее, на основе анализа данных, вы придумываете тот самый «гениальный торговый алгоритм».
- Автоматизируете торговый сценарий (по предыдущей схеме).
- Профит!
Получить все данные по всем инструментам, доступным на бирже
--list-xlsx
(-x
), чтобы сохранить сырые данные по доступным инструментам в формате XLSX, пригодном для дальнейшей обработки датасайнтистами или биржевыми аналитиками. При этом запрашивается вся информация с сервера брокера по инструментам, доступным для текущего пользователя. Также данные по инструментам берутся из локального кеша dump.json
, затем они обогащаются и трансформируются в XLSX-формат и сохраняются в файл dump.xlsx
.Пример полученных данных можно посмотреть в файле ./docs/media/dump.xlsx. Что означают заголовки в XLSX-файле, смотрите в разделах документации: «Получить обогащённые данные по облигациям» и «Построить календарь выплат по облигациям».
Получить обогащённые данные по всем облигациям
--bonds-xlsx
(-b
). При запуске будут получены все доступные облигации (если указать только ключ) или список облигаций (если перечислить FIGI или тикеры), а затем обогащены данными и преобразованы в более широкий Pandas DataFrame с дополнительной информацией: текущие цены, календарь платежей по облигациям, купонные доходности, текущие доходности (зависящие от цены) и некоторые другие статистические данные.Затем эти данные экспортируются в XLSX-файл, пригодный для дальнейшего анализа датасайнтистами или биржевыми аналитиками, по умолчанию: ext-bonds.xlsx.
Это достаточно долгая операция, если с сервера брокера запрашивается слишком много или все облигации (ограничение: ~90-120 обогащённых информацией облигаций в минуту, в зависимости от пользовательских лимитов ограничения скорости).
Что означают заголовки в обогащённом XLSX-файле или в Pandas DataFrame смотрите в разделе документации: «Получить обогащённые данные по облигациям».Пример генерируемого XLSX-файла, с обогащёнными данными по облигациям, можно посмотреть здесь: ./docs/media/ext-bonds.xlsx.
Построить календарь выплат по облигациям
--calendar
(-c
). Это действие отображает календарь платежей по облигациям в виде таблицы. Календарь строится для одной облигации или списка заданных тикеров или FIGI, либо для всех облигаций сразу, если после ключа не указывать никаких значений.Также календарь экспортируется в XLSX-файл для дальнейшего использования датасайнтистами или биржевыми аналитиками, по умолчанию в calendar.xlsx.
Для календаря в виде Pandas DataFrame заголовки данных аналогичны тем, которые описаны в поле calendar
в разделе документации «Получить обогащённые данные по облигациям», под спойлером. Заголовки календаря для XLSX-файла перед сохранением приводятся в более человеко-читаемый формат, их можно посмотреть в разделе документации «Построить календарь выплат по облигациям».
Пример генерируемого XLSX-файла с календарём выплат по облигациям, можно посмотреть здесь: ./docs/media/calendar.xlsx, а в виде Markdown-файла, здесь: ./docs/media/calendar.md. В случае, если календарь строится более чем для одной облигации, то платежи в один и тот же месяц группируются.
Получить историю цен заданного инструмента
--render-chart
, который нужно указать совместно с одним из ключей --history
(загрузка данных с сервера) или --load-history
(загрузка из CSV-файла).--ticker
или --figi
(FIGI идентификатор) и задать интервал свечи с помощью ключа --interval
. TKSBrokerAPI сохраняет историю в CSV-файл или возвращает Pandas DataFrame. История скачивается между двумя заданными датами: start
и end
, а также поддерживается докачка данных. Сервер брокера по умолчанию использует время в формате ISO UTC.Построенные графики различного типа по умолчанию сохраняются в файл index.html
. На них дополнительно отображаются некоторые статистические значения и индикаторы, однако они представлены лишь для поверхностного ознакомления с поведением цены в заданном диапазоне. Для проведения полноценных аналитических исследований и технического анализа рекомендуется использовать иные профессиональные средства.
Вопрос, какие методы и инструменты для работы с данными применить для анализа получаемой информации, выходит за рамки этой статьи. Однако, чтобы вы не использовали, платформа TKSBrokerAPI поможет вам и для задачи получения первичных, «сырых» данных, и для задачи автоматизации придуманной вами стратегии.
Поддержать проект: https://yoomoney.ru/to/410015019068268