Как быстро скачать котировки с IEX

Многие расстроились😭, когда Yahoo.Finance закрыл🚫 все лазейки для получения бесплатных котировок. Но к всеобщему счастью🎉, уже есть альтернативы бесплатных данных. В этот раз мы скачаем бесплатную дневную историю с биржи IEX для ~8 тысяч американских активов примерно за ~2 минуты⏱️. Поможет нам в этом Python 2.7🐍. А рассказывать будет Роман Щеголихин.

Пытливые умы на сайте биржи могут найти бесплатную историю тиков за предыдущие 10 месяцев в формате pcap (tcpdump).

☝️На бирже IEX совершается примерно ~2.5% оборота акций, что необходимо учесть. Тики не дадут построить идеальную историю изменения цены из-за недостатка данных по остальным биржам.

В отличие от многих зарубежных поставщиков данных, IEX (https://iextrading.com/) предоставляет исторические данные бесплатно. Дневная история за 5 последних лет доступна для более чем 8 тысяч активов, среди которых такие рынки как:

  • New York Stock Exchange
  • Nasdaq Global Select
  • NYSE Arca
  • NYSE American
  • NASDAQ Global Market
  • NASDAQ Capital Market
  • BATS Exchange

Кстати, дневная история учитывает торги на всех американских биржах, в отличии от тиков. RAA.

Этот брокер имеет простой API, и главное, бесплатный. Даже регистрироваться не надо. Правда, есть ограничение на 100 запросов в секунду.

Документация по API: https://iextrading.com/developer/docs/

Список доступных активов: https://api.iextrading.com/1.0/ref-data/symbols

Запрос по нужному активу выглядит так: https://api.iextrading.com/1.0/stock/aapl/chart/1m

Это запрос по Apple inc. дневной истории за последний месяц. Котировки отрегулированны на сплиты и дивиденды.

Ну что же, список котировок есть, API есть. Как всё это дело скачать и побыстрей? Ниже скрипт на Python 2.7 с использованием технологии MultiCurl и библиотеки pycurl.

И на загрузку более 8 тысяч активов за месяц у меня уходит всего ~110 секунд. 🤘 Здорово!

🎁Код в студию

Список тикеров получаем “на лету” из IEX и берем из них только работающие инструменты. Замеры скорости приведены для красоты. Основную работу выполняет функция [code]performMyMulti[/code]. В данном примере она пачками по [code]block[/code] тикеров параллельно выкачивает историю дневок за последние 30 дней. В качестве пачки на вход этой функции поступает список [code]tools_[/code], который содержит строковые коды инструментов. Второй параметр этой функции, [code]time_frame[/code] — задает глубину. Чтобы скачать котировки за 5 лет, задайте [code]’5y’[/code]. Результаты складываются в текстовые файлы в каталог data. Данные в них — это объекты json, которые дальше можно парсить и использовать по назначению.

[raaAdSenceArticle]

[code python]

[/code]

🏁Заключение

Код можно адаптировать для скачивания минутной истории в реальном времени.

Также доступны тики в реальном времени через вебсокеты (websockets). Что делает данную биржу крайне ценной находкой.

Роман Щеголихин
roman.shchegolikhin@bk.ru

💬В комментариях напишите, где вы берёте данные или поблагодарите Романа. Порекомендуйте лучших поставщиков данных.

☝Рынок вас манит? Подготовьтесь🎓 у профи в трейдинговой компании👍.