Содержание статьи

Доказательства и область применения

Проверены общедоступная брошюра IBD и информация издателя о книге. Избранные графики успешных акций не являются полным журналом сделок портфеля. Ниже предложена исследовательская модель, похожая на плоскую базу, а не полное воспроизведение CAN SLIM. Новый бэктест не проводился.

Данные и рынкиЕстественная исходная выборка — акции с надёжными OHLCV, корректировками корпоративных действий и составом набора на исторический момент. Для фундаментальных показателей нужны метки времени публикации. Тиковый объём FX, спотовый объём криптовалют и объём бессрочных контрактов требуют отдельных гипотез; правила рынка акций нельзя переносить напрямую.
Таймфреймы исследованияИсходные масштабы исследования — это ежедневные и еженедельные данные. 25 торговых сессий — это выбор варианта реализации, а не точная календарная замена для каждого пятинедельного интервала. Для внутридневных вариантов необходимы отдельные предположения относительно нормализации объема и исполнения ордеров.
Восходящий тренд предшествует формированию плоской базы между 45 и 50; объем торгов сокращается внутри базы и увеличивается при пробое уровня 50.Открыть иллюстрацию в полном размере
Синтетическая иллюстрация для этой статьи. Точки сжато передают форму и не заменяют требование алгоритма о 25 сессиях.

Практическая последовательность действий

Порядок действий: CAN SLIM О’Нила и плоская база: правила и проверяемый детектор
Все шаги подробно описаны ниже. На каждом этапе нужно записывать причину отклонения при нехватке данных или невыполнении условий.
  1. Проверьте набор доступных акцийИспользуйте доступные на исторический период данные о ценах, объемах и фундаментальные показатели.
  2. Зафиксируйте базуСохраните K, F, ATR и период ожидания перед прорывом.
  3. Разделите вопросы об объёмеРазличайте низкую активность внутри базы и рост объёма при пробое.
  4. Отправьте исполнимый ордерКогда известны закрытие и объём, рассчитайте стоп, размер позиции и выделение капитала.
  5. Оцените каждый слой.Сравните детектор OHLCV с дополнительными компонентами CAN SLIM.

Что устанавливают общедоступные источники

Брошюра IBD описывает плоскую базу длительностью не менее пяти недель с коррекцией не глубже 15%. Традиционная точка покупки находится на 10 центов выше максимума базы, при объёме примерно на 40–50% выше среднего за предыдущие 50 дней. [1] Это учебные правила для рынка акций, а не универсальные константы для всех классов активов.

В книге William J. O'Neil How to Make Money in Stocks система CAN SLIM строится вокруг квартальной и годовой прибыли, новых событий, спроса и предложения, лидерства акций, поддержки институциональных инвесторов и направления рынка. [2] Сканер OHLCV измеряет лишь часть этой системы. Результат, полученный без остальных данных, нельзя называть полным бэктестом CAN SLIM.

Это различие делает исследование более информативным. Детектор цены и объема может установить, является ли базовое определение воспроизводимым и экономически целесообразным для торговли. Дополнительная информация о компании или рынке может быть затем проверена в качестве отдельных фильтров. Если все объединить одновременно, трудно сказать, какая очевидная выгода получена от графического паттерна, совокупности акций, рыночного фильтра или конкретной стратегии выхода.

Предлагаемые правила плоской базы без будущих данных

На закрытии бара-кандидата c рассмотрите 25 сессий, заканчивающихся на c. K — их наибольший максимум, F — наименьший минимум; depth=(K−F)/K. Требуйте depth≤0.15. Предлагаемый индикатор тренда: C[c]>SMA200[c] вместе с SMA200[c]>SMA200[c−20]. Фиксированное окно, скользящая средняя и буфер волатильности ниже — исследовательские решения, а не точное воспроизведение всех правил книги.

При создании кандидата зафиксируйте K,F,A=ATR14[c] и b=max(2 ticks,0.1A). В следующие десять сессий принимайте пересечение уровня K+b ценой закрытия вверх только при RVOL50=V[t]/mean(V[t−50..t−1]) не ниже 1.5. Отмените кандидата без открытой сделки, если цена упала ниже F−b или истёк срок ожидания. Пробойный бар нельзя включать в зафиксированную базу, повышая его собственное сопротивление.

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

Для каждого фундаментального поля храните значение, период наблюдения и время доступности. Кандидата можно оценивать лишь по последней записи, доступной к моменту решения. Пропуски должны оставаться пропусками либо вызывать заранее объявленное исключение; нельзя незаметно заполнять их более поздним финансовым отчётом.

on close c with no active candidate:
  K=max(H[c-24:c]); F=min(L[c-24:c])  # inclusive
  if depth<=0.15 and trend_proxy: freeze K,F,A,b,expiry=c+10
for c<t<=expiry:
  if L[t]<F-b: cancel
  elif C[t-1]<=K+b and C[t]>K+b and RVOL50[t]>=1.5:
    signal LONG; stop=F-b; enter next executable event
# Comparison baseline: target=entry+2*(entry-stop), time-stop=20 sessions.

Разделите активность внутри базы и при пробое

Объём может измерять снижение активности внутри базы и её рост при пробое сопротивления. Базовый вариант использует только RVOL пробоя. Отдельный эксперимент со снижением объёма добавляет отношение среднего за последние пять сессий до создания кандидата к среднему за предшествующие 50 сессий; предлагаемый максимум — 0.75. Это дополнительный параметр исследования, а не полный набор правил книги.

Окончательный суточный объем становится известен только после окончания сессии. [3] Не используйте этот окончательный RVOL для моделирования входа ранее в той же сессии при первом пересечении. Для внутридневной версии требуется кумулятивный объем, наблюдаемый в момент принятия решения, и сопоставимый ожидаемый базовый объем для этого времени суток.

Проверяйте снижение и рост объёма независимо. Они могут отбирать разные акции: спокойная база пробивается на обычном объёме, а очень активная — на высоком. Хранить оба непрерывных измерения полезнее, чем только общий признак «пройдено/не пройдено». Так можно оценивать чувствительность к порогам без повторного построения ценовых кандидатов.

Синтетические примеры и неудачная сделка

Пусть K=50, F=45, depth=10%, A=1 и b=0.1, а фильтр тренда пройден. После фиксации базы цена закрывается по 50.3; объём 1.8 миллиона акций при среднем в один миллион даёт RVOL=1.8. Исполнимый вход по 50.4 и стоп 44.9 означают риск R=5.5 на акцию. Предлагаемая цель 2R равна 61.4. При условном бюджете риска 550 денежных единиц предварительный размер — 100 акций до учёта издержек, лимита номинальной стоимости позиции и ликвидности.

Пример непрохождения фильтра имеет ту же цену закрытия, но RVOL=1.1. Версия с фильтром объёма не входит; контроль только по цене может войти. В примере убыточной сделки после входа по 50.4 гэп приводит к исполнению защитного стопа по 44.5. Убыток — 5.9 на акцию вместо плановых 5.5. Сделку нельзя удалить из истории из-за того, что позднее база кажется недостаточно привлекательной.

В успешном синтетическом сценарии цена достигает 61.4 до защитного стопа и до истечения лимита в 20 сессий. Пример показывает учёт заданного выхода, но не оценивает частоту таких исходов. Ветки с фильтром и без него сохраняют собственный фактический набор возможностей, включая кандидатов без сделки.

Ограничения, связанные с исполнением и портфелем

Стоп за всей базой прост для первоначального эксперимента. Стоп под локальным минимумом ближе к правому краю — другая реализация с потенциально иным распределением срабатываний. Ни этот структурный стоп, ни выход 2R/20 сессий нельзя приписывать О’Нилу как его полную исходную систему управления рисками.

После подтверждения проверьте доступную исполнимую котировку до отправки нового ордера. Если она делает соотношение цены и стопа недопустимым или нарушает заранее заданный риск, запишите отказ до отправки. Уже состоявшееся исполнение нельзя отменить задним числом из-за поздней информации о гэпе. Если стоп и цель лежат внутри одного бара OHLC, определите порядок по более подробным данным или постоянному консервативному правилу.

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

Проверка того, какие компоненты вносят свой вклад.

На одной выборке ценовых кандидатов сравните отсутствие фильтра объёма, только снижение объёма, только рост и оба условия. Затем поочерёдно добавляйте группы фильтров прибыли компаний, относительной силы и общего рынка. Измеряя вклад фильтра, сохраняйте время входа, выходы, размер позиции и издержки. Одновременная смена выхода не позволяет выделить вклад объёма.

Используйте состав доступных акций на исторический момент, включая исключённые из листинга, когда этого требует вопрос исследования. Показывайте число кандидатов и исполнений, чистое математическое ожидание в R, доходность портфеля, просадку, оборот и срок удержания. Список акций, выросших на несколько сотен процентов, не даёт полной выборки для оценки доли прибыльных сделок.

Проверьте реализацию на укороченной праздничной неделе, дроблении акций внутри базы, всплеске объёма в день пробоя, публикации отчёта после закрытия рынка и гэпе выше сопротивления до следующего решения об ордере. Зафиксируйте исторических кандидатов и повторите тот же начальный фрагмент данных после добавления будущих. Ни исходные уровни, ни доступные в момент решения данные не должны меняться.

Частые ошибки

Рассматривать один шаблон как целостную систему

Плоская база не включает фундаментальные характеристики компаний и общий рыночный контекст системы CAN SLIM.

Используя объем торгов в конце дня в начале дня.

Это использование будущих данных. Время входа должно учитывать, когда наблюдение объёма стало доступно.

Отбор только выживших акций

Исключение из списка компаний-банкротов или компаний, исключенных из биржевых реестров, может завышать исторические результаты и искажать доступный набор данных.

Список проверки перед использованием метода

Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.

0/6 пунктов

Частые вопросы

Следует ли использовать традиционный буфер в размере 10 центов на каждом рынке?

Не автоматически. Шаг цены и номинальная цена различаются. Буфер на основе ATR — отдельный исследовательский вариант, который нужно так обозначать и проверять.

Доказывает ли RVOL на уровне 1.5 прибыльность?

Нет. Это лишь одно из условий полноценной стратегии. Ее ценность должна измеряться с учетом затрат и вне выборки по сравнению с той же стратегией без этого фильтра.

Источники исследования

Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.

  1. IBD: How To Recognize Great Performing Stocks — Flat BaseInvestor’s Business Daily. Публичный буклет: геометрия плоского основания и объем. Прибыль от отдельных акций не рассматривается как доходность системы. Проверено: .
  2. How to Make Money in Stocks, Fourth EditionMcGraw Hill. Метаданные издателя и оглавление; полная платная версия книги не была прочитана. Проверено: .
  3. TradingView: RepaintingTradingView. Время доступности данных; подтверждения прибыльности нет. Проверено: .

Связанные методы

Примечание о рисках

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

Проверьте правила, прежде чем рисковать реальным капиталом

Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.

Скачать Backtest в App Store