Ідея коротко
Toby Crabel, засновник Crabel Capital, відомий працями про opening range breakout, каже, що його нова робота дедалі більше поєднує ціну й обсяг. Бар він читає як відношення розміру діапазону до обсягу, який на цьому діапазоні пройшов. Це стара ідея Річарда Вайкоффа: зусилля (обсяг) проти результату (руху ціни). За словами Крейбела, систематично її майже не використовували, бо творцям баз даних обсяг здавався неважливим.
Спостереження Крейбела: зараз, коли на ринках більше повернення до середнього, біля максимумів і мінімумів часто буває відносно високий обсяг при діапазонах, що звужуються. Багато важливих денних екстремумів, за його словами, приходить із такою структурою. Вайкофф назвав би це churning або laboring: велике зусилля без результату. Крейбел наголошує, що це лише попередження. Входити треба після тесту рівня й підтвердження, ставати на шляху руху без перевірки немає сенсу.
Порогів в інтерв'ю немає. Крейбел назвав спосіб нормування (середня за 10-20 днів на денних барах, той самий час доби на внутрішньоденних даних), форму сигналу й порядок дій. Пороги, визначення тесту й вихід наші.
Відмінність від prior-extreme-raid-reclaim: там рівень попереднього дня й повернення за нього, лише ціна. Тут рівень з'являється з підпису обсягу біля багатоденного екстремуму, а вхід чекає окремого ретесту через кілька днів.
Чому це може працювати
Логіка Вайкоффа в балансі сил. Якщо на максимумі пройшло багато контрактів, а ціна майже не зрушила, купівлі зустріли такий самий обсяг продажів. Великий продавець роздає позицію в попит, і наступна спроба вгору, найімовірніше, знову наткнеться на нього. На мінімумі дзеркально: великі продажі поглинаються, і ціна не йде нижче.
Крейбел пов'язує частоту таких екстремумів із загальним зсувом ринків до повернення до середнього. У тому самому інтерв'ю він каже, що великі учасники дедалі частіше стають на шляху руху біля одно- і дводенних екстремумів (це розібрано в prior-extreme-raid-reclaim). Перевірки цього зв'язку у відкритій частині інтерв'ю немає.
Обсяг сам Крейбел ставить нижче за ціну: ціна це реальність ринку, а обсяг буває оманливим. Тому в картці сигнал вимагає цінового підтвердження.
Правила
Нормований обсяг і діапазон, денні бари (автор)
// денні бари ліквідного ф'ючерса
Range = High - Low
RelVol = Volume / SMA(Volume, 20)[1] // автор: середня за 10 або 20 днів
RelRange = Range / SMA(Range, 20)[1] // автор: діапазон відносно тієї самої середньої
// Finetiq: довжина 20, середня без поточного бару
Внутрішньоденне нормування (автор)
// автор: в обсягу всередині дня є «усмішка», порівнювати з минулими днями в той самий час
Slot = час відкриття бару за часом біржі, наприклад 10:00-10:30 ET
SlotVol = середнє Volume того самого Slot за останні 20 днів // Finetiq: 20 днів
SlotRange = середнє Range того самого Slot за останні 20 днів
RelVolI = Volume / SlotVol
RelRangeI = Range / SlotRange
// далі ті самі правила, що на денних барах, з RelVolI і RelRangeI
Попередження: зусилля без результату (автор, пороги Finetiq)
AtHigh = High >= Highest(High, 20)[1] // Finetiq: екстремум за 20 барів
AtLow = Low <= Lowest(Low, 20)[1]
Effort = RelVol >= 1.5 // автор: відносно високий обсяг; Finetiq: 1.5
NoResult = RelRange <= 0.8 // автор: діапазон звужується; Finetiq: 0.8
WarnTop = AtHigh AND Effort AND NoResult
WarnBottom = AtLow AND Effort AND NoResult
// варіант для перевірки: підпис із 2-3 барів біля екстремуму,
// середній RelVol >= 1.3 і RelRange кожного бару менший за попередній
IF WarnTop THEN Level = High, WarnBar = поточний бар
IF WarnBottom THEN Level = Low, WarnBar = поточний бар
Тест і підтвердження (Finetiq)
// автор: дочекатися тесту, отримати підтвердження, лише потім входити
// усе визначення тесту нижче наше
// шорт після WarnTop
TestWindow = від 2 до 10 барів після WarnBar // Finetiq
Test = High >= Level - 0.25 * ATR(20) // ціна повернулася до рівня
AND High <= Level + 0.5 * ATR(20) // і не пішла далеко вище
AND Close < Level // закрилася під рівнем
Confirm = Test AND Close < (High + Low) / 2 // закриття в нижній половині бару
IF Confirm усередині TestWindow
SELL SHORT STOP at Low бару тесту - 1 тік // підтвердження ціною, ордер живе 1 бар
StopLoss = MAX(Level, High бару тесту) + 0.25 * ATR(20)
IF Close > Level + 0.5 * ATR(20) до тесту THEN CANCEL // рівень пробито, сигнал знято
// вихід: коротке утримання, як у базових продуктів фірми Крейбела (до двох днів)
EXIT на закритті другого дня після входу
// варіант: ціль SMA(Close, 20) або протилежний край діапазону WarnBar
// лонг після WarnBottom дзеркально
Підключення до карток бази (Finetiq)
// приклад 1: prior-extreme-raid-reclaim, варіант C (фейд дводенного екстремуму)
IF DayHigh > H2 AND Close60 < H2 // як у картці
AND WarnTop хоча б в один з останніх 5 днів // підпис обсягу біля цього екстремуму
SELL SHORT AT NEXT BAR OPEN
// порівняти з версією без підпису: чи додає обсяг щось до цінового повернення
// приклад 2: prev-high-breakout-adx (купівля пробою вчорашнього максимуму)
IF WarnTop на вчорашньому барі
CANCEL BUY STOP // не купувати пробій бару із зусиллям без результату
Параметри
| Параметр | Значення | Звідки |
|---|---|---|
| Середня для нормування на денних барах | 10 або 20 днів | автор |
| Обрана довжина | 20 днів | Finetiq |
| Нормування всередині дня | той самий часовий слот минулих днів | автор |
| Днів у середньому за слотом | 20 | Finetiq |
| Екстремум | 20-денний максимум або мінімум | Finetiq |
| Високий обсяг | RelVol від 1.5 | Finetiq |
| Вузький діапазон | RelRange до 0.8 | Finetiq |
| Вікно тесту | 2-10 барів | Finetiq |
| Зона тесту | від 0.25 ATR нижче до 0.5 ATR вище рівня | Finetiq |
| Підтвердження | закриття в нижній половині і пробій мінімуму бару тесту | Finetiq |
| Стоп | за рівнем або максимумом тесту плюс 0.25 ATR | Finetiq |
| Вихід | закриття другого дня | Finetiq (за утриманням до двох днів у фірмі автора) |
Що перевірити
- Чи позначає підпис екстремуми. Розмітьте всі 20-денні максимуми на ES, CL, GC і ZN. Порівняйте частку тих, що залишилися максимумом наступні 10 днів, серед WarnTop і серед решти. Це пряма перевірка спостереження Крейбела.
- Околиця порогів. RelVol 1.2, 1.5 і 2.0; RelRange 0.6, 0.8 і 1.0; середня 10 і 20 днів. Сигнал рідкісний, тому дивіться й на кількість подій.
- Чи потрібен тест. Шорт наступного дня після WarnTop проти входу після тесту. Крейбел наполягає на тесті, перевірте, чи окуповує він пропущені угоди.
- Обсяг проти самого діапазону. Той самий сигнал лише з NoResult, без умови обсягу. Якщо результат той самий, обсяг нічого не додає, а дані спрощуються.
- Роки. Розбийте результат за п'ятирічками. Крейбел говорить про нинішній ринок із більшим поверненням до середнього. Якщо на старих даних сигнал слабший, це збігатиметься з його словами.
- Внутрішньоденна версія. Нормування за часовим слотом проти нормування за середньою сусідніх барів. На барах біля відкриття й закриття різниця має бути помітною.
- Витрати. Утримання два дні й стоп у частках ATR на ф'ючерсах. Додайте прослизання на стоп-вході.
Особливості платформ
TradingView (Pine Script)
- На денних барах ф'ючерса обсяг є, RelVol і RelRange рахуються через
ta.smaу пару рядків. - Для внутрішньоденного нормування потрібні середні за часовими слотами, їх зручно зберігати в
arrayза номером слоту. Слот задавайте за часом біржі черезtime(timeframe.period, "1000-1030", "America/New_York"), інакше він з'їде при переході на літній час. - Глибина внутрішньоденної історії обмежена тарифом. 20 днів на слот плюс тест на кількох роках можуть не вміститися.
- На безперервному ф'ючерсі обсяг у дні роловера ділиться між контрактами. RelVol біля експірації провалюється або стрибає, перевірте такі дати окремо.
MultiCharts і TradeStation (EasyLanguage)
- У ф'ючерсів денний бар TradeStation закривається за settlement, а 1440-хвилинний за останньою угодою. Settlement змінює лише закриття. High, Low і діапазон у двох видів бару різняться, лише якщо в них різні межі сесії, наприклад денний бар за регулярною сесією, а 1440-хвилинний за повною. Звірте шаблони сесій, інакше RelRange і WarnTop можуть випасти на різні дні. При однакових межах розходяться лише розрахунки від закриття.
- На внутрішньоденних барах TradeStation повний обсяг історично лежить у
Ticks, аVolumeможе містити лише обсяг на підвищенні ціни. У MultiCharts поле задає налаштування символу (Build Volume On). Sell Short next bar at X stopживе один бар, що збігається з правилом підтвердження. Рівень і вікно тесту зберігайте в змінних.AvgTrueRangeце просте середнє TR. Зона тесту в частках ATR буде трохи іншою, ніж у Pine.
MetaTrader 5 (MQL5)
- У CFD і форексу лише тиковий обсяг (
iTickVolume): кількість змін котирування в брокера, а не контракти. Великий обсяг без результату за ним не перевіряється. Реальний обсяг (iRealVolume) є лише в біржових ф'ючерсів у небагатьох брокерів. - Без обсягу залишається лише цінова частина, вузький діапазон біля екстремуму. Це інша ідея, її треба тестувати окремо (перевірка 4).
- Денний бар CFD і внутрішньоденні слоти будуються за серверним часом брокера. Слот 10:00 ET переводьте в серверний час з урахуванням літнього часу.
- Рівень і стоп задавайте в ціні, а не в
_Point.
Де ідея може зламатися
- Крейбел описав спостереження, а не систему. Пороги, тест, підтвердження й вихід наші, і слабкий результат може бути слабкістю формалізації.
- Цифр в інтерв'ю немає. Розбір графіків з обсягом пішов у платний бонус-випуск для учасників спільноти ведучого, у відкритій частині лише слова.
- Обсяг безперервного ф'ючерса спотворюється на роловерах, і склейка контрактів у постачальників даних влаштована по-різному.
- Сигнал рідкісний: 20-денний екстремум із високим обсягом і вузьким діапазоном буває кілька разів на рік на ринку. Для вибірки потрібні десятки ринків.
- Крейбел сам попереджає, що обсяг буває оманливим, а ціна первинна.
- У випуску реклама курсу ведучого з крипто-трейдингу.