Описание раздела База финансовых данных

В этом разделе мы обсуждаем новости, идеи по развитию и возможные баги открытой финансовой базы данных okama, доступной через API.

Все данные доступны через http://api.okama.io:5000

Примеры запросов

Доступные типы данных (namespaces):
http://api.okama.io:5000/api/namespaces/

Временные ряды активов (исторические данные)

Месячные данных скорректированных цен закрытия (Adjusted Close)
http://api.okama.io:5000/api/ts/adjusted_close/SPY.US?first_date=2019-01-01&last_date=2020-01-01&period=m

Месячные/дневные данные цен закрытия (Сlose)
http://api.okama.io:5000/api/ts/close/SPY.US?first_date=2019-01-01&last_date=2020-01-01&period=m

История дивидендных выплат
http://api.okama.io:5000/api/ts/dividends/SPY.US?first_date=2018-01-01&last_date=2020-01-01

Доходность за день/месяц
http://api.okama.io:5000/api/ts/ror/SPY.US?first_date=2019-01-01&last_date=2020-01-01&period=m

Макроэкономические данные

Инфляция
http://api.okama.io:5000/api/ts/macro/RUB.INFL?first_date=2019-01-01&last_date=2020-01-01

Ключевая ставка ЦБ
http://api.okama.io:5000/api/ts/macro/RUS_CBR.RATE?first_date=2000-01-01&last_date=2021-05-01&period=d

Лучшие ставки банков TOP-10
http://api.okama.io:5000/api/ts/macro/RUS_RUB_TOP10.RATE?first_date=2000-01-01&last_date=2021-05-01&period=m

Лучшие ставки во всех банках
http://api.okama.io:5000/api/ts/macro/RUS_RUB.RATE

История CAPE 10 Шиллера по странам:
api.okama.io:5000/api/ts/macro/USA_CAPE10.RATIO?first_date=2019-01&last_date=2023-10

Вспомогательная информация

Информация о тикере
http://api.okama.io:5000/api/symbol/SPY.US

Поиск по всей базе данных
http://api.okama.io:5000/api/search/SPY.US

Перечень тикеров биржи
http://api.okama.io:5000/api/namespaces/MOEX

Перечень символов CAPE10 Шиллера по странам:
http://api.okama.io:5000/api/namespaces/RATIO

1 лайк

спасибо за сайт. Но где посмотреть все доступные тикеры, не только мосбиржи ?
Я вижу Перечень тикеров биржи (и это только мосбиржи)
http://api.okama.io:5000/api/namespaces/MOEX
И у меня выходит сплошной текст. А как сделать вывод всех тикеров “имя тикера - имя компании?”

1 лайк

Перечень всех доступных бирж можно получить чрез запрос:
http://api.okama.io:5000/api/namespaces/

Табличную форму данных через API получить нельзя.
Как работать с базой данных показано в ноутбуке с примерами.

Добрый день. Подскажите как делать запрос сразу по нескольким тикерам?

Такой возможности не предусмотрено. API даёт информацию по одному тикеру. Я кстати не видел ни одного API, который бы обладал такой возожмностью.

Через библиотеку okama вы можете запросить информацию по нескольким бумагам. Например, через класс AssetList.

2 сообщения были перенесены в новую тему: Загрузка данных из CSV при создании экземпляра класса Asset

Сергей, добрый день! Бьюсь над получением данных по индексам мосбиржи, и похоже они все недоступны, кроме MCFTR.INDX. Если бы был какой-то статус актива в интерфейсе Database, что он недоступен в данный момент, и по нему можно было фильтровать и искать, было бы очень удобно. Приходится перебирать все возможные варианты, и не понятно - или я что-то делаю не так, или просто источник не работает в данный момент. Соответственно при попытке сделать портфель из IMOEX, IMOEX2 - на выходе в дашборде - пусто. Может это потому что сейчас выходные и биржа не работает? Спасибо!

1 лайк

Была небольшая ошибка в работе сервера данных. Поправил. Теперь данные доступны.

В примерах нашел Доходность за месяц (period=m), а можно ли получить за год? period=y почему-то выводит за день, а не за год.

Где можно посмотреть документацию по API?
Нашел Okama Documentation — okama 1.4.4 documentation, но это не API.

В API period то это просто частота данных. Есть разные типы данных. У каждого из типов данных своя частота. Иногда есть данные с двумя частотами (день, месяц). Данных с частотой 1 год у нас нет.

Если вас интересует доходность какого-то актива за определенный промежуток времени, то надо пользоваться библиотекой okama а не API. В библиотеке есть класс AssetList. По нему есть документация.

Документации по API к сожалению нет. Только примеры из этой ветки. Возможно, когда-то дойдут руки. Пока спрашивайте…

1 лайк

Нашел в библиотеке что-то похожее на годовые доходности okama.AssetList.annual_return_ts — okama 1.4.4 documentation

В ответ на запрос ноутбук выдает в ответ годовые доходности, но в виде диаграммы со столбцами. Нельзя ли получить эти же данные, но в числовом формате? Потому что даже при наведении на столбец не всплывает числовое значение.

Дайте знать, если есть более подходящая тема для таких вопросов.

так замените в примере из документации:

al.annual_return_ts.plot(kind='bar')

на

al.annual_return_ts

… и будут вам числовые данные :slight_smile:

1 лайк

Спасибо за помощь Сергей. Получилось вывести числовые значения в процентах по коду (может кому-то пригодится):

al = ok.AssetList([‘SPY.US’, ‘BND.US’], last_date=‘2021-08’)
annual_returns = al.annual_return_ts
for year, row in annual_returns.iterrows():
spy_ret = f"{row[‘SPY.US’] * 100:+.2f}%"
bnd_ret = f"{row[‘BND.US’] * 100:+.2f}%"
print(f"{year.year}: SPY.US: {spy_ret}, BND.US: {bnd_ret}")

Подскажите еще, если задать активы в разных валютах, то OKAMA выведет годовую доходность для каждого в своей валюте или приведет к общей? Если для каждого в своей, то можно ли как-то привести к общей? В частности, интересуют доходности GSPC.INDX и IMOEX.INDX

Сравнил без указания валюты, а также с указанием (ccy=‘USD’) - результаты одинаковые. Это значит, что OKAMA сразу приводит к USD, что мое указание (ccy=‘USD’) неверно и не сработало?

al = ok.AssetList([‘GSPC.INDX’, ‘IMOEX.INDX’], last_date=‘2025-04’, ccy=‘USD’)
annual_returns = al.annual_return_ts
for year, row in annual_returns.iterrows():
gspc_ret = f"{row[‘GSPC.INDX’] * 100:+.2f}%"
imoex_ret = f"{row[‘IMOEX.INDX’] * 100:+.2f}%"
print(f"{year.year}: GSPC.INDX: {gspc_ret}, IMOEX.INDX: {imoex_ret} (all in USD)")

Еще как вариант выводить в CSV, а дальше работать в EXCEL или в чем угодно:

al.annual_return_ts.to_csv('data.csv')
1 лайк

В csv еще лучше, спасибо.

Уточните пожалуйста, какую доходность OKAMA выводит для активов в разных валютах - для каждого в своей валюте или приведет к общей?

Всегда приводит к общей. Иначе это не имеет смысла. Поэтому во всех виджетах есть настройка Base Currency. Это та валюта, в которой считаются все параметры: риск, доходность, дивидендная доходность и т.п.

Есть ли данные по индексу MSCI World ex USA?

нет… К сожалению индексов MSCI нет вообще никаких.

Спасибо. Может FTSE? Или только российские?