Идея коротко
Стэн Вайнштейн описал цикл, через который проходит любой актив. Стадия 1: база после падения, цена ходит в диапазоне, 30-недельная средняя становится плоской. Стадия 2: рост, средняя поворачивает вверх, каждый минимум выше предыдущего. Стадия 3: вершина, средняя снова выравнивается, цену болтает. Стадия 4: падение под опускающейся средней. Покупать имеет смысл только во второй стадии, лучше всего в момент выхода из базы.
В карточке две версии одного подхода. Ted Zhang из Revere Asset Management строит классификатор на четырёх недельных простых средних (10, 20, 30, 40) и использует его как фильтр режима для любых рынков: акций, ETF, крипты, металлов, облигаций, валют. Jack Corsellis пересказывает книгу Вайнштейна с правилами входа и выхода: пробой базы на объёме, стоп-лимитный ордер, стоп 4-6% и выход под 30-недельной средней.
Почему это может работать
Логика Вайнштейна в том, что крупные участники набирают позицию в стадии 1 и раздают её в стадии 3. В обеих стадиях цена ходит без направления, и трейдер получает серию мелких убытков. Тед формулирует это через старую мысль: первую и последнюю восьмую часть движения стоит отдать, они самые дорогие, а зарабатывать на средних шести восьмых. Средние здесь не прогноз, а способ сгладить структуру цены и увидеть, где рынок в цикле.
Объём нужен из-за асимметрии. Росту нужны покупатели, поэтому пробой из базы без всплеска объёма подозрителен. Падению покупатели не нужны, цена падает под собственным весом, и пробой вниз объёмом подтверждать не обязательно.
Ни Тед, ни Джек не приводят статистики по классификатору или по пробоям. Все примеры в видео (ARKK, ANF, биткоин, серебро 1970-х, уран) отобраны задним числом. Проверять придётся с нуля.
Правила
Классификатор стадий (Тед, недельные бары)
// сигнал на закрытии недели
MA10 = SMA(Close, 10)
MA20 = SMA(Close, 20)
MA30 = SMA(Close, 30)
MA40 = SMA(Close, 40) // автор: простые средние, ключевые 30 и 40
// наклон средней. Автор говорит о скорости изменения словами, чисел нет
Slope(MA) = (MA - MA[4]) / ATR(14) // Finetiq: 4 недели, в долях недельного ATR
Rising(MA) = Slope(MA) > 0.25 // Finetiq: стартовый порог «плоской» средней
Falling(MA) = Slope(MA) < -0.25
// структура цены: максимумы и минимумы выше (автор)
// Finetiq: свинг-точка = неделя, чей High (Low) выше (ниже) двух недель слева и двух справа
UpStructure = последний SwingHigh > предыдущего AND последний SwingLow > предыдущего
DownStructure = последний SwingHigh < предыдущего AND последний SwingLow < предыдущего
Stage2 = Close > MA10 AND Close > MA30 AND Close > MA40
AND MA10 > MA20 AND MA20 > MA30 AND MA30 > MA40
AND Rising(MA30) AND Rising(MA40)
AND UpStructure
Stage4 = Close < MA10 AND Close < MA30 AND Close < MA40
AND MA10 < MA30 AND MA30 < MA40
AND Falling(MA30) AND Falling(MA40)
AND DownStructure
// автор: в схеме стадии 4 Тед называет порядок 10 < 30 < 40 без MA20, а в стадии 2 порядок 10 > 20 > 30.
// На примере ARKK цена ниже всех четырёх средних. Вариант для проверки: добавить MA10 < MA20 AND MA20 < MA30
// всё между ними переходные стадии
IF NOT Stage2 AND NOT Stage4
Stage = 1, если последняя определённая стадия была 4
Stage = 3, если последняя определённая стадия была 2 // Finetiq: разметка по предыдущей стадии
// минимум для покупок, который Тед назвал явно
LongAllowed = Close > MA10 AND Close > MA20 AND Close > MA30 AND Close > MA40
AND MA10 > MA20 AND MA20 > MA30
// в стадиях 1 и 3 не торгуем, шорт только в стадии 4 (автор)
Тед отмечает ещё два признака. В стадии 1 средние сходятся, режут цену, и 10-недельная возвращается выше 30-недельной. На длинных таймфреймах он смотрит график в логарифмической шкале. Цикл фрактален: на дневках он берёт средние 10 и 20 дней вместе с 30 и 40 неделями.
Вариант B. Пробой по Вайнштейну (в пересказе Джека)
// простой классификатор Вайнштейна: одна средняя
MA30 = SMA(Close, 30) недельная // автор: то же, что SMA 150 на дневках
// запреты автора: не покупать ниже MA30 и при падающей MA30, даже если цена выше
BuyAllowed = Close > MA30 AND NOT Falling(MA30)
// база и пивот
Pivot = Highest(High, 13)[1] // Finetiq: верх базы за последний квартал
Base = NOT Rising(MA30) AND NOT Falling(MA30) // Finetiq: средняя плоская на неделе перед пробоем
IF BuyAllowed AND Pivot > MA30
BUY STOP at Pivot LIMIT Pivot * 1.01 // автор: стоп-лимит, лимит на 1% выше пивота
// Base = пробой из стадии 1 (инвестор), NOT Base = пробой продолжения в стадии 2 (трейдер)
// после закрытия недели пробоя
IF Volume < 2 * Average(Volume, 4)[1] // автор: неделя пробоя ≥ 2× средней за прошлый месяц
EXIT AT NEXT BAR OPEN // автор: слабый объём на пробое, продать быстро
// дневные бары: объём дня пробоя ≥ 2× средней за прошлую неделю (автор)
Стоп и выход
// начальный стоп
InitialStop = последний SwingLow ниже пивота // автор: под значимой поддержкой
IF (Pivot - InitialStop) / Pivot > 6%
InitialStop = Pivot * 0.95 // автор: 4-6% под пробоем; Finetiq: берём 5%
// стоп не ставить ровно на круглое число: 99.95, а не 100 (автор)
// трейдер (2-4 месяца, 80% сделок из пробоев продолжения)
IF Close < MA30 THEN EXIT AT NEXT BAR OPEN // автор: ниже 30-недельной не оставаться
откаты меньше 7% не повод для выхода // автор
после нового максимума выше предыдущего SwingHigh
StopLoss = последний SwingLow - отступ // автор: стоп под предыдущий более высокий минимум
// инвестор (до 12 месяцев, 80% сделок из пробоев стадии 1)
половина позиции на пробое, половина на откате к Pivot // автор
держать, пока Close > MA30 и MA30 растёт // автор
тот же трейлинг под более высокие минимумы // автор
// выход Теда: всю стадию 2 не держим
IF Stage <> 2 две недели подряд THEN EXIT AT NEXT BAR OPEN // Finetiq: формализация «ротации в следующую базу»
Для трейдера у Вайнштейна есть и более ранний выход: пробой трендовой линии, проведённой через три точки. Две точки соединяет любая линия, значимой автор считает только линию из трёх касаний. В псевдокод мы её не переносим: поиск линий требует отдельного алгоритма.
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Таймфрейм классификатора | неделя | автор |
| Средние Теда | SMA 10, 20, 30, 40 недель | автор (Тед) |
| Средняя Вайнштейна | SMA 30 недель, около SMA 150 дней | автор |
| Минимум для покупок | цена выше всех средних, 10 > 20 > 30 | автор (Тед) |
| Окно наклона средней | 4 недели | Finetiq |
| Порог плоской средней | 0.25 недельного ATR(14) за 4 недели | Finetiq |
| Свинг-точка | 2 недели слева и справа | Finetiq |
| Пивот | максимум за 13 недель | Finetiq |
| Лимит над пивотом | 1% | автор |
| Объём недели пробоя | не меньше 2× средней за 4 недели | автор |
| Объём дня пробоя (Вайнштейн) | не меньше 2× средней за прошлую неделю | автор |
| Средняя объёма у Джека | 30 баров на любом таймфрейме | сообщество (Джек) |
| Начальный стоп | под свинг-минимумом, иначе 4-6% под пивотом | автор |
| Выход трейдера | закрытие ниже SMA 30 недель | автор |
| Игнорируемый откат | меньше 7% | автор |
| Трейлинг | под предыдущий более высокий минимум | автор |
| Покупка инвестора | половина на пробое, половина на откате | автор |
| Выход по смене стадии | 2 недели вне стадии 2 | Finetiq |
Что проверить
- Даёт ли фильтр что-то сверх простого тренда. Возьмите простую систему (покупка при закрытии выше 20-недельного максимума) и прогоните три версии: без фильтра, с условием
Close > MA30 AND MA30 растёт, с полным классификатором Теда. Если полный классификатор не лучше одной средней, лишние условия только уменьшают число сделок. - Порядок средних. Сравните полный порядок 10 > 20 > 30 > 40 с минимумом Теда (цена выше всех средних, 10 > 20 > 30). Второй включается раньше и должен ловить больше движения ценой большего числа ложных стадий.
- Окрестность параметров. Окно наклона 2, 4 и 8 недель, порог 0.1, 0.25 и 0.5 ATR, средние 26/35/45 вместо 30/40. Если доля недель в стадии 2 и результат сильно прыгают от соседних значений, порог подогнан.
- Объём на пробое. Разделите пробои на три группы: объём ниже 1.5×, от 1.5× до 2×, выше 2× средней. Проверьте утверждение Вайнштейна, что пробои без объёма хуже.
- Два выхода. Трейдерский (стоп 4-6% и закрытие ниже MA30) против инвесторского трейлинга под более высокие минимумы и против выхода Теда при смене стадии. Смотрите среднюю сделку, долю отданной прибыли и длительность.
- Недели против дней. SMA 30 недель против SMA 150 дней. Средние не совпадут из-за праздников и неполных недель. Проверьте, насколько расходятся даты смены стадии.
- Стоп-лимит на гэпах. Посчитайте долю пробоев, где неделя открылась выше пивота + 1% и ордер не исполнился. Сравните их дальнейший ход с исполненными.
Особенности платформ
TradingView (Pine Script)
- Стратегия на недельном графике считает сигнал на закрытии недели и исполняет на открытии следующей, как в правилах. Если исполнять на дневках, недельные значения берите без заглядывания вперёд:
request.security(syminfo.tickerid, "W", expr[1], lookahead = barmerge.lookahead_on). - Стоп-лимит:
strategy.entryс одновременно заданнымиstopиlimit. Ордер висит, пока не отменён, поэтому снимайте его, когда пивот устарел. - Разогрев длинный: 40 недель средней плюс окно наклона. Для теста на нескольких циклах нужны 15-20 лет недельной истории, её глубина зависит от тарифа.
- На непрерывных фьючерсах со склейкой вычитанием проценты искажаются. Наклон в долях ATR, как в правилах, от этого защищает, стоп 4-6% нет.
MultiCharts и TradeStation (EasyLanguage)
- Классификатор проще всего считать на недельном графике:
Average(Close, 30)иHighest(High, 13)[1]. Если торговать на дневках, неделя подключается вторым потоком (Close of Data2), и нужно убедиться, что берётся закрытая неделя. Buy next bar at Pivot stopживёт один бар. На недельном графике ордер отправляется каждую неделю, пока пивот актуален. Лимит 1% в бэктесте проще эмулировать проверкой: если неделя открылась выше пивота + 1%, сделку пропустить.AvgTrueRangeэто простое среднее TR. На пороге наклона это даст немного другие даты смены стадий, чем в Pine. Для совпадения считайте ATR по Уайлдеру сами.- Стоп ценой, а не деньгами:
Sell next bar at InitialStop stop.SetStopLossзадаётся в валюте и не учтёт правило про круглое число.
MetaTrader 5 (MQL5)
- Правило объёма требует настоящего объёма. У CFD на акции и индексы в MT5 только тиковый объём (
iTickVolume), и «2× средней» по нему это другое условие. Реальный объём (iRealVolume) есть только у биржевых инструментов. - Недельный бар брокера открывается по времени сервера. У брокеров с короткими воскресными барами недельные значения почти не страдают, но SMA 150 на дневках искажается. Для совпадения с источником считайте на W1.
- Значения недельных средних берите с закрытого бара (сдвиг 1), иначе на истории классификатор увидит незакрытую неделю.
- Глубина недельной истории у CFD часто меньше 10 лет. Для 40-недельной средней с наклоном первый год уйдёт на разогрев.
Где идея может сломаться
- В обоих видео нет ни одного теста. Статистика отсутствует, примеры выбраны задним числом, а у Chart Fanatics в эпизоде реклама партнёров.
- Пороги «плоской» средней, окно наклона и определение структуры цены наши. От них зависит, сколько недель попадёт в стадию 2, и результат может сильно меняться от их выбора.
- Длинные средние запаздывают. Классификатор по построению отдаёт начало и конец движения. На V-образных разворотах (Тед приводит ковидный обвал) стадия 2 включается поздно.
- Пробой из базы часто не удаётся. Тед показывает Moderna: после неудачного пробоя акция упала ещё на 86%. Без стопа фильтр режима не защищает.
- Недельный сигнал редкий: на одном символе несколько сделок в год. Для выборки нужны десятки инструментов, а верхний уровень метода (сначала рынок, потом группа, потом бумага) требует данных по индексу и секторам.
- Стоп 4-6% и откаты 7% заданы в процентах для акций. На рынках с другой волатильностью (крипта, облигации) те же проценты означают совсем другой риск.