Блог им. empenoso

Где можно получить исторические фундаментальные данные по российским компаниям через API?

Добрый день!

Ищу решение для автоматизированного получения исторических фундаментальных данных по российским компаниям. Нужна история изменения P/E, P/S, ROE, EPS, выручки и других показателей за несколько лет для построения скринера и проведения фундаментального анализа.

Проанализировал два доступных API, но везде есть ограничения:

T-Invest API

GetAssetFundamentalsResponse(fundamentals=[
StatisticResponse(asset_uid='40d89385-a03a-4659-bf4e-d3ecba011782',
currency='RUB',
market_capitalization=6878249241240.0,
high_price_last_52_weeks=330.45,
low_price_last_52_weeks=219.2,
average_daily_volume_last_10_days=65639361.43,
average_daily_volume_last_4_weeks=60348494.76,
beta=0.8,
free_float=0.48,
forward_annual_dividend_yield=0.0,
shares_outstanding=21586948000.0,
revenue_ttm=8676400000000.0,
ebitda_ttm=0.0,
net_income_ttm=1580300000000.0,
eps_ttm=73.21,
diluted_eps_ttm=0.0,
free_cash_flow_ttm=0.0,
five_year_annual_revenue_growth_rate=0.0,
three_year_annual_revenue_growth_rate=33.48,
pe_ratio_ttm=4.35,
price_to_sales_ttm=0.79,
price_to_book_ttm=0.96,
price_to_free_cash_flow_ttm=0.0,
total_enterprise_value_mrq=0.0,
ev_to_ebitda_mrq=0.0,
net_margin_mrq=0.0,
net_interest_margin_mrq=0.0,
roe=23.36,
roa=2.81,
roic=0.0,
total_debt_mrq=0.0,
total_debt_to_equity_mrq=0.0,
total_debt_to_ebitda_mrq=0.0,
free_cash_flow_to_price=0.0,
net_debt_to_ebitda=0.0,
current_ratio_mrq=0.0,
fixed_charge_coverage_ratio_fy=0.0,
dividend_yield_daily_ttm=10.45,
dividend_rate_ttm=33.3,
dividends_per_share=33.3,
five_years_average_dividend_yield=8.36,
five_year_annual_dividend_growth_rate=0.0,
dividend_payout_ratio_fy=45.49,
buy_back_ttm=0.0,
one_year_annual_revenue_growth_rate=55.49,
domicile_indicator_code='',
adr_to_common_share_ratio=0.0,
number_of_employees=0.0,
ex_dividend_date=datetime.datetime(2024,7,11,0,0,tzinfo=datetime.timezone.utc),
fiscal_period_start_date=datetime.datetime(1970,1,1,0,0,tzinfo=datetime.timezone.utc),
fiscal_period_end_date=datetime.datetime(1970,1,1,0,0,tzinfo=datetime.timezone.utc),
revenue_change_five_years=181.25,
eps_change_five_years=87.02,
ebitda_change_five_years=0.0,
total_debt_change_five_years=0.0,
ev_to_sales=0.0)])

FinanceMarker.ru API

  • Плюсы: Есть фундаментальные показатели
  • Минусы: Ограничение в 400 запросов в день для частных лиц
  • Запрос: /fm/v2/stocks/{exchange}:{code} Получить данные по компании
  • Ответ:
  «ratios»: [
    {
      «active»: true,
      «capex_revenue»: 0,
      «capital»: 0,
      «changed_at»: «2025-03-13T06:04:44.836Z»,
      «code»: «GAZP»,
      «current_ratio»: 0,
      «debt_equity»: 0,
      «debt_ratio»: 0,
      «debtebitda»: 0,
      «dpr»: 0,
      «ebitda_margin»: 0,
      «ev_ebit»: 0,
      «evebitda»: 0,
      «evs»: 0,
      «exchange»: «MOEX»,
      «gross_margin»: 0,
      «interest_coverage»: 0,
      «month»: 0,
      «net_margin»: 0,
      «net_working_capital»: 0,
      «netdebt_ebitda»: 0,
      «operation_margin»: 0,
      «pbv»: 0,
      «pcf»: 0,
      «pe»: 0,
      «period»: «string»,
      «pfcf»: 0,
      «pffo»: 0,
      «ps»: 0,
      «roa»: 0,
      «roce»: 0,
      «roe»: 0,
      «roic»: 0,
      «ros»: 0,
      «type»: «string»,
      «year»: 0
    }
  ],

Пробовал смотреть в сторону:

  1. MOEX ISS API — но там только рыночные данные и котировки
  2. Парсинг сайтов — но это сложнее поддерживать, тем более я частное лицо.

