Как стать автором
Обновить

Комментарии 40

Спасибо за статью, но в самом начале сформулирован вопрос, на который нет ответа в целой большой и полезной статье.
официальное API Яху Финанс было закрыто три года назад, однако практически сразу же появилась его недокументированная работоспособная версия, которая жива до сих пор.
Вопрос: что конспирологи и другие исследователи этого мира думают по поводу такого артефакта? Кто платит за этот банкет со стороны Яху и зачем они это делают?
И т.п.
Баг — это дыра, а вот платить 3+ года за поддержку офиц. закрытого — это не баг, а фича. Но заради чего или кого, Холмс?
Вряд ли там какая-то поддержка в полном смысле слова. Скорее, оставили и больше не трогали. Это ж Яху, оно всегда так работало :) А может, оставили ради немногочисленных действующих клиентов, чтобы не ломать им процессы.
Так же советую посмотреть тиньков инвестиции API. Тоже интересно, можно делать даже торговые боты с управление в ТГ (как пример).
Это другая тема конечно. Среди российских брокеров наверное по пальцам одной руки можно пересчитать кто имеет своё API. И Тинькофф банк один из них.
Не могу ответить там. Альфа-директ имеет своё API задолго до появления Тинькова
Вы имеете в виду для отчетов или что-то другое?
Для всех операций, которые можно делать через терминал. В том числе, для подачи заявок.

Подскажите, а где подробнее можно про это почитать?

А вот это сложный вопрос :))) Вроде, оно закопано где-то в глубинах их сайта. Это частый вопрос новичков в чате АД. Но текущей 4-й версией API я уже не интересовался и документацию не видел. Ну и в текущей версии они делают больше упор на программирование роботов и индикаторов внутри самого терминала, на каком-то C#-подобном языке.

А собственные позиции только в режиме чтения можно через апи в Альфа Директе получать?

Опять же — документацию к текущей версии не видел, но уверен, что да. Это ж элементарная операция и в то же время, одна из важнейших.
Точно знаю, что у StockSharp есть коннектор через это API. А уж это полноценная торговая система, соответственно, все эти возможности в API АД есть.
Спасибо за статью.
Вопрос: Есть ли какие-нибудь ограничения на количество запросов? Если я, скажем, захочу сделать анализ всех акций сектора и запрошу параллельно несколько тысяч параметров?

Я где-то встречал информацию, что этот API выдает агрегированную информацию за 15 (???) минут.

Никаких специальных тестов я не проводил. Но на глаз несколько десятков запросов за минуту вполне работает.

А запрос на получение списка всех ценных бумаг (symbols) есть?

Мне о таком неизвестно.

я находил такой инструмент, который перебором бешеное количество выкачивает pypi.org/project/Yahoo-ticker-downloader
Понял, что проще брать то, что нужно (торгуется у брокера)

Спасибо!

Похоже в настоящий момент он устарел, потому что в коде используется отключенное АПИ.
Но при этом работает

start
> python3 YahooTickerDownloader.py
Checking if we can resume a old download session
No old downloader found on disk
Starting a new session
Downloading generic

req https://finance.yahoo.com/_finance_doubledown/api/resource/searchassist;searchTerm=b?device=console&returnMeta=true
Got 10 downloaded generic symbols:
 Generic B NYQ Barnes Group Inc.
 Generic BA NYQ The Boeing Company
  ect...
Progress: Query 2/64.
10 unique generic entries collected so far.

req https://finance.yahoo.com/_finance_doubledown/api/resource/searchassist;searchTerm=c?device=console&returnMeta=true
Got 9 downloaded generic symbols:
 Generic C NYQ Citigroup Inc.
 Generic CALT NMS Calliditas Therapeutics AB (publ)
  ect...
Progress: Query 3/64.
19 unique generic entries collected so far.

req https://finance.yahoo.com/_finance_doubledown/api/resource/searchassist;searchTerm=d?device=console&returnMeta=true
Got 10 downloaded generic symbols:
 Generic D NYQ Dominion Energy, Inc.
 Generic DADA NMS Dada Nexus Limited
  ect...
Progress: Query 4/102.
29 unique generic entries collected so far.

................................

Спасибо, очень полезно. С python не особо знаком, на node.js переделаю.

Скрипт получается перебирает просто буквы алфавита? Но при этом в выборку попадает только американский рынок?

Например просто буква g — но в результатах нет gazp.me например, однако если запрос gazp, то эта российская бумага уже в выборке.
Я особо не вникал, оставил на ночь, и он собрал мне
150к строк, и там нет газпрома)
видимо возьмет его лишь когда дойдет до gazp.me
Поэтому такой перебор мне не понравился) Может там есть какие-то параметры… но я подумал, что иду не по тому пути)

finance.yahoo.com/_finance_doubledown/api/resource/searchassist;searchTerm=gazp.me?device=console&returnMeta=true
Вот скрипт выборки всех бумаг с nasdaq — прямо с их ftp:

