Блог им. liohich
Приветствую, уважаемые смартлабовцы!
Наконец, я закончил разработку своего фундаментального скринера иностранных акций. В данном посте описываю основную идею созданной системы. Скринер анализирует финансовые отчеты компаний, торгуемых на Санкт-Петербургской фондовой бирже, и выстраивает их в рейтинг по инвестиционной привлекательности. Скринер решает следующие задачи:
1) Первоначальный отбор компаний. Отбрасываются компании с убывающей выручкой, с хроническими убытками и др.
2) Расчет комплексных финансовых индикаторов, например, усредненной за несколько лет прибыли, усредненной рентабельности, разброса доходов относительно среднего значения и др. Внесение этих данных в таблицу для анализа.
3) Ранжирование компаний одновременно по всему списку индикаторов.
Вышеперечисленные пункты стимулировали разработку данного скринера акций и являются его преимуществами по сравнению со скринерами, которые можно найти в интернете. Какие индикаторы я использую в анализе? Инвестиционная привлекательность акции определяется тремя составляющими: доходностью, темпом роста и риском. Текущую доходность можно характеризовать мультипликаторами стоимости компании (в скобках указано обозначение индикатора в таблице итоговых результатов ранжирования):
При расчете мультипликаторов я использую усредненные с учетом роста показатели прибыли и денежных потоков за некоторый период (7 лет). Индикаторы роста:
Показатели роста рассчитываются за 7 лет. Индикаторы качества и риска бизнеса:
Последние 4 индикатора (отклонение) характеризуют стабильность бизнеса в течение анализируемого периода времени (7 лет). Это разброс соответствующих значений относительно усредненного трендового значения (в отдельном посту напишу подробности). Индикаторы отклонения введены для того, чтобы повысить вес бизнесов, которые стойко выдерживают различные рыночные условия, доходы которых не сильно снижаются в неблагоприятных условиях.
Таким образом, выбраны 7 показателей доходности, 4 показателя роста и 9 показателей риска/качества бизнеса. После расчета индикаторов осуществляется ранжирование компаний. По каждому индикатору отдельно упорядочиваются компании по величине индикатора. Например, мультипликатор цена/прибыль. Компания с наименьшим положительным P/E получает балл 1, компания с наибольшим P/E получает балл 0, компании с убытком получают 0. Остальные компании получают промежуточный балл от 0 до 1 в зависимости от положения в списке. В итоговой таблице справа от значения каждого индикатора находится столбец с соответствующими баллами. Аналогично рассчитывается по всем анализируемым показателям. Затем все баллы суммирую (последний столбец таблицы – Итоговый балл) и выстраиваются компании по сумме баллов. Компании с наибольшей суммой считаются наиболее привлекательными для инвестирования. Окончательное решение принимается человеком.
Публикую в гугл таблицах результаты скринера на сегодня.
Поэтому интересует все по порядку и чем детальней тем лучше, так сказать пошаговый ликбез как организовать сбор данных, их фильтрацию по заданным критериям, визуализацию результата и выгрузку в таблицу для проверки правильности работы алгоритма.
1) Про долг. Долга нет в системе ранжирования, но на этапе первичной фильтрации отбрасываются компании с покрытием процентных расходов меньше 3. Сам по себе размер долга или финансового рычага не являются преимуществом или недостатком компании. Нельзя размеру долга однозначно поставить какую-то оценку, все определяется моделью бизнеса. Как критерий риска компании я подумываю о добавлении debt/EBITDA или покрытие процентов. А коэффициенты вроде капитал/долг или кеш/долг, мне кажется, будут неоправданно вносить сдвиг в оценке в сторону компаний с низким финансовым рычагом. Может, посоветуете, каких коэффициентов Вам не хватает.
2) Прибыль, выручку и другие показатели использую из линейной или экспоненциальной интерполяции отчетности за некоторый период на текущую дату. Прогнозы не использую, вместо них есть показатели темпов роста.
3) Использую рост прибыли компании вместо роста EPS. Разница есть при выкупе акций компанией, а по выкупу у меня есть отдельный столбец в таблице.
4) DCF потенциал. Автоматически считать справедливую цену из предсказанных денежных потоков и ставки дисконтирования на основе статистической beta — плохой вариант. Нормальную DCF можно построить только руками.
5) Объемы торгов. Спасибо за предложение, подумаю.
6) «но чисто складывать баллы это плохая идея» — почему? Моя система строится на таком размышлении: допустим две компании имеют одинаковые показатели, кроме одного. Тогда компания, у которой больший бал по этому показателю, должна быть выше в рейтинге. Т.е. рейтинг линеен по баллам в разных столбцах. Это заложено в идею системы.
7) «Допустим, если прибыли компании падают каждый год, то зачем ее вообще держать в портфеле»? Отвечаю, убывающие компании (по выручке) вообще отсутствуют в скринере, они отбрасываются на предварительном этапе фильтрации. Но если вдруг прибыль компании начнет снижаться, то это отразится на показателях роста, а также вырастет показатель отклонения прибыли. По этим критериям компания опустится в рейтинге.
8) «давать ранжирование по диапазонам разных показателей.» Это интересная идея, спасибо.
1) С долгами согласен, количество конечно не так критично. Я обычно использую коэффициент текущей ликвидности, то есть способность компании погасить свои обязательства за счет оборотных активов. Слишком низкое значение говорит о проблемах с деньгами или вообще о преддефолтном состоянии.
2, 3) дело вкуса. Я обратил внимание, что консенсус-прогнозы часто попадают достаточно близко к фактическим значениям.
4) С DCF согласен, достаточно хлопотно и не всегда объективно получается.
5, 6) Конечно понятна такая идея, удобно сравнивать сходные компании. Это работает только с похожими компаниями. А сейчас видно что у некоторых есть критические аномалии в показателях, но остальные показатели чуть лучше, это ставит их в рейтинге на одну ступеньку с просто неплохими компаниями. Допустим, с отрицательным P/E или с космически высоким. Это разные риски. Отсюда и идея все-таки разделять по группам. Или может давать другую систему баллов и перемножать их, чтобы такие аномальные опускались ниже. Честно, я так и не смог придумать как сделать более-менее справедливое распределение. Подобный подход с баллами есть в книжке www.magicformulainvesting.com/, пробовал тестировать портфели с таким подходом. Не понравилось, предполагаю именно из-за того что вот такие критические отклонения в показателях не учитываются.
Кстати, Вы правильно догадались, идея скринера родилась после прочтения книги «Little book that beats the market».
Спасибо за обсуждение!