Ідея коротко
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% дано для одного відібраного прикладу, приклади підібрано заднім числом.
- Фільтр новин на барах не формалізується. На акціях падіння на звітах, судових справах і шахрайстві виглядають як капітуляція, але часто тривають. Це головне джерело збитків механічної версії.
- Після водоспаду стоп під мінімумом руху буває далеко від входу. Позиція виходить маленькою, а трейлінг за мінімумом попереднього бару закриває її на першому відкаті.
- У паніках на акціях бувають зупинки торгів і гепи через стоп. Бектест на барах ці втрати занижує.
- Тест на сьогоднішньому списку акцій не бачить паперів, які після обвалу пішли в нуль або були зняті з торгів на біржі. Результат вийде кращим за реальний.