#!/bin/bash

echo -n '["' > stocks.json
curl -o nasdaq.txt ftp://ftp.nasdaqtrader.com/symboldirectory/nasdaqtraded.txt
cat nasdaq.txt | grep -Eo '^\w\|\w*' | sed 's/^\w|//g' | sed 'H;1h;$!d;x;y/\n/,/' | sed 's/,/\",\"/g' >> stocks.json
echo '"]' >> stocks.json
sed -i ':a;N;$!ba;s/\n//' stocks.json
rm nasdaq.txt
Скрипт на каждой итерации получается добавляет +1 букву?
буква
буква+буква
буква+буква+буква
ага(
еще точку, цифры, %

Возможно там чуть умнее перебор, и не возможные комбинации этого дела собираются, но все равно очень долго и много)
Кстати, если вы ищите просто общий список акций с мосбиржи, то вот он. Можно перебирать еще группы.
А можете последовательность как он перебирает символы сбросить?
Вообще получение истории цен это супер возможность, спасибо! А то у меня функция GOOGLEFINANCE в Google Spreadsheets периодически глючит, либо начиная выдавать ошибку N/A, либо зависая в Loading… Может, перейду на использование скриптов (Google App Scripts), откуда буду дёргать Yahoo.Finance.

Жаль конечно, что информации о российских облигациях в Yahoo.Finance, видимо, нет, так же как в GOOGLEFINANCE. Остаёмся на API Московской биржи.
Там нет и американских облигаций, и европейских. С получаем параметров облигаций вообще не очень радужная ситуация.
Где вы раньше были)
не так давно требовалось скачать историю акций которые есть в Тинькофф, случайно наткнулся на Yahoo.
Заметил, что по российским акциям можно лишь к тикеру .ME прилепить

сгенерил для bash такой скрипт скачивания csv (да, можно было бы и цикл на тикер для красоты)
only_rus.sh
PERIOD_FROM=`date -d '01/01/2015 00:00:00' +"%s"` # mm/dd/yy
PERIOD_TO=`date -d '01/01/2030 00:00:00' +"%s"` # mm/dd/yy
INTERVAL=1d
SLEEP_SECONDS=1.1
 curl -s "https://query1.finance.yahoo.com/v7/finance/download/ABRD.ME?period1=$PERIOD_FROM&period2=$PERIOD_TO&interval=$INTERVAL&events=history" -o ABRD.ME.csv && date && echo "     1 / 122 -  ABRD.ME" &&
sleep $SLEEP_SECONDS
 curl -s "https://query1.finance.yahoo.com/v7/finance/download/AFKS.ME?period1=$PERIOD_FROM&period2=$PERIOD_TO&interval=$INTERVAL&events=history" -o AFKS.ME.csv && date && echo "     2 / 122 -  AFKS.ME" &&
sleep $SLEEP_SECONDS
 curl -s "https://query1.finance.yahoo.com/v7/finance/download/AFLT.ME?period1=$PERIOD_FROM&period2=$PERIOD_TO&interval=$INTERVAL&events=history" -o AFLT.ME.csv && date && echo "     3 / 122 -  AFLT.ME" &&
sleep $SLEEP_SECONDS
#и т.д.


Заметил, что:
— все же нужна задержка, т.к. запросы повисали наглухо, и как будто банился ip на время
— иногда странные данные, типа 0-е объемы, хотя бумага явно торговалась в этот день, или цена в какие-то дни якобы падала раз в 10. Но по данным другим источников такого не было
прим.: посмотрите график за 5 лет finance.yahoo.com/quote/BANEP.ME
— не показывается данные текущего дня по «американским» акциям, до начала захода Америки, хотя мы уже вовсю торгуем ими. Или я не туда смотрю?

Вообще, оптимальнее воспользоваться апи Московской биржи для этой задачи.

Очень полезная статья, спасибо! Забил основные метрики с яху финас в ibreoffice calc, работает нормально.
Однако, есть претензии к самому яхуфинанс — цифры зачастую не совпадают с информацией с других сайтов, и/или помечена как полученная из сторонних источников различными неназванными методиками. Другими словами, зачастую на яху финанс лежит неверная информация. Отсюда вопрос
А что есть еще, бесплатное, по американским акциям, в формате XML/JSON?

парсить html — не вариант, очень быстро банят айпи, буквально 500-1000 запросов, и все.
Прямо бесплатно не так много вариантов.
Дайте хотя бы один такой бесплатный вариант, если не сложно.
Пока самое полезное что я нашел, это alpha vantage, там доступны вся база данных, но совершенно конские ограничения на число запросов (5 в минуту, 500 в день, если не путаю) — использую только чтобы дополнить или проверить отдельные поля с яхуу.
Еще, вроде бы пишут, что гугл финас до сих пор както работает, но я не нашел их базы данных.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории