Блог им. ArtsiomFursevich

Баффет был прав? Почему мой Python-скрипт «забраковал» Apple и нашел жемчужину в битых тачках.

Всем привет.

Я QA-инженер, в инвестициях уже 6 лет. Мой путь стандартный: сначала слушал «гуру», потом поумнел и собрал гигантскую таблицу в Excel. Я из тех, кто не покупает акцию, не посмотрев тренды выручки, маржинальности и ROIC за 5–10 лет.

 

 

В чем была моя личная боль:

На глубокий анализ одной компании по моему чек-листу (14 метрик в динамике) уходило около 2 часов. Забивать руками данные из Macrotrends в таблицу — то еще удовольствие. Самое обидное, когда в конце второго часа понимаешь, что компания — переоцененный шлак с падающей маржой, и время потрачено зря.

Еще одна боль — это «магия цифр» (это касается и книг и обучающих видео).
Книги и видео говорят: «Ищите рост выручки > 7% или ROA > 6.5%». Но почти никто не объясняет — почему? Откуда взялись эти цифры? Почему 7 и 6.5, а не 10 и 8 или не 5 и 3...

 

 

Что я накодил:

Баффет был прав? Почему мой Python-скрипт «забраковал» Apple и нашел жемчужину в битых тачках.
Написал сервис на FastAPI, который через API тянет отчетность и делает «Sanity Check» компании за 2 секунды. А вместо слепого следования догмам из книг и видео, я привязал все метрики к усредненным показателям компаний из S&P 500.
Я смотрю на бизнес через призму создания стоимости: если ROIC компании ниже её стоимости капитала (WACC) или равен ей, то никакой рост выручки её не спасет — она просто быстрее сжигает деньги инвесторов. Мой алгоритм подсвечивает именно этот разрыв.

Но я столкнулся с тем, на чем валятся многие готовые скрипты и даже крупные агрегаторы:

  • Проблема «холодного старта»: Когда у компании появляется новый сегмент или данные за год нулевые, CAGR улетает в бесконечность. Я внедрил метод импутации (подстановка 1% от среднего), чтобы сохранить адекватность тренда.
  • Аномалии в отчетности: Мой алгоритм умеет фильтровать «творческую бухгалтерию» — например, когда ROE становится отрицательным или зашкаливает за 100% из-за долгов. А компания всего-то является жестким байбекером.

Скоринг за 2 секунды: Вместо 2 часов в Excel я получаю вердикт сразу. Это не кнопка «разбогатеть быстро», а фильтр: заслуживает ли компания моего внимания или её нужно закрыть и забыть.

Парочка примеров:

Баффет был прав? Почему мой Python-скрипт «забраковал» Apple и нашел жемчужину в битых тачках.

(Apple vs Google): Баффет скинул львиную долю акций Apple, акции все равно подорожали на 30+% и все вокруг закричали, что старик упустил выгоду, Apple — топ компания и т.д.

А что по факту?
Revenue Growth стагнирует (около 3.3% в год),
EPS Growth за 5 лет в 2 раза хуже, чем рост индекса (7.21 vs 14.7).
Компанию тащит только феноменально широкий экономически ров, что видно по бешеному ROIC (45%).
P/E компании в околоисторических максимумах.


В то же время Google по моим метрикам выглядит фундаментально намного здоровее.


Другой пример:
Баффет был прав? Почему мой Python-скрипт «забраковал» Apple и нашел жемчужину в битых тачках.
Copart (CPRT) — скучный бизнес, который делает деньги.
Пока все ищут «новую Nvidia», мой алгоритм подсветил Copart. Это аукционы битых машин.
Звучит не сексуально? Зато цифры говорят об обратном:

  • ROIC 19.09%: При средней стоимости капитала в секторе около 8–9%, компания создает колоссальную добавочную стоимость.
  • Рост свободного денежного потока (FCF Growth) — 23.5%. При этом у компании отрицательный чистый долг (Net Debt/EBITDA = -1.27x). То есть кэша на счетах больше, чем всех обязательств.
  • Операционная маржа 38.7%. Для реального сектора — это космос.

 

 

Зачем я это выкладываю:

Я довел проект до стадии MVP (назвал OkStock). Денег за него не беру, рекламы внутри нет. Я хочу получить фидбек от опытных инвесторов.

Какие метрики вы считаете «железобетонными» для отсева шлака?
Что бы вы хотели добавить?

Потыкать сервис можно тут (бесплатно): https://okstock.app/

Интерфейс рисовал сам как умел, на мобилках может быть кривовато, так что лучше смотреть с десктопа.
Буду рад конструктивной критике от тех, кто, как и я, любит цифры, а не гадания на кофейной гуще.

9.1К | ★26
33 комментария
Не нравится мне этот гусь.
Дмитрий-Димас Ермаков, за что же Вы так со стариком Баффетом?
avatar
Важна ликвидность.Это большая фрагментация пакетов акций, чем у других . КП от 30%, а не 51 и более. Сколько пакетов близко к 1%? к 10%? к 25% 
avatar
ezomm, сейчас OkStock сфокусирован на «бизнес-показателях» (выручка, маржа, ROIC), но данные по структуре владельцев — это отличная идея для расширения раздела рисков. Записал в бэклог, спасибо!
avatar
Artsiom Fursevich, 1%+1голос -доступ к информации .10%+1г в совет директоров. 25%+1г блокировка важных решений. КП (чем меньше, тем лучше) принятие решений вероятно и при 30%, но 51% вероятность любых манипуляций.
avatar
ezomm,
В американских публичных компаниях, на которых сейчас сфокусирован сервис, структура владения часто сильно размыта между фондами, и нет такой жесткой градации, как Вы описываете, но мониторить долю мажоритариев всё равно полезно, чтобы понимать, кто на самом деле «рулит» процессом.
Буду иметь в виду при добавлении раздела рисков!
avatar
Добрый День!
Прочитал статью до конца и скопировал.
Пожалуй выскажу восхищение проделанной работой и описанием труда!
Это одна из замечательных статей на Смарт Лабе по теме и без воды!
Валентин Борисов, Ого! Огромное спасибо за такую оценку! Честно, очень льстит, особенно на Смартлабе :)

Буду безмерно благодарен, если попробуете OkStock в деле. Мне сейчас важнее всего «критика делом»: всё ли понятно в интерфейсе и каких метрик вам лично не хватило для «полного счастья»?
avatar
Да не, не то. Инвесторы не платят за вакки и роики. Это все скучно, Инвесторы платят за 1)прогнозщируемый рост выручки в течение 1-2 лет, 2)какую долю рынка занимает эта контора, и показыает ли рост ее рынок, Какие прогнозы по росту рынка/сегмента, где работает компания 3)как компания эффективно тратит деньги акционеров-возврашает ли она их через дивиденды или вкладывает в высокоприбыльные бизнесы, 4)теряет ли или увеличивает ли долю рынка компания? 5)есть ли уникальный специфический продукт, который не могут скопировать конкуренты? 6)маржинальность бизнеса — меньше 10 и даже 15% не рассматривается, ищут от 50%+++ 7)долг к основным средствам (каков он), да и вообще Баффет еще хотел покупать по Intristic Value компании-изучите что это. А его выбором всегда являлись конторы которые растут на 10% ежегодно. В течение десятков лет. Усмехаясб, он сказал, что таких компаний практически нет
Павел Дерябин,
Давайте по фактам:

Прогнозировать рост выручки на 1–2 года или какую долю рынка компания будет занимать — это гадание. Я инженер, а не Ванга. Мой подход — «Эффект Линди»: если компания стабильно росла 10 лет, вероятность продолжения — выше, чем у любого прогноза аналитика из инвестбанка.

Маржа 50%+ бывает только у Asset-light компаний (софт, финтех). Ограничивать себя только ими — значит пропустить 80% рынка. У меня в фильтрах стоит порог 15–16%, что уже выше среднего по S&P 500.

ROIC — это и есть математическое выражение «уникального продукта» и «эффективности трат». Если у компании есть «ров» (Moat), он отразится в высоком ROIC. Если рва нет то и ROIC будет слабым. Пример с Apple, по-моему, это идеально отражает.

Мой скрипт — это сито. Он отсеивает тех, кто НЕ соответствует вашим же пунктам (6 и 7), чтобы вы не тратили время на чтение отчетов компаний с дутыми цифрами. За 2 секунды я вижу то, на что вы потратите час или два ручного анализа
avatar
Из-под российского IP без VPN фрейм P/E Ratio не отображается, видимо, из-за блокировки со стороны macrotrends.net, но сходу этого не понять — просто «Firefox не может открыть эту страницу»
avatar
Tony_M, да, есть такая проблема: Macrotrends блокирует прямые заходы из РФ.

У меня есть в планах переезд на собственные графики, чтобы все было в одном стиле и работало без ВПН. Но Macrotrends дают сильно больший диапазон лет, чем я могу пока себе позволить купить на этапе МВП.

В ближайшем обновлении прикручу валидацию: если ресурс недоступен, буду выводить заглушку с текстом, а не пустой фрейм. Спасибо, что подсветили!
avatar
Я искала такой алгоритм!!! Чтобы не просто покупать акции, которые интуитивно нравятся, а но основе анализа! Спасибо большое, что поделился!
Допилить бы только еще мобильную версию…
Ольга Заморская, огромное спасибо за поддержку! Ради таких отзывов и стоило выкладывать.

Насчет мобильной версии — вы абсолютно правы. Пока я фокусировался на логике расчетов и данных, интерфейс остался на втором плане.

Уже занес адаптив в список приоритетных задач на ближайшее время :)
Постараюсь сделать так, чтобы анализировать компании можно было удобно прямо с телефона!
avatar
А, где берешь данные?
avatar
Denis Stelmak,
Ох, Вы прям по больному :)

Начинал с бесплатного плана FMP + скрапер Yahoo Finance как фолбэк, так как на бесплатном тарифе FMP дает доступ всего к паре десятков компаний. Сейчас подключил их платный пакет, чтобы охватить весь S&P 500.

Вообще найти качественный источник — это одна из самых сложных и дорогих частей проекта. Многие ресурсы дают смотреть данные в браузере, но за API просят от нескольких десятков до нескольких сотен долларов в месяц (особенно если хочешь коммерческую лицензию). Так что пока проект живет на моем энтузиазме и личных вложениях.
avatar
Artsiom Fursevich, всегда ведь можно автоматизировать сбор инфы через скрапперы
avatar
Тут рыбы нет ©
avatar
wrmngr, так это вроде и не форум рыбаков :)
avatar
Artsiom Fursevich, навара тоже нет в этом подходе. Всё выгребли уже
avatar
wrmngr,
Спорный момент.
Если бы ваш тезис был правдой, то мы бы не видели взлетов компаний за один день на 30%, а потом планомерное падение в течение пары месяцев обратно (пример Oracle), мы бы не видели 100+% у Гугла за полгода (фундаментал просто потрясающий, но появились новости, что поиск якобы больше не приносит бабла). Или посмотрите на Meta в 2022-м: на цифрах бизнес оставался «конфеткой», но рынок в панике укатал его до $90, чтобы потом выкупить обратно до $500+.
Рынок эффективен на бумаге, а на деле он постоянно впадает в истерику.

Мой подход не про «поиск ракеты», а про защиту. Большинство инвесторов теряют деньги не потому, что не нашли «навар», а потому что купили мусор с долгами и низкой эффективностью, поверив в хайп. (Предположу, что Apple скоро будет очень уверенно корректироваться, т.к. фундаментально компания стала сильно слабее своего ценника).
avatar
Artsiom Fursevich, вы изобретаете велосипед устаревшей модели. Не более того. Если прям уж так интересно погоняйте бектесты на платформе www.portfolio123.com/. Факторные модели по фундаментальным данным не имеют значимой альфы уже пару десятков лет
avatar
wrmngr, надо-же, раскажите это Баффету, он не знал.
avatar
Я похоже считаю. Данные да проблема найти.

Мне больше нравится формула Гринблата EV/Predicted(EBIT) and ROC
avatar
Alex Craft,
Честно говоря, я не слышал про формулу Гринблатта — надо почитать.
Пока использую P/E как самый «базовый» и понятный широкому кругу показатель.

Вообще, поиск идеальной формулы — это бесконечный процесс, так что буду дорабатывать скрипт по мере погружения.

Спасибо за наводку!
avatar
Artsiom Fursevich, п/е не имеет смысла, он покажет одинаковое значение для 2х компании с одинаковыми прибылью и капитализацией, но у одной еще долг а у другой нет. Он не видит этого.

Это не идеальная формула, это обычная бухотчетность, там нет никаких секретов или суперприбыльных спослбов. Это просто корректная интерпретация фин и бух отчетности.

Сложность в том чтобы корректно учесть долги компании и тп вещи, это требует вникания в отчетность.
avatar
Alex Craft,
Согласен, голый P/E в вакууме мало о чем говорит.
Именно поэтому мой алгоритм анализирует его не как статичную цифру, а в трех плоскостях: Исторический P/E компании: насколько текущая оценка отклонилась от её же средних значений за годы.
P/E сектора: не «перегрета» ли бумага относительно прямых конкурентов.
Сравнение с широким рынком (S&P 500).
Если компания стоит дешево относительно своей истории и сектора, при этом имеет здоровый Net Debt / EBITDA — это и есть та самая «неэффективность рынка», которую я ищу.
Одной формулой Гринблатта тут не обойтись, нужен комплексный фильтр, который я и реализовал

Я пока не успел детально разобраться с EV/EBIT. НО! На сколько я понял, этот параметр позволит «высвечивать» реальную стоимость бизнеса для компаний с агрессивными байбеками или специфической долговой нагрузкой, поэтому я записал себе в бэклог задачу по изучению метрики и добавления ее в алгоритм в дальнейшем.
avatar
Денeг не дам.
avatar
Напишите пож краткую методичку, как именно вы видите показатели своих графиков. 
Что вы считаете важными показателями. На что смотреть. 
Лучше отдельный пост. 

Виталий Зотов,
Хм… У меня сразу борятся две мысли:
1. Очень льстит, что вам интересно моё видение «правильного» выбора метрик. Значит, проект зацепил.
2. Это звоночек для меня, что я недостаточно наглядно объяснил логику внутри самого сервиса.

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

И, конечно, поправлю тултипы на сайте, чтобы логика считывалась сразу.

Спасибо за запрос, это отличная тема для следующей статьи!
avatar
Отличная работа. Не слушайте диванных экспертов, которые обсирают любую продуктивную деятельность.
Ещё бы придумать как потестировать такую методику отбора, хотя бы на последних 5 годах.
avatar
SmartInvestIK,
Большое спасибо за поддержку!
На самом деле, методика Owner Earnings + ROIC — это база, на которой десятилетиями выезжает Berkshire Hathaway. Но вы правы, сухие цифры бэктеста на графике всегда нагляднее. Сейчас тул заточен под текущий срез, но идея «отмотать время назад» и посмотреть, что бы он советовал в 2021-м — отличный вектор для развития.
Пока не знаю как это реализовать, но записал себе как идею.
avatar

Читайте на SMART-LAB:
Фото
Евро ищет опору у 1.18: рынок переключается с техники на инфляцию и ЦБ
EUR/USD отскочила после двухдневного снижения и держится в районе 1.1820 во время Лондонской сессии во вторник. На дневном графике пара...
Фото
Фиксируем валютную доходность
Чрезмерно крепкий курс рубля ― нетипичное состояние для российской экспортоориентированной экономики. В течение всего 2025 года мнения...
Сообщаем результаты оферты по выпуску облигаций серии БО-П13
Друзья, привет! ⚡️Делимся итогами оферты по выпуску наших облигаций серии БО-П13. В рамках оферты мы погасили облигации на общую сумму в 15,2...
Фото
Хэдхантер. Ситуация на рынке труда в январе. Хуже - чем просто хуже некуда
Вышла статистика рынка труда за январь 2026 года, которую Хедхантер публикует ежемесячно, что же там интересного: Динамика hh.индекса...

теги блога Artsiom Fursevich

....все тэги



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