Русский
Русский
English
Статистика
Реклама

Обзор бесплатных источников котировок фондового рынка

Здравствуйте. Я работаю программистом, и у меня есть хобби изучение фондового рынка. Фондовый рынок с точки зрения программиста набор данных, которые надо сперва получить, а потом проанализировать. В этой статье я расскажу о первой части квеста как данные получить. Статья не претендует на полноту исследования, а лишь описывает мой субъективный опыт, полученный за последние пару лет.

Условия задачи: меня интересуют акции американских компаний на дневном таймфрейме, чтобы каждое утро мой робот присылал мне на почту автоматический отчёт о вчерашней динамике рынка. Если будут и другие рынки с другими таймфреймами хорошо. Платить деньги за данные мне пока не хочется.

Отдельно замечу, что я никаким образом не аффилирован ни с одной из организаций, упомянаемых в статье. Я просто ищу пути решения своих задач, и делюсь опытом.

Как получить данные котировок бесплатно? Мне известны следующие возможности:

  • Открытое REST API регистрируешься на сайте, получаешь ключ доступа, и можно работать.
  • REST API брокера открываешь у брокера демо-счёт, получаешь ключ доступа к API, можно работать.
  • API торгового терминала открыли демо-счёт, запустили терминал, выгружаем данные.
  • Экзотические варианты.

Открытое REST API


Alphavantage. Регистрация простейшая вводим свой email, сразу получаем ключ. Никаких проверок нет, можно подряд ввести 20 разных адресов и получить 20 валидных ключей. Однако есть лимит на обращения по API: не более 5 в минуту, не более 500 в сутки. При этом простой трюк с подстановкой разных ключей на одном IP (исчерпали лимит, поменяли ключ) работает не всегда. Таймфреймы здесь отдаются от 1 минуты до 1 месяца, но воспользоваться этим для ежедневных обновлений большого количества тикеров не получится (из-за ограничений на количество запросов). Зато я использую этот сервис для получения дополнительной информации по тикерам (описание компаний здесь довольно подробное).

Twelvedata. Последний раз вызывал их API несколько месяцев назад, с тех пор у них сильно изменился дизайн страниц, и, возможно, вместе с дизайном функционал. После того, как увидел, что на некоторых тикерах свечки отдаются с дублями (несколько одинаковых свечек в массиве), отказался от их использования. Получить ключ раньше было также просто, как и у Alphavantage (и можно было в цикле менять ключи, исчерпав лимит обращений), а теперь требуется регистрация.

Ещё есть Finnhub, уже не помню, почему отказался от его использования на ранних стадиях изучения вопроса. Что-то там было не то.

REST API брокера


Exante. Этот брокер мне очень даже нравится. У них довольно вменяемый торговый терминал, реализованный на Java, и работающий как на Windows, так и на Linux. В терминале не только акции, но и ETF, опционы, криптовалюты, фьючерсы, облигации и FOREX. REST API доступен после регистрации демо-счёта. Вполне вменяемая документация и поддержка, которая реагирует оперативно. Я говорю реагирует, сами вопросы иногда решаются сразу, иногда через несколько дней, а иногда вообще не решаются. Но ведь у меня бесплатный демо-счёт, я пользуюсь их API, и мне ещё помогают решать вопросы! REST API даёт доступ к большому количеству бирж по всему миру, включая OTC. Таймфреймы от 1 минуты до 1 дня (сгенерировать недельные свечки из дневных небольшая проблема). Если очень попросить, могут даже включить FIX API (он предусмотрен для платных аккаунтов, но поддержка очень отзывчива, и обычно идёт навстречу, например, мне открыли несколько демо-счётов вместо одного). Я пользовался именно этим API несколько месяцев, но потом возникли проблемы сервер несколько дней подряд возвращал разные ошибки, поддержка ничего вменяемого не отвечала, и я от них ушёл. Есть и ещё одно неудобство API отдаёт котировки не только основной торговой сессии, но по некоторым инструментам и пре/пост-маркета, то есть до или после торговой сессии, и по выходным дням (видимо, в выходные на некоторых биржах бывает премаркет). Как это отфильтровать по-простому непонятно, а без фильтрации получаются неадекватные рыночной реальности графики. Так что у меня этот вариант в резерве, на всякий случай. Если захотите открыть у них реальный счёт, имейте в виду, что минимальный депозит составляет $10 000.

Tinkoff. Я являюсь клиентом этого банка уже много лет, поэтому совершенно естественно было воспользоваться их API. Документация вполне человеческая, доступна песочница с любым балансом по любым активам, и моментальным исполнением сделок по любой цене. Инструменты такие же, как
в Тинькофф инвестициях. Таймфреймы от 1 минуты до месяца, в описании инструментов отдаётся и ISIN, и FIGI (что очень удобно). Сейчас использую именно этот API для своей аналитики. Из неприятного API отдаёт некоторые давно неторгуемые тикеры, приходится их вычищать вручную (вот на эту тему issue на гитхабе). К тому же история свечек по любому инструменту не более 1 года (если хочется построить график MSFT за последние 10 лет не получится). Встречаются и другие шероховатости, но команда разработчиков доступна к прямому диалогу (что приятно).

API торгового терминала


Торговые терминалы я делю на три части Metatrader, cTrader, и кастомные (тот же Exante, или весьма любопытный Galt and Taggart от Банка Грузии интересующимся рекомендую изучить). Возиться с кастомными терминалами смысла я не вижу (из-за немасштабируемости получаемого технического решения), поэтому рассмотрим лишь Metatrader и cTrader.

Metatrader 5 самый популярный терминал для контрактов CFD на Forex, но контракты CFD бывают и на акции, и нефть, и криптовалюты. У терминала есть свой язык программирования MQL5 (фактически это усеченный диалект C++). MQL5 предоставляет множество различных функций, в том числе можно перебирать все имеющиеся у конкретного брокера символы, и загружать по ним котировки, сохраняя их в базу данных (или CSV). То есть тут всё зависит от брокера какие у него будут тикеры, отдаёт ли он на демо-счёте котировки в реальном времени или с задержкой, и т.д. Ещё есть Metatrader4, там язык MQL4, по факту C.

cTrader. Этот терминал мне нравится больше всех других удобством интерфейса, но он сравнительно молодой, его используют не так много брокеров, а найти брокера с CFD на акции в cTrader задача не из лёгких. Но документация к нему тоже есть, язык программирования C#, на форуме техподдержки отвечают обычно в течение дня. Правда на большинство моих вопросов ответ один такая возможность в cTrader пока не реализована.

Экзотические варианты


В эту категорию попадает, например, Tradingview. Это мой любимый сервис в финансовой сфере, там есть решительно всё, что мне нужно, под одной крышей. Но у него совсем нет API. Если бы было возможно получать данные из этого сервиса прямым и понятным способом, я бы точно больше ничего не рассматривал. Но прямого способа нет. Экзотические варианты тут могут быть такие (в теории):

  • Найти на гитхабе парсер (они там есть) и настроить под себя
  • Запускать Tradingview внутри Selenium и вытаскивать данные
  • Реверснуть мобильное приложение, вытащить оттуда схему API, и использовать её.

Минус всех этих вариантов очевиден неофициальный доступ может повлечь проблемы как технологического (сменят API, сделают другую вёрстку), так и юридического свойства.

Буду признателен за обсуждение материала. Если кто-то знает неизвестные мне ходы в получении интересующих данных милости прошу в комментарии!
Источник: habr.com
К списку статей
Опубликовано: 24.02.2021 16:18:54
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Api

Финансы в it

Финтех

Акции

Котировки

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru