Добрый день!
Ищу решение для автоматизированного получения исторических фундаментальных данных по российским компаниям. Нужна история изменения P/E, P/S, ROE, EPS, выручки и других показателей за несколько лет для построения скринера и проведения фундаментального анализа.
Проанализировал два доступных 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)])
«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
}
],
Пробовал смотреть в сторону:
Вопросы к сообществу:
Буду благодарен за любые идеи и рекомендации!
Но нет истории котировок.
Через 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
Ещё такие нашел в закладках. Сам ничего не юзаю для автоматического получения фундаментальных данных.
rudata.info/rd-api
conomy.ru/partnership
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))
Просто я не верю, что стандартных p/bv, roe, roa достаточно. Да они уже и реализованы на куче скринингов. А чтобы искать более тонкие индикаторы, как раз tradingview хорош.
Да
ru.tradingview.com/support/solutions/43000537255/