Вопросы к сообществу:

  1. Какие еще API предоставляют исторические фундаментальные данные по российским компаниям?
  2. Возможно ли где-то получить поквартальную/годовую историю изменения ключевых показателей?
  3. Как вы решаете задачу фундаментального скрининга по историческим данным?
  4. Может есть какие-то платные решения с разумной ценой?

Буду благодарен за любые идеи и рекомендации!

1.7К | ★1
22 комментария
Странно, что сама Мосбиржа не предоставляет такие данные. Как нет и экспорта истории котировок в CSV. Видимо там нет денег и нет специалистов это организовать.
avatar
Alexide, с дневными котировками нет проблем можно по API с Мосбиржи получать. Как и почти все показатели по облигациям например
Михаил Шардин, да, я получаю текущие котировки через API Мосбиржи.
Но нет истории котировок.
avatar
Alexide, история котировок дневных во всяком случае есть на API мосбиржи
Михаил Шардин, добрый день!

Напишите нам на почту или в чат на financemarker — может быть сможем помочь. 
Роман Кобленц, у меня всё работает
Alexide, 

Через iss и history можно за любую дату, за любой диапазон, начиная с любой даты получить. Потом функция importxml загружает это в google-spreadsheet. Аналогично для excel/openoffice

Примеры

История рпс сделок за определенную дату
iss.moex.com/iss/history/engines/otc/markets/ndm/securities.html?date=2024-04-18

История курсов валют за период
iss.moex.com/iss/history/engines/currency/markets/selt/boards/cets/securities/USD000UTSTOM.HTML?from=2020-02-15&till=2020-02-25

История курсов валют с заданной даты
https://iss.moex.com/iss/history/engines/currency/markets/selt/boards/cets/securities/USD000UTSTOM?from=2020-02-15
avatar
__rtx, Вы утверждаете, что API Мосбиржи умеет отдавать через xml страницу историю котировок акций хотя бы за 10 лет? По разным таймфреймам.
Я разработчик ПО по главной специальности и в т.ч. отлично владею ChatGPT.
avatar
__rtx, я благодарен Вам за ответ, но Вы должны понимать, что сфера разработки ПО огромна и все знать невозможно. Я специализируюсь на разработке ПО для Windows и macOS с 1998 года. Веб-технологии знаю поверхностно.
avatar

Ещё такие нашел в закладках. Сам ничего не юзаю для автоматического получения фундаментальных данных.

rudata.info/rd-api

conomy.ru/partnership

avatar
Replikant_mih, спасибо!
Как вы решаете задачу фундаментального скрининга по историческим данным?

tradingview


Базовые показатели и основные строки из отчетности встроены в сервис. Остальное — через скрипт все что угодно можно придумать.
avatar
Кактус, вы имеете в виду язык Pine — это язык программирования, разработанный TradingView и используемый для написания собственных индикаторов и стратегий?

Михаил Шардин, 

Да. Но там и без него много встроенных возможностей.
На график можно вывести практически любую строчку из отчетности, любой макроэкон. показатель. Например,



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

Пример скрипта tradingview что бы вывести капитал сбера в долларах_с_учетом_инфляции (CPI)
//@version=5
indicator(«Мой скрипт»)
book = request.financial('MOEX:SBER','BOOK_VALUE_PER_SHARE','FQ')
usdrub = request.currency_rate('usd', 'rub')
uscpi = request.economic('US', 'CPI')
 
plot(book /(usdrub*uscpi/308))

avatar
Кактус, спасибо вам за пример!
Михаил Шардин, 

Просто я не верю, что стандартных p/bv, roe, roa достаточно. Да они уже и реализованы на куче скринингов. А чтобы искать более тонкие индикаторы, как раз tradingview хорош.
avatar
Кактус, а такую табличку с данными, по которой строится график, можно оттуда как то скачать?
avatar

Читайте на SMART-LAB:
Фото
ГК БАЗИС: можно ли уже наконец будет заработать на IPO или всё как обычно?
ГК Базис: первое прикосновение Исходные материалы: 👉 Отчетность компании 👉 Параметры размещения 👉 Мой эфир 20.11 с топ-менеджментом после...
Фото
EURUSD: евро берет реванш, пользуясь слабостью бакса
Евро развернулся к росту и снова оказался у барьера, который достаточно длительное время не удавалось преодолеть, начав его тестировать. Фактором...
Фото
Актуальные первичные размещения на рынке облигаций
В данном обзоре представлены параметры новых размещений на рынке облигаций на любой вкус: квазивалютные облигации «Газпрома», дисконтный...

теги блога Михаил Шардин

....все тэги



UPDONW
Новый дизайн