Идея коротко
Lance Breunigstein известен сделками на отскок после капитуляции. Рынок шёл спокойно, потом падение ускоряется в водопад, объём взрывается, бары становятся в разы больше обычных. Покупать на пути вниз он не советует, это серия мелких убытков. Он ждёт разворота и покупает на подъёме («правая сторона V»), и тогда появляется понятный стоп под минимумом движения.
Исполнение у него механическое. Во время паники каждый бар держится ниже максимума предыдущего. Первый бар, который пробил максимум прошлого, и есть смена тренда: туда ставится вход. Стоп под минимумом всего движения. Дальше позиция ведётся по минимумам прошлых баров. На дневках вход можно поставить заранее стоп-ордером над вчерашним максимумом.
Капитуляцию Lance описывает набором факторов без чисел и отказывается сводить их к «если X, то Y». Пороги на барах ниже наши. Отличие от соседних карточек: Pavel Kycek (#032) входит в отклонение от MA5 без подтверждения, Rob Hanna (#033) покупает закрытие на 5-дневном минимуме, вынос вчерашнего экстремума (#031) опирается на уровень. Здесь вход только после разворота и только после аномального по скорости и объёму падения.
Почему это может работать
Lance думает через ожидаемую ценность: вероятность выигрыша на размер выигрыша минус вероятность проигрыша на размер проигрыша. Базовое допущение: цена правильная, пока её что-то не вывело из равновесия. Факторы, которые сдвигают шансы в пользу отскока, он перечисляет сам: размер хода, скорость падения, отсутствие новостей, серия дней вниз, вынужденные продажи (маржин-коллы, ликвидации), отчаяние в настроениях, «скучность» инструмента. Если стабильная бумага без новостей вдруг проваливается на несколько обычных диапазонов, это похоже на вынужденные сделки, а не на новую информацию.
Глубина паники работает двояко. Покупатели охотнее заходят со скидкой в 10%, чем в 0.2%, поэтому растёт шанс отскока, а с ним и размер отскока. Риск при этом ограничен стопом под минимумом. Покупки он предпочитает шортам: цена не опустится ниже нуля. Всё это опыт автора, проверенной статистики в интервью нет.
Правила
Капитуляция (факторы автора, пороги Finetiq)
// один и тот же код для дневных и внутридневных баров
ATRbase = ATR(20)[10] // Finetiq: обычный диапазон до обвала
VolBase = Average(Volume, 20)[10] // Finetiq: обычный объём до обвала
SwingHigh = Highest(High, 10) // Finetiq: откуда началось падение
MoveLow = Lowest(Low, 10)
DropATR = (SwingHigh - MoveLow) / ATRbase // автор: сколько обычных диапазонов прошли
LateDrop = (Highest(High, 3) - MoveLow) / (SwingHigh - MoveLow)
// автор: падение ускоряется в водопад
// Finetiq: доля хода за последние 3 бара
WideBar = Highest(High - Low, 3) >= 2 * ATRbase // автор: бары в разы больше обычных
VolSpike = Highest(Volume, 3) >= 3 * VolBase // автор: огромный всплеск объёма
LowerHighs = High <= High[1] AND High[1] <= High[2] // автор: паника держит максимумы прошлых баров
Capitulation = DropATR >= 4 AND LateDrop >= 0.5
AND WideBar AND VolSpike AND LowerHighs // пороги Finetiq
Вход: правая сторона V (автор)
IF Capitulation THEN Armed = true, ArmedBars = 0
IF Armed AND MarketPosition = 0
BUY STOP at High + 1 tick // автор: пробой максимума прошлого бара
// на следующем баре уровень пересчитывается
ArmedBars = ArmedBars + 1
IF ArmedBars > 10 THEN Armed = false // Finetiq: разворота не было, сетап снят
// селективность автора: ровный спуск без ускорения и цена, которая «принимается»
// внизу (бары вверх-вниз), не торгуются. Фильтр LowerHighs отсекает часть таких случаев
Стоп и трейлинг (автор)
InitialStop = минимум движения до входа - 1 tick // автор: стоп под минимумом всего движения
// после каждого закрытого бара в позиции
StopLoss = max(StopLoss, Low - 1 tick) // автор: выход при пробое минимума прошлого бара
SELL STOP at StopLoss
// автор допускает исключения для сделок высшего качества, в механической версии их нет
Вариант B. Вход внутри бара в экстремальном обвале (автор, пороги Finetiq)
// автор: если падение вертикальное, ждать пробоя максимума прошлого бара слишком дорого
IF DropATR >= 8 AND (High - Low) >= 4 * ATRbase // Finetiq
BUY STOP at Low + 0.33 * (High - Low) на младшем таймфрейме внутри текущего бара
// Finetiq: разворот на треть диапазона бара от его минимума
InitialStop = Low - 1 tick
Оценка сетапа и размер позиции (автор, числа шкалы Finetiq)
// автор: каждый фактор от 0 до 10, сумма; 40 = A++, 26 = B, 20 = C, 15 = нет сделки
// автор называет только эти точки: суммы 16-19 и 27-39 у него не определены
// баллы факторов называются *Score, чтобы не перезаписать встроенный ряд Volume и размер позиции
SpeedScore = min(10, LateDrop * 12) // Finetiq: скорость падения
SizeScore = min(10, DropATR * 1.25) // Finetiq: размер хода
VolScore = min(10, Highest(Volume, 3) / VolBase * 2) // Finetiq: всплеск объёма
BoringScore = 10 * (1 - PercentRank(ATRbase / Close, 250)) // Finetiq: чем тише был рынок, тем выше
Score = SpeedScore + SizeScore + VolScore + BoringScore
Risk = 1.0% если Score >= 35; 0.75% если 26-34; 0.5% если 20-25; иначе нет сделки // Finetiq
// Finetiq: 16-19 относим к «нет сделки», границу 35 для верхней ступени задали мы
Shares = Equity * Risk / (EntryPrice - InitialStop) // размер позиции
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Направление | только покупки | автор |
| Таймфрейм | любой; стартовые D1 и M5 | автор (выбор: Finetiq) |
| Обычный диапазон и объём | ATR(20) и средний объём 20 баров, 10 баров назад | Finetiq |
| Размер падения | не меньше 4 × ATRbase за 10 баров | Finetiq (фактор: автор) |
| Ускорение | половина хода за последние 3 бара | Finetiq (фактор: автор) |
| Широкий бар | не меньше 2 × ATRbase | Finetiq (фактор: автор) |
| Всплеск объёма | не меньше 3 × обычного | Finetiq (фактор: автор) |
| Паника держит максимумы | два бара подряд без пробоя максимума | Finetiq (принцип: автор) |
| Вход | стоп-ордер над максимумом прошлого бара | автор |
| Срок ожидания разворота | 10 баров | Finetiq |
| Стоп | под минимумом движения | автор |
| Трейлинг | под минимумом прошлого бара | автор |
| Вариант B: вход внутри бара | ход 8 × ATR, бар 4 × ATR, треть диапазона | Finetiq (идея: автор) |
| Шкала уровней | 40, 26, 20, 15 | автор |
| Факторы шкалы и риск по уровням | 4 фактора, 1% / 0.75% / 0.5% | Finetiq |
Что проверить
- Окрестность порогов капитуляции. Размер падения 3, 4 и 6 ATR, объём 2, 3 и 5 средних, доля хода за 3 бара 0.3, 0.5 и 0.7. Если прибыль живёт в одной клетке сетки, пороги подогнаны.
- Подтверждение против входа в падение. Сравните вход на пробое максимума прошлого бара с покупкой на открытии после бара капитуляции без ожидания. Kycek (#032) утверждает обратное Lance: в возврате к среднему подтверждение ухудшает вход. Это прямой спор двух авторов.
- Нужен ли объём. Прогон без условия всплеска объёма. Если результат не меняется, условие можно убрать, и идея станет переносимой на форекс и CFD.
- Выход. Трейлинг по минимуму прошлого бара против минимума двух баров, против цели на 50% отката движения (базовый сценарий автора в его расчёте награды) и против выхода через 5 баров.
- Шкала. Разбейте сделки по сумме баллов. Ожидание должно расти от ступени C (20-25) к B (26-34) и к верхней ступени (35 и выше; у автора A++ это 40). Если зависимости нет, шкала только режет число сделок.
- Таймфреймы. Дневки акций, 5-минутные бары фьючерса на индекс и дневки биткоина отдельно. Lance считает концепцию общей для всех рынков и таймфреймов.
- Новости. На акциях отметьте даты отчётов и крупных новостей. По автору капитуляцию на новостях торговать нельзя: равновесие там действительно сдвинулось.
Особенности платформ
TradingView (Pine Script)
ta.atrсглаживает по Уайлдеру,AvgTrueRangeиiATRпростые средние. Пороги в ATR дадут на платформах разное число сигналов, для сверки считайте ATR одинаково.- Стоп-ордер
strategy.entry("L", strategy.long, stop = high + syminfo.mintick)висит до отмены. Повторный вызов с тем же id на следующем баре переносит уровень на новый максимум, а при снятии сетапа нуженstrategy.cancel("L"). - Трейлинг: на каждом баре
strategy.exit("X", "L", stop = trailStop), гдеtrailStopобновляется черезmath.maxс текущимlow. - Если следующий бар открылся гэпом выше уровня, стоп-ордер исполнится по открытию. После обвала гэпы вверх случаются часто, фактический риск будет больше расчётного.
MultiCharts и TradeStation (EasyLanguage)
- Правило ложится на язык естественно:
Buy next bar at High + MinMove / PriceScale stopживёт один бар и на следующем баре пересчитывается от нового максимума. - Трейлинг ценой:
Sell next bar at MaxList(StopLoss, Low - MinMove / PriceScale) stop.SetStopLossзадаётся в деньгах и не повторит логику минимума прошлого бара. - На внутридневных барах TradeStation полный объём исторически лежит в
Ticks, аVolumeможет содержать только объём на повышении. Всплеск объёма, посчитанный не по тому полю, окажется другим. - Вариант B требует Intrabar Order Generation. С ним бэктест и живая торговля ведут себя по-разному, проверяйте вариант B на минутных данных.
MetaTrader 5 (MQL5)
- У CFD и форекса только тиковый объём (
iTickVolume). В панике тиков становится больше вместе с реальным объёмом, но порог 3 средних на тиковом объёме нужно подбирать заново. BuyStopнельзя поставить ниже текущего Ask. Если после закрытия бара цена уже выше его максимума, отложенный ордер отклонят, и нужен вход по рынку.- Графики строятся по Bid, а покупка срабатывает по Ask. В обвал спред у CFD расширяется, вход происходит раньше уровня и дороже, чем в бэктесте на Bid-барах.
- Сигнал считайте на закрытом баре (индекс 1) и ловите появление нового бара, иначе уровень входа будет пересчитываться на каждом тике.
Где идея может сломаться
- Lance взвешивает десятки факторов в реальном времени. Четыре порога на барах грубо приближают его глаз, механическая версия может работать заметно хуже.
- Статистики нет. Оценка 70-80% дана для одного отобранного примера, примеры подобраны задним числом.
- Фильтр новостей на барах не формализуется. На акциях падения на отчётах, судебных делах и мошенничестве выглядят как капитуляция, но часто продолжаются. Это главный источник убытков механической версии.
- После водопада стоп под минимумом движения бывает далеко от входа. Позиция получается маленькой, а трейлинг по минимуму прошлого бара закрывает её на первом откате.
- В паниках на акциях бывают остановки торгов и гэпы через стоп. Бэктест на барах эти потери занижает.
- Тест на сегодняшнем списке акций не видит бумаг, которые после обвала ушли в ноль или были исключены с биржи. Результат получится лучше реального.