Я прекрасно понимаю, что фундаментальный анализ это не тема для Пикабу. Однако я хочу поделиться своим опытом разработки скринера и бектестера для анализа акций на основе фундаментальных данных. Это не только автоматизация, но и способ глубже разобраться в инвестиционных стратегиях, которые можно заложить в алгоритм.
Фундаментальный анализ - это метод оценки акций, основанный на финансовых показателях компаний, таких как прибыль, выручка, коэффициенты ликвидности и другие экономические параметры. В отличие от технического анализа, который фокусируется на движении цен, фундаментальный анализ помогает определить реальную стоимость компании и ее перспективы в долгосрочной перспективе.
При этом фундаментальный анализ не так популярен среди частных инвесторов, как технический анализ, поскольку требует глубокого изучения отчетности, макроэкономических факторов и финансовых коэффициентов.
Хочу создать собственный скринер и бектестер для анализа акций по фундаментальным показателям. Чтобы сделать это правильно, нужно понимать не только программирование, но и сам предмет — фундаментальный анализ. В этой статье я разбираюсь какие вообще существуют подходы, а также ищу источники данных.
Буду использовать для анализа сразу два рынка: США и РФ.
В идеале хочу использовать лучшие практики фундаментального анализа на глобальном рынке и адаптировать их к российским реалиям.
Обзор книжных стратегий от Американской ассоциации частных инвесторов
Американская ассоциация частных инвесторов (AAII) — это независимая некоммерческая организация, которая помогает частным инвесторам принимать обоснованные решения. Она предлагает исследования, аналитические материалы и инструменты, включая формализованные наборы готовых стратегий по книгам известных инвесторов. У них это называется Guru Screens и это подборка из 42 инвестиционных стратегий.
Хотя Guru Screens позволяют применять стратегии на практике, нет единого толкования книжной стратегии и конечно требуется адаптации к современным реалиям.
Я выбрал пять стратегий, основанных на трудах известных инвесторов:
Weiss Blue Chip Div Yield – ориентирована на дивидендные акции крупных компаний.
Lakonishok – стратегия, основанная на стоимостном инвестировании.
Wanger (Revised) – фокусируется на малых компаниях с потенциалом роста.
O'Neil's CAN SLIM Revised 3rd Edition – сочетает фундаментальный и технический анализ.
Buffett: Hagstrom – следует принципам Уоррена Баффетта, отбирая недооцененные компании с высоким потенциалом.
Weiss Blue Chip Div Yield
Стратегия Weiss Blue Chip Div Yield фокусируется на инвестициях в "голубые фишки" с высокими дивидендами. Разработана Джеральдин Вайсс, известной как "первая леди дивидендного инвестирования". Стратегия основана на выборе недооцененных компаний с высокой дивидендной доходностью, стабильным ростом дивидендов и сильной финансовой надежностью.
Только крупные американские компании (blue chips).
Дивиденды:
Финансовая устойчивость:
Оценка стоимости: Продажа при снижении дивидендной доходности до минимума или ухудшении финансов.
Я настроил критерии на скринере finviz.com.
Допущения: без истории и рейтингов, только текущий момент.
Lakonishok
Стратегия Lakonishok ориентирована на поиск недооцененных компаний, которые временно не пользуются популярностью у инвесторов, но демонстрируют признаки роста. Основная идея заключается в том, что рынок часто переоценивает «звездные» акции и недооценивает компании, которые испытывали трудности, но начинают восстанавливаться. Метод основан на анализе четырех ключевых мультипликаторов, а также динамики цены и прогнозов аналитиков.
Для отбора акций используются следующие параметры:
Цена акции ниже средних значений по отрасли по одному из показателей: P/B, P/CF, P/E или P/S.
Относительная сила за 6 месяцев > 0 (признак роста).
Относительная сила за 3 месяца > 0 (дополнительное подтверждение роста).
Положительный сюрприз прибыли (разница между фактическими и прогнозными показателями).
Рост консенсус-прогноза аналитиков за последние 6 месяцев.
Подход Lakonishok позволяет находить недооцененные компании, способные демонстрировать высокую доходность в долгосрочной перспективе.
Допущения: выбраны не верхние проценты по рынку, а заданы фиксированные значения.
Wanger (Revised)
Стратегия Wanger (Revised), впервые представленная в 1997 году, направлена на снижение рисков при инвестировании в акции малых компаний. Ее ключевой принцип — поиск динамично развивающихся компаний с устойчивыми финансовыми показателями, высоким потенциалом роста прибыли и разумной оценкой. Подход ориентирован на долгосрочное инвестирование и позволяет находить перспективные активы среди компаний с малой капитализацией, избегая завышенно оцененных и нестабильных бизнесов.
Рыночная капитализация: от $100 млн до $2 млрд.
Рост прибыли: ожидаемый рост не менее 15% в год на ближайшие 5 лет.
Оценка: P/E < 30, P/S < 3.
Финансовая устойчивость: долг/собственный капитал < 1, текущая ликвидность > 1.
O'Neil's CAN SLIM Revised 3rd Edition
Методология CAN SLIM, разработанная Уильямом О’Нилом, сочетает фундаментальный и технический анализ для выявления акций с наибольшим потенциалом роста. Эта стратегия ориентирована на быстрорастущие компании, которые уже демонстрируют высокие показатели доходности. Она учитывает не только финансовые показатели, но и рыночные тенденции, что делает ее одной из самых популярных среди частных инвесторов.
Текущие доходы: рост прибыли за три года — не менее 25%.
Годовая прибыль: квартальный рост прибыли — минимум 25%.
Инновации: наличие новых продуктов или услуг, способных стимулировать рост.
Спрос и предложение: высокая институциональная заинтересованность и относительная сила.
Рыночное лидерство: инвестиции в компании-лидеры отрасли.
Тренд рынка: покупки только в условиях общего бычьего тренда.
Buffett: Hagstrom
Эта стратегия основана на принципах инвестирования Уоррена Баффетта, описанных в книге Роберта Хагстрома. Она ориентирована на поиск недооцененных компаний с устойчивым ростом, высокой рентабельностью и разумной долговой нагрузкой. В отличие от краткосрочного трейдинга, подход Баффетта предполагает долгосрочное владение качественными активами.
ROE: минимум 15% – отражает эффективность управления капиталом.
Рост прибыли на акцию: минимум 10% – показатель устойчивого развития.
Соотношение долга к капиталу: не более 50% – ограничение финансовых рисков.
P/E: не выше 20 – избежание переоцененных активов.
Краткие выводы по стратегиям от гуру
Конечно всё это не рекомендации, а просто повод задуматься о том, что существуют разные стратегии и множество из них публичны.
Не все стратегии можно достоверно повторить на бесплатных скринерах, потому что часть нужных параметров отсутствует, но это не повод опускать руки и можно подробнее познакомиться с методами и логикой, которые авторы используют.
И конечно надо проверить заинтересовавшую вас стратегию на истории - как выборки составленные в прошлом показывали результаты в настоящем.
Для этого я и хочу написать свой скринер и бэктестер.
Выбор самых важных параметров для оценки акций
Это моя субъективная оценка, разбито по категориям как в скринере Яху Финанс:
1. Market Data (рыночные данные)
Price (End of Day) - цена на конец дня
Market Cap (Market Capitalization) – рыночная капитализация
Общая стоимость компании на фондовом рынке, определяется как цена акции × количество акций.
2. Ratios (финансовые коэффициенты)
Эти коэффициенты помогают инвесторам оценить стоимость компании и её финансовую устойчивость.
ROA (Return on Assets) – Рентабельность активов
Показывает, насколько эффективно компания использует свои активы для получения прибыли.
🟰 > 5%: эффективно использующая свои активы компания должна генерировать не менее 5% прибыли. Низкий ROA может означать плохое использование активов или неэффективную деятельность.
ROE (Return on Equity) – Рентабельность собственного капитала
Оценивает прибыльность компании относительно её собственного капитала.
🟰 > 10%, в идеале > 15%: более высокий ROE показывает, что компания эффективно генерирует прибыль из акционерного капитала.
Debt/Equity (Debt-to-Equity Ratio) – Коэффициент долг/капитал
Соотношение общего долга к собственному капиталу.
🟰 < 1, в идеале < 0,5: более низкий коэффициент указывает на то, что компания не слишком полагается на заемные средства для финансирования операций, что снижает финансовый риск. Компании с D/E > 1 имеют высокую долговую нагрузку, что может быть рискованно в условиях роста процентных ставок.
Current Ratio – Коэффициент текущей ликвидности
Показывает способность компании погашать краткосрочные обязательства.
🟰1,5 – 3: гарантирует, что компания может выполнить свои краткосрочные обязательства. Коэффициент ниже 1,5 может указывать на проблемы с ликвидностью, тогда как коэффициент выше 3 может указывать на неэффективное распределение капитала.
Gross Profit Margin – Валовая рентабельность
Доля валовой прибыли в выручке компании. Чем выше, тем эффективнее производство.
🟰> 30%: более высокая валовая маржа означает, что у компании сильная ценовая политика и эффективность затрат. Это указывает на конкурентное преимущество в производстве или услугах.
Dividend Yield – Дивидендная доходность
Процент дивидендов к цене акции. Чем выше, тем больше компания платит акционерам.
🟰 > 2%, но < 8%: умеренная дивидендная доходность обеспечивает доход. Чрезвычайно высокая дивидендная доходность в долларах (> 8%) может указывать на падение цены акций из-за бизнес-рисков.
3. Financials - Income Statement (финансовые показатели – Отчёт о прибылях и убытках)
Этот раздел отражает финансовые результаты компании за определённый период.
EPS Growth (Earnings Per Share Growth) – Рост прибыли на акцию
Показывает рост прибыли на акцию по сравнению с предыдущим периодом.
🟰> 10% год за годом: растущие прибыли указывают на здоровый и расширяющийся бизнес. Компании с постоянным ростом EPS привлекают инвесторов и оправдывают более высокую оценку с течением времени.
Sales Growth (Revenue Growth) – Рост выручки
Изменение выручки компании по сравнению с прошлым периодом. Высокий рост указывает на развитие компании.
🟰5% год за годом: стабильный рост выручки поддерживает долгосрочную устойчивость бизнеса. Если выручка стагнирует или снижается, рост EPS может быть неустойчивым.
Operating Margin (Operating Profit Margin) – Операционная рентабельность
Процент выручки, остающийся после вычета операционных расходов (зарплаты, аренда, амортизация и т.д.).
🟰> 10%, в идеале > 15%: более высокая операционная маржа указывает на эффективную работу и лучший контроль над расходами. Она также обеспечивает подушку безопасности во время экономических спадов.
Net Profit Margin – Чистая рентабельность
Процент выручки, остающийся после вычета всех расходов, включая налоги и проценты.
🟰> 10%, в идеале > 15%: высокая чистая маржа показывает сильную прибыльность после учета всех расходов, включая проценты и налоги.
4. Valuation (оценка компании)
Раздел оценивает эффективность использования активов и капитала.
P/E (Price-to-Earnings Ratio) – Коэффициент цена/прибыль
Показывает, во сколько раз цена акции превышает прибыль на акцию (EPS).
🟰< 15 (в идеале от 8 до 12): более низкий P/E предполагает, что акции недооценены относительно их прибыли. P/E < 5 может сигнализировать о финансовых трудностях, тогда как P/E > 20 может указывать на переоценку компании.
P/B (Price-to-Book Value Ratio) – Коэффициент цена/балансовая стоимость
Отношение рыночной цены акции к балансовой стоимости компании.
🟰< 1,5, в идеале < 1: P/B ниже 1 предполагает, что акция торгуется ниже своей балансовой стоимости, что указывает на потенциальную недооценку. Однако акции с низким P/B могут быть и в отраслях, находящихся в упадке.
P/S (Price-to-Sales Ratio) – Коэффициент цена/выручка
Соотношение рыночной капитализации к выручке компании.
🟰< 2, в идеале < 1: более низкий P/S означает, что выручка компании не переоценена рынком.
Price/Cash (Price-to-Cash Flow Ratio, P/CF) – Цена к денежному потоку
Показывает, сколько инвесторы платят за каждый доллар денежных потоков компании.
🟰< 10: более низкий P/CF означает, что инвесторы платят меньше за каждый доллар денежного потока, что делает акции более привлекательными.
API для поиска фундаментальных данных по России
Получение фундаментальных данных по российскому фондовому рынку — непростая задача, поскольку доступных API значительно меньше, чем для американских акций. Тем не менее, существует несколько источников, которые можно использовать для автоматизации анализа.
T-Invest API предоставляет данные о российских акциях, включая фундаментальные показатели. Но выдаёт только текущие - истории нет, для скринера это АПИ не подходит.
Для частных лиц только 400 запросов в день.
Исторический период, по основной отчетности с 2012 года.
Гранулярность данных зависит от частоты выпущенных компанией отчетов, если компания выпускает отчетность по квартально – то квартал, по полугодиям, то полугодие. По РСБУ отчетности – чаще всего квартал. Это относится к категории – reports.
Мультипликаторы (ratios) рассчитываются только в годовом значении и ТТМ (последние 12 месяцев и текущая капитализация).
Запрос: /fm/v2/stocks/{exchange}:{code} Получить данные по компании
Не уверен что частное лицо может подключиться.
Сервис для предоставления данных о компаниях через API. Используются открытые источники: отчёты, документы, сообщения эмитентов и данные Центробанка. Рассчитываются фундаментальные коэффициенты деятельности компаний. Сервис ещё разрабатывается, но часть данных уже доступна. Информация делится на блоки: общая информация, оцифрованная отчётность, аналитика, прогнозы по акциям и статьи. Цена договорная.
Я писал на указанную ими почту и мне ничего не ответили за две недели.
Как ни странно, но сюда похоже ещё можно отнести сервис TradingView, который включает базовые показатели и основные строки из отчетности. У них есть свой язык программирования Pine. Этот язык используется для создания собственных индикаторов и стратегий. График может отображать почти любые строки из отчетности или макроэкономические показатели. Вот ссылка на справку и синтаксис как правильно писать.
А с помощью Pine скрипта можно составить индикаторы, которые отобразят ROE компании и SMA200.
Изменение ROE в отдельной панели:
// Михаил Шардин, https://shardin.name/
//@version=6
indicator("ROE History", overlay=false)
// Получение ROE
roe = request.financial(syminfo.tickerid, 'RETURN_ON_EQUITY', 'FQ')
// Plot ROE на отдельной панели
plot(roe, title="ROE", color=roe > 15 ? color.green : color.red, linewidth=2)
// Добавление горизонтальных линий для визуальной индикации
hline(0, title="Нулевая линия", color=color.gray, linestyle=hline.style_dashed)
hline(15, title="Порог ROE 15%", color=color.green, linestyle=hline.style_dashed)
// Цветовая индикация
bgcolor(roe > 15 ? color.new(color.green, 90) : color.new(color.red, 90))
SMA200 и бирки с отметками о ROE:
// Михаил Шардин, https://shardin.name/
//@version=6
indicator("ROE с SMA200", overlay=true)
// Получение ROE
roe = request.financial(syminfo.tickerid, 'RETURN_ON_EQUITY', 'FQ')
// Расчет SMA200 на основе цены закрытия
sma200 = ta.sma(close, 200)
// Визуализация SMA200 на графике
plot(sma200, color=color.red, linewidth=2, title="SMA200")
// Переменная для отслеживания предыдущего значения ROE
var float previousRoe = na
// Функция создания метки ROE
create_roe_label(float currentRoe) =>
label.new(x = bar_index, y = high + high * 0.05, text = "ROE (FY): " + str.tostring(currentRoe, "#.##") + "%", color = currentRoe > 15 ? color.green : color.red, style = label.style_label_down,textcolor = color.white)
// Создание метки при изменении ROE
if (not na(roe) and (na(previousRoe) or math.abs(roe - previousRoe) > 0.01))
create_roe_label(roe)
previousRoe := roe
// Цветовая индикация графика
bgcolor(roe > 15 ? color.new(color.green, 90) : color.new(color.red, 90))
Знаете ещё какие-нибудь API по России?
Если не использовать API, то теоретически можно спарсить данные с какого нибудь сайта и поместить их в базу данных - но это сложнее.
Заключение
Фундаментальный анализ выявляет недооцененные компании с сильными финансовыми показателями, что критично для долгосрочных инвестиций.
Технический анализ помогает определить оптимальные точки входа и выхода, учитывая рыночные тренды и психологию толпы.
Комбинация обоих подходов повышает точность решений: фундаментальные данные дают "что покупать", технические — "когда покупать".