Идея коротко
Марк Минервини покупает пробои только у акций во второй стадии цикла, когда бумага уже растёт. Чтобы не решать это на глаз, он записал восемь условий, trend template. Jack Corsellis разбирает их в видео про VCP и использует как первый широкий фильтр своего скана: сначала отсечь всё, что не в восходящем тренде, потом отсортировать оставшееся по относительной силе.
Фильтр ничего не покупает сам, а решает, можно ли применять к бумаге лонговый сетап: пробой базы, откат к средней, VCP. Семь условий считаются на одном графике. Относительная сила, седьмое условие на слайде Джека, требует сравнения: у Минервини это рейтинг IBD по всему рынку, у Джека ещё RS-линия против индекса и сравнение с ETF группы. Нумерация условий в карточке как на слайде Джека. В книге Минервини «Trade Like a Stock Market Wizard» (2013) порядок другой: цена выше SMA 50 идёт пятым условием, относительная сила восьмым, а минимальное расстояние от 52-недельного минимума 30%, а не 25%. Предпочтительный рейтинг относительной силы в книге «в 80-х или 90-х», на слайде Джека только «в 90-х».
weinstein-stages размечает четыре стадии по 30-недельной средней и сама даёт вход, index-ema-regime разрешает покупки по индексу. Trend template проверяет отдельную бумагу и добавляет расстояние от 52-недельных экстремумов и относительную силу.
Почему это может работать
Логика авторов в спросе. Бумагу, которая держится над растущими длинными средними, у 52-недельного максимума и сильнее рынка, уже покупают крупные участники. Джек объясняет относительную силу через бенчмарк: фонд в США оценивают против S&P 500, и управляющий, который отстаёт, теряет деньги клиентов. Поэтому деньги фондов идут в бумаги сильнее индекса, а RS-линия показывает, куда. Сильнейшим признаком Джек считает новый 52-недельный максимум RS-линии, пока цена ещё в базе: рынок давит, а бумага не падает.
Опора в видео описательная. Клуб 95% и средний рейтинг 87 у О'Нила показывают, как выглядели победители до роста. Сколько бумаг с теми же признаками не выросло, из этих цифр не видно. Шаблон отсекает бумаги, из которых большие движения выходят редко, но сам движения не обещает.
Правила
Trend template на одной бумаге (автор)
// дневные бары акции, сигнал на закрытии; на слайде все средние простые
// нумерация TT1-TT8 по слайду Джека; в книге Минервини цена выше SMA 50 условие 5, RS условие 8
SMA50 = SMA(Close, 50)
SMA150 = SMA(Close, 150) // автор: 150 дней = 30 недель
SMA200 = SMA(Close, 200) // автор: 200 дней = 40 недель
Low52 = Lowest(Low, 252) // Finetiq: 52 недели = 252 бара, по минимумам
High52 = Highest(High, 252)
TT1 = Close > SMA150 AND Close > SMA200
TT2 = SMA150 > SMA200
TT3 = SMA200 > SMA200[21] // автор: растёт минимум месяц; Finetiq: месяц = 21 бар
TT3_strict = TT3 AND SMA200[21] > SMA200[42]
AND SMA200[42] > SMA200[63] AND SMA200[63] > SMA200[84]
// автор: лучше 4-5 месяцев; Finetiq: 4 шага по 21 бару
TT4 = SMA50 > SMA150 AND SMA50 > SMA200
TT5 = Close >= 1.25 * Low52 // сообщество (Джек, слайд): минимум на 25% выше 52-недельного минимума
TT5_book = Close >= 1.30 * Low52 // автор (книга): не меньше 30%
TT6 = Close >= 0.75 * High52 // автор: не дальше 25% от 52-недельного максимума
TT8 = Close > SMA50 // автор
TT8_cheat = Close >= 0.92 * SMA50 // автор: для cheat и low cheat до 8% ниже SMA 50
TemplateOK = TT1 AND TT2 AND TT3 AND TT4 AND TT5 AND TT6 AND TT8
// условие 7, относительная сила, в отдельных блоках ниже
Джек добавляет, что во второй стадии должен быть и рынок. Фильтр по индексу берите из index-ema-regime.
Относительная сила: рейтинг по вселенной (отдельное правило)
// автор (книга): IBD relative strength не ниже 70, лучше в 80-х или 90-х
// сообщество (слайд Джека): больше 70, лучше в 90-х. Формула IBD в видео не раскрыта
// сообщество (Джек): скан по RS rank за 3 месяца больше 70, сортировка от 99 вниз
ROC63 = Close / Close[63] - 1 // Finetiq: прокси рейтинга, 3 месяца = 63 бара
RSRank = перцентиль ROC63 среди всех акций вселенной в этот день, шкала 1-99 // Finetiq
RS_OK = RSRank > 70 // автор
RS_Pref = RSRank >= 90 // сообщество (слайд Джека): лучше в 90-х
RS_Pref_book = RSRank >= 80 // автор (книга): лучше в 80-х или 90-х
// сообщество (Джек): скан после закрытия по всей вселенной США
Scan = Close > SMA50 AND Close > SMA200 AND TT6
AND Average(Volume, 50) > 50 000 // сообщество (Джек): можно поднять до 100-200 тысяч
AND RS_OK
// дальше просмотр графиков глазами, начиная с RS 99 (сообщество, Джек)
RS-линия против индекса (сообщество, окна Finetiq)
Index = S&P 500 // сообщество (Джек): бенчмарк фондов США; на других рынках свой индекс
RSLine = Close / Close of Index
RSHigh = RSLine >= Highest(RSLine, 252) // сообщество (Джек): 52-недельный максимум RS-линии (синие точки)
RS_Line_OK = RSHigh хотя бы на одном из последних 20 баров // Finetiq: окно 20
RS_InBase = RSHigh AND Close < Highest(High, 40)[1] // сообщество (Джек): максимум RS-линии, пока цена в базе
// Finetiq: «в базе» = ниже 40-дневного максимума
Вариант B. Каскад: индекс, группа, акция (Jack Corsellis)
Джек сравнивает бумагу с ETF её группы, а ETF с индексом. Пример из видео: золотодобытчик AEM против GDX на 30 июля 2024 года. Способ формализации и окна ниже наши.
ETF = отраслевой ETF бумаги // сообщество (Джек); Finetiq: сопоставление задаётся вручную
GroupStrong = (Close of ETF / Close of Index) >= Highest(ETF / Index, 63)
хотя бы на одном из последних 10 баров // Finetiq
// взгляд через ключевую среднюю (сообщество, Джек: EMA 21)
StockHoldsMA = Close > EMA(Close, 21) на каждом из последних 10 баров // Finetiq: 10 баров
GroupLostMA = Close of ETF < EMA(Close of ETF, 21) хотя бы на 1 из последних 10 баров
// структура (сообщество, Джек): бумага удержала пробитый максимум на откате, ETF ушёл ниже минимума того же бара
RefBar = бар максимума бумаги в окне от 60 до 20 баров назад // Finetiq
StockHold = Highest(High, 20) > High[RefBar] AND Lowest(Low, 10) > High[RefBar]
GroupFail = Lowest(Low of ETF, 10) < Low of ETF[RefBar]
LeaderInGroup = GroupStrong AND StockHold AND StockHoldsMA AND (GroupFail OR GroupLostMA)
Подключение к карточкам базы (Finetiq)
// пример 1: qullamaggie-breakout. В её скане уже есть цена выше SMA 50 и 200
Setup_A = Setup // как в карточке
Setup_B = Setup AND TemplateOK
Setup_C = Setup AND TemplateOK AND RS_Line_OK
// вход, стоп и сопровождение не меняются; сравнить три прогона
// пример 2: weinstein-stages, вариант B. Добавляем только то, чего у Вайнштейна нет
BuyAllowed_TT = BuyAllowed AND TT5 AND TT6 AND RS_Line_OK
// TT5 часто отсекает пробой из стадии 1, который Вайнштейн покупает
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Средние | SMA 50, 150, 200 | автор |
| Рост SMA 200 | минимум месяц, лучше 4-5 месяцев | автор |
| Месяц | 21 бар | Finetiq |
| От 52-недельного минимума | не меньше +25% (в книге 30%) | сообщество (слайд Джека), автор (книга) |
| От 52-недельного максимума | не дальше 25% | автор |
| 52 недели | 252 бара по High и Low | Finetiq |
| Исключение для cheat-входов | до 8% ниже SMA 50 | автор |
| Относительная сила | рейтинг выше 70, лучше в 90-х (слайд Джека) или в 80-х и 90-х (книга) | автор (книга), сообщество (слайд Джека) |
| Прокси рейтинга | перцентиль ROC за 63 бара | Finetiq |
| Средний объём в скане | больше 50 тысяч за 50 дней, можно 100-200 тысяч | сообщество (Джек) |
| Бенчмарк RS-линии | S&P 500 | сообщество (Джек) |
| Окно свежего максимума RS-линии | 20 баров | Finetiq |
| «В базе» | ниже 40-дневного максимума | Finetiq |
| Ключевая средняя в каскаде | EMA 21 | сообщество (Джек) |
| Окна каскада | 10, 20, 60, 63 бара | Finetiq |
Что проверить
- Даёт ли шаблон что-то сверх двух средних. Один лонговый сетап на корзине акций без фильтра, с
Close > SMA50 AND Close > SMA200(как в скане Джека) и с полным шаблоном. Если полный не лучше, лишние условия только режут число сделок. - Какие условия работают. Выключайте по одному TT3, TT5, TT6 и TT8. TT5 отсекает ранние пробои из первой стадии, на него смотрите особенно.
- Окрестность порогов. 25% от экстремумов против 20% и 30%, рейтинг 70 против 60 и 80, рост SMA 200 за месяц против двух и четырёх. Резкий скачок результата означает подгонку.
- Рейтинг по вселенной против RS-линии. Разметьте сделки двумя способами: RSRank > 70 и RS_Line_OK. Если RS-линия отбирает почти те же бумаги, фильтр можно переносить на платформы без ранжирования.
- Три месяца против двенадцати. Джек считает RS за 3 месяца эффективнее 12-месячного. Прогоните рейтинг по ROC63 и по ROC252.
- Каскад группы. Сделки, где бумага сильнее своего ETF, а ETF сильнее индекса, против остальных. Сопоставление бумаг и ETF берите на дату сделки.
- Ошибка выжившего. Тест на сегодняшнем составе рынка завышает результат, нужна вселенная с исключёнными из листинга акциями.
Особенности платформ
TradingView (Pine Script)
- Условия шаблона, кроме рейтинга, считаются на одном графике:
ta.sma,ta.highest(high, 252),ta.lowest(low, 252). Истории нужно не меньше 300 баров. - RS-линия: закрытие индекса через
request.security(indexSymbol, "D", close)и деление. - Рейтинг по всей вселенной в Pine не посчитать: число символов в
request.securityограничено, а стратегия торгует только символ графика. Условие 7 можно заменить RS-линией, но это другое условие (проверка 4). - Портфельного теста нет. Фильтр проверяется на заранее выбранном списке бумаг по одной, а такой список уже содержит ошибку выжившего.
MultiCharts и TradeStation (EasyLanguage)
- Индекс для RS-линии подключается вторым потоком:
Close / Close of Data2. Проверьте, что даты баров акции и индекса совпадают, иначе на праздниках линия прыгает. - Рейтинг по вселенной и каскад считаются в портфельном модуле (TradeStation Portfolio Maestro, MultiCharts Portfolio Trader). ETF группы нужен как ещё один поток данных.
Average(Close, 200)с проверкой роста за 84 бара иHighest(High, 252)требуют длинного разогрева. MaxBarsBack задайте не меньше 300.- Данные без поправки на сплиты ломают TT5 и TT6: после сплита 52-недельный минимум оказывается выше цены. Берите ряды с поправкой.
MetaTrader 5 (MQL5)
- CFD на акции у брокера обычно несколько сотен крупных бумаг США. Рейтинг среди них не совпадёт с рейтингом по 5500 акциям из скана Джека, а небольших быстрых бумаг часто нет.
- Средний объём из скана по CFD не посчитать: доступен только тиковый объём (
iTickVolume). - Дневная история CFD на акции часто короче нескольких лет. SMA 200 с ростом за 4 месяца съедает больше года на разогрев.
- Индекс для RS-линии читается через
iCloseпо символу CFD на S&P 500. Дневные бары индексного CFD и CFD на акции закрываются по серверному времени, сверяйте даты.
Где идея может сломаться
- Все цифры в видео описывают победителей задним числом: клуб 95%, рейтинг 87 у О'Нила. Доли бумаг с теми же признаками, которые не выросли, там нет, как и теста фильтра.
- Рейтинг IBD закрытый. Прокси по ROC за 63 бара отбирает похожие, но не те же бумаги.
- Шаблон запаздывает. После падения рынка бумаге нужны месяцы, чтобы снова пройти TT2, TT3 и TT4, и начало нового роста фильтр пропускает.
- Шаблон считается по простым средним, а сделки Джек ведёт по EMA 10 и 21. В коде их легко перепутать.
- Сопоставление бумаги и отраслевого ETF меняется со временем. Сегодняшний список групп в тесте на истории даёт заглядывание вперёд.
- Все три видео спонсирует один сервис Investor's Business Daily: MarketSmith, в 2024 году переименованный в MarketSurge (внешний факт, не из видео). Поэтому в видео 2023 года спонсор назван MarketSmith, а в видео 2024 года MarketSurge. В первом видео Джек показывает свой скринер.