Идея коротко
Jack Corsellis торгует свинг на акциях-лидерах и входит по трём свечам. Одна из них хвост спроса (shakeout demand tail). Бумага в аптренде откатывает к ключевой средней. В какой-то день цена уходит вниз, прокалывает недавние минимумы или саму среднюю, выбивает стопы и затем выкупается. Свеча закрывается у максимума с длинной нижней тенью: молот, стрекоза доджи или такури. Объём на таком откате ниже среднего. Вход стоп-ордером через максимум свечи, стоп на цент ниже минимума.
В варианте B, из другого видео, Джек разбирает подход Charles Harris, ученика William O'Neil. Харрис покупает откаты в лидерах только в сильном рынке и называет сигнал разворотом вверх (upside reversal). Это тот же хвост спроса или гэп вниз с разворотом. К свече он добавляет фильтр рынка, глубину отката и правило выхода по 50-дневной средней.
Гэп вниз с разворотом у средней разобран в карточке #037: там обязательны гэп и открытие на минимуме, здесь сигнал даёт форма свечи. Прокол минимума как уровня есть в карточке #031 (вариант 2B), без средней и тренда.
Почему это может работать
Объяснение Джека идёт от Вайкоффа. Крупные участники, которые накапливают бумагу, не дают ей падать ниже определённых уровней. Прокол минимумов выбивает слабых держателей, а длинная нижняя тень показывает, что их продажи сразу забрали. Малый объём на откате значит, что предложения немного. Чем ближе закрытие к максимуму, тем сильнее спрос.
Харрис добавляет рыночный контекст. В бычьем рынке откаты держатся у средних и прежних уровней поддержки, в медвежьем большинство бумаг поддержку не находит. Покупка отката даёт более низкую цену входа, чем пробой, а пробои, по его наблюдению, всё чаще выбивают покупателей.
Статистика Bulkowski описывает свечу вообще, без средней, тренда и этого стопа. Джек сам делает вывод, что до 100% далеко и поэтому стоп обязателен.
Правила
Контекст (автор, пороги Finetiq)
// дневные бары акции
EMA10 = EMA(Close, 10); EMA21 = EMA(Close, 21)
SMA50 = SMA(Close, 50); SMA200 = SMA(Close, 200)
ADRpct = 100 * (Average(High / Low, 20) - 1) // автор: 20-дневный ADR%; формула Finetiq
Trend = Close > SMA200 // автор: аптренд выше 200 SMA
AND Close > SMA50 * 0.97 // автор: желательно выше 50 SMA; допуск Finetiq
AND SMA50 > SMA50[20] // Finetiq
Хвост спроса у средней (автор, пороги Finetiq)
Range = High - Low
LowerTail = min(Open, Close) - Low
Tail = LowerTail >= 0.5 * Range // Finetiq: молот, стрекоза, такури
StrongClose = Close - Low >= 0.7 * Range // автор: чем ближе к максимуму, тем лучше; 70% Finetiq
Tol = 0.25 * ADRpct / 100 * Close // Finetiq: «рядом со средней»
Touch(MA) = Low <= MA + Tol AND Close >= MA - Tol // автор: на средней, рядом или чуть ниже
KeyMA = Touch(EMA21) OR Touch(SMA50)
OR (Touch(EMA10) AND ADRpct >= 4) // автор: 10 EMA для быстрых бумаг с ADR от 4-6%
Undercut = Low < Lowest(Low, 5)[1] // автор: прокол недавних минимумов; окно Finetiq
DryVolume = Volume < Average(Volume, 30)[1] // автор: ниже 30-дневного среднего
Setup = Trend AND Tail AND StrongClose AND KeyMA AND (Undercut OR Low < EMA21) AND DryVolume
Вход и стоп (автор)
RiskPct = 100 * (High - Low) / High
IF Setup AND RiskPct <= 1.5 * ADRpct AND RiskPct <= 5
// автор: идеально риск меньше ADR%, до 1.5 × ADR% при стопе до 4-5%
// автор: больше 5% только для исключительного сетапа; Finetiq: запрет
BUY STOP LIMIT: stop = High + 0.01, limit = High + 0.01 + 0.25 * ADRpct / 100 * Close
// автор: стоп-лимит через максимум; ширина лимита и срок 1 день Finetiq
StopLoss = Low - 0.01 // автор: цент ниже минимума свечи
SELL STOP at StopLoss
Сопровождение (частично автор)
R = EntryPrice - StopLoss
// автор ждёт, что сделку можно сделать бесплатной за 3-5 сессий при цели 1-3R
IF High >= EntryPrice + 2 * R THEN SELL 1/3 AT LIMIT, StopLoss = EntryPrice // Finetiq
IF BarsSinceEntry >= 5 AND High since entry < EntryPrice + 1 * R
EXIT AT NEXT BAR OPEN // Finetiq
// автор: трейлинг по закрытию ниже средней, выбранной по истории бумаги
TrailMA = EMA10 IF ADRpct >= 4 ELSE EMA21 // Finetiq
// порог 4 тот же, что у опоры EMA 10 выше: автор называет EMA 10 рабочей для бумаг с ADR% от 4-6
IF Close < TrailMA THEN EXIT AT NEXT BAR OPEN
Вариант B. Разворот вверх Чарльза Харриса
// рынок
Market = Close of Index > EMA(Close of Index, 21) // автор: ничего хорошего ниже 21-дневной средней
// бумага: выше максимумы и минимумы, растущая 50-дневная
Uptrend = SMA50 > SMA50[10] // автор
AND Highest(High, 60) > Highest(High, 60)[60] // Finetiq: максимумы выше
AND Lowest(Low, 60)[20] > Lowest(Low, 60)[80] // Finetiq: минимумы выше
RecentHigh = Highest(High, 40)
Depth = (RecentHigh - Low) / RecentHigh
DeepEnough = Depth >= 10% // автор: больше 10%, обычно 12-20%, в среднем 16-18%
Support = Touch(EMA21) OR Touch(SMA50) OR Touch(SMA200) // автор; прежний максимум базы тоже, Finetiq его не кодирует
UR = (Tail AND StrongClose) // хвост спроса
OR (Open < Close[1] AND Open - Low <= 0.1 * Range AND StrongClose) // гэп вниз с разворотом, как в #037
// автор: гэп считается от вчерашнего закрытия, открытие у минимума дня; допуск 10% диапазона Finetiq
HeavyVolume = Volume > Average(Volume, 30)[1] // автор: Харрис предпочитает большой объём; Finetiq: обязательное условие
IF Market AND Uptrend AND DeepEnough AND Support AND UR AND HeavyVolume
BUY STOP at High + 0.01 // автор: покупка через максимум разворота
StopLoss = Low - 0.01 // автор: минимум разворота пробит, действие ненормальное
// добор: каждый следующий разворот вверх (автор), не больше 2 доборов и только в прибыли (Finetiq)
// выход: решительный слом 50-дневной на растущем объёме (автор)
Break50 = Close < SMA50 - 0.5 * ADRpct / 100 * Close AND Volume > Average(Volume, 30)[1] // Finetiq
IF Break50 AND прибыль позиции < 3R THEN EXIT AT NEXT BAR OPEN
IF Break50 AND прибыль >= 3R AND день не последний торговый день недели
SELL 1/2 AT NEXT BAR OPEN // автор: при большом запасе продать часть
остаток: EXIT, если неделя закрылась ниже SMA50 // автор: ждать закрытия недели
IF Break50 AND прибыль >= 3R AND день последний торговый день недели
EXIT AT NEXT BAR OPEN // Finetiq: закрытие этого дня и есть закрытие недели ниже SMA50
Отбор бумаг (автор, вне сигнала)
Оба автора берут только лидеров: линия относительной силы на 52-недельных максимумах, поддержка у средних в прошлом, позитивная реакция на отчёты. Харрис ещё требует фундаментальной истории по CANSLIM. Карточка описывает сигнал на одном символе, скан лидеров делается отдельно.
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Таймфрейм | дневные бары | автор |
| Тренд | выше SMA 200, желательно выше SMA 50 | автор |
| Рост SMA 50 | за 20 баров | Finetiq |
| Ключевые средние | EMA 10, EMA 21, SMA 50 | автор |
| EMA 10 | только при ADR% от 4 | автор (порог 4: Finetiq внутри диапазона автора 4-6) |
| Нижняя тень | не меньше 50% диапазона | Finetiq |
| Закрытие | в верхних 30% диапазона | Finetiq (принцип: автор) |
| Допуск касания средней | 0.25 × ADR% | Finetiq |
| Объём | ниже 30-дневного среднего | автор |
| Максимальный риск | до 1.5 × ADR% и не больше 5% | автор (до 1.5 × ADR%), Finetiq (запрет выше 5%; у автора больше 5% только для исключительного сетапа) |
| Вход | стоп-лимит через максимум, 1 день | автор (срок и лимит: Finetiq) |
| Стоп | на цент ниже минимума | автор |
| Частичный выход | 1/3 на +2R, стоп в безубыток | Finetiq (цель 1-3R за 3-5 сессий: автор) |
| Выход по времени | нет +1R за 5 сессий | Finetiq |
| Трейлинг | закрытие ниже EMA 10 при ADR% от 4, иначе EMA 21 | Finetiq (закрытие ниже средней: автор; порог как у опоры EMA 10) |
| B: фильтр рынка | индекс выше 21-дневной EMA | автор |
| B: глубина отката | от 10% от максимума за 40 баров | автор (окно: Finetiq) |
| B: объём разворота | выше 30-дневного среднего | автор (предпочтение Харриса), обязательность Finetiq |
| B: выход | решительный слом SMA 50 на растущем объёме | автор (порог 0.5 ADR: Finetiq) |
| B: запас для ожидания недели | прибыль от 3R | Finetiq |
Что проверить
- Объём разворота. Джек хочет малый объём, Харрис большой. Прогоните одни и те же свечи с
DryVolume, сHeavyVolumeи без фильтра объёма. Это прямое расхождение двух источников. - Какая средняя. EMA 10, EMA 21 и SMA 50 по отдельности, а для EMA 10 бумаги с ADR% ниже 4 и выше 4. Если средняя не добавляет ничего сверх свечи и тренда, место условно.
- Форма свечи. Тень 40, 50, 60% диапазона и закрытие в верхних 20, 30, 40%. Отдельно молот, стрекоза и такури. Сравните порядок результатов с порядком по Bulkowski: 66% у такури, 60% у молота, 50% у стрекозы.
- Глубина отката. Без фильтра, от 10%, в диапазоне 12-20%. Харрис называет 16-18% средней глубиной отката в своём исследовании, это не порог прибыльности.
- Фильтр рынка. Индекс выше 21-дневной EMA против отсутствия фильтра, отдельно 2008, 2018 и 2022 годы. По Харрису без фильтра откаты в медвежьем рынке ужасны.
- Выход. Трейлинг по EMA 10 и EMA 21 против слома SMA 50 с правилом недели и против выхода через 10 дней. У Джека выбор средней делается по истории графика, механический выбор по ADR% это наше упрощение.
- Стоп-лимит против стопа. Сколько входов пропустил лимит из-за гэпа вверх и как изменилось ожидание.
Особенности платформ
TradingView (Pine Script)
- Стоп-лимит:
strategy.entry("L", strategy.long, stop = h, limit = h + off). Ордер висит до отмены, поэтому через день нуженstrategy.cancel("L"). - Индекс для варианта B:
request.security("SP:SPX", "D", ta.ema(close, 21)). На дневном графике тот же таймфрейм, и значение берётся за тот же закрытый день без заглядывания вперёд. - Правило недели: пятница не всегда последний торговый день, праздники сдвигают закрытие недели. Проверяйте смену недели на следующем баре, а не день недели.
- Скан лидеров стратегия не делает: она торгует только символ графика. Лидеров отбирают скринером вне стратегии, и тест на сегодняшнем списке содержит ошибку выжившего.
MultiCharts и TradeStation (EasyLanguage)
- Дневной бар зависит от шаблона сессии символа. Если сессия включает премаркет, минимум дня и хвост свечи будут другими, чем на биржевых данных. Используйте регулярную сессию.
- Индекс подключается вторым потоком:
Close of Data2. Проверьте, что календари торговых дней совпадают, иначе EMA 21 индекса сдвинется относительно бумаги. - Стоп-лимитные заявки в языке есть, но запись у TradeStation и MultiCharts различается. Проще тестировать
Buy next bar at High + 0.01 stop(живёт ровно один бар) и отдельно считать входы, которые лимит бы пропустил. - Стоп ставьте ценой на каждом баре:
Sell next bar at StopLoss stop.SetStopLossзадаётся в деньгах, уровень под минимумом свечи ценой проще сверить с правилами.
MetaTrader 5 (MQL5)
- У CFD на акции только тиковый объём. Фильтр ниже или выше 30-дневного среднего на нём приблизителен, а расхождение Джека и Харриса проверить нельзя. Для объёма нужны биржевые акции с
iRealVolume. - Тип заявки Buy Stop Limit (
ORDER_TYPE_BUY_STOP_LIMIT) в MT5 есть, но не каждый брокер его принимает для акций. Экспирацию ставьте на следующий день. - Индекс для фильтра рынка у брокера обычно CFD: его дневной бар строится по времени сервера и закрывается не в 16:00 ET. EMA 21 такого ряда отличается от EMA кэш-индекса.
- Графики строятся по Bid, покупка срабатывает по Ask. Вход происходит раньше на спред, а стоп на цент ниже минимума Bid-бара для акций с широким спредом слишком тугой.
Где идея может сломаться
- Бэктеста сетапа нет ни у одного автора. Цифры Bulkowski относятся к свечам вообще, цифры Харриса к его дискреционной торговле с экраном весь день.
- Статистика Харриса взята из 1999 года на пике пузыря, а 2020 год держится на одной Tesla. Повторяемость таких лет на других периодах не показана.
- Выбор средней для трейлинга Джек делает, глядя на прошлые тренды конкретной бумаги. Это разумно для ручной торговли, но в тесте легко превращается в подгонку задним числом.
- Источники расходятся по объёму: Харрис хочет большой объём на развороте, Джек малый. Механическая версия с одним фильтром представляет только одного из них.
- Фундаментальный отбор Харриса и оценка лидерства у Джека в правила не входят. Без них сигнал ловит все бумаги с похожей свечой, включая слабые.
- Длинный хвост даёт широкий стоп. Фильтр 1.5 ADR% отсеивает самые сильные по форме свечи, и на спокойных бумагах сетапов мало.