Идея коротко
Классический пробой бинарен. Пока цена внутри канала, позиции нет. Коснулась края, открывается весь объём. Вернулась, стоп закрывает позицию целиком. Rob Carver, бывший руководитель направления в Man AHL, торгует пробой иначе. Он переводит положение цены в диапазоне в число от −20 до +20 и держит позицию, пропорциональную этому числу.
Цена в середине диапазона даёт 0, позиции нет. На полпути от середины к максимуму прогноз +10, это средняя позиция. У самого максимума +20, позиция вдвое больше средней, дальше она не растёт. При откате прогноз снижается, и позиция сокращается постепенно, а ниже середины переходит в шорт. Стоп-лосса нет, его роль играет сам прогноз.
Правило входит в текущий набор автора: в выпуске подкаста Odds on Open (видео опубликовано постом в X) Carver описывает его так же: позиция растёт по мере приближения цены к краю диапазона.
Почему это может работать
Пробой ставит на то, что рынок сдвинулся и продолжит движение. Carver относит его к той же группе, что и моментум, и оценивает корреляцию с моментум-правилами около 80%. Его претензия к классическому варианту в том, что до края диапазона система вообще не имеет мнения, а на краю мнение сразу максимальное. Непрерывная шкала даёт позицию, пропорциональную силе сигнала, и вход с выходом становятся постепенными.
Преимущества, которые называет автор: более гладкий профиль риска и в итоге более высокая доходность, а у крупного счёта ещё и меньше издержек. Фонду не приходится разом покупать сотни контрактов и так же разом продавать их на стопе. Цифр по этому правилу он не приводит. Свою прибыль в целом Carver описывает как премию за риск, доступную всем, а не как найденную им неэффективность.
У маленького счёта есть оговорка, о которой автор говорит сам. Когда средняя позиция это пара контрактов, мелкие изменения прогноза не меняют число контрактов, и непрерывная торговля частично превращается в бинарную.
Правила
Прогноз по положению в диапазоне
// дневные бары, расчёт один раз в день после закрытия
N = 80 // Finetiq: длину окна автор не назвал
Hi = Highest(High, N) // Finetiq: с текущим баром, чтобы Close лежал внутри диапазона
Lo = Lowest(Low, N)
P = (Close - Lo) / (Hi - Lo) // 0 у минимума, 0.5 в середине, 1 у максимума
RawF = 40 * (P - 0.5)
// автор: середина 0, полпути к максимуму +10, максимум +20.
// Finetiq: между этими точками берём прямую линию
F = max(-20, min(+20, RawF)) // автор: кап ±20 (при таком расчёте выполняется сам)
// Finetiq, по желанию: сгладить прогноз, чтобы позиция не дёргалась каждый день
// F = EMA(F, N / 4) // в интервью сглаживания нет
Позиция из прогноза
// автор: +10 это средняя позиция, +20 двойная, позиция пропорциональна прогнозу
AvgPos = Equity * 0.5% / (ATR(25) * PointValue) // Finetiq: средняя позиция через риск
Target = round(F / 10 * AvgPos) // целые контракты или шаг лота
// Finetiq: зона без сделок, чтобы не гонять ±1 контракт каждый день
Buffer = max(1, 0.1 * AvgPos)
IF |Target - Position| >= Buffer
торговать разницу AT NEXT BAR OPEN
// стоп-лосса нет (автор): при откате F падает, позиция сокращается,
// ниже середины диапазона F < 0, и позиция уходит в шорт.
// позиции нет, когда Target округлился до нуля (автор)
Вариант B. Дискретная торговля по тому же прогнозу
Carver сам говорит в том же выпуске, что прогноз можно торговать бинарно: по знаку или только после порога 5–10. Так проще при маленьком счёте, и это прямое сравнение с непрерывной версией.
Size = AvgPos // Finetiq: фиксированный объём
IF Position <= 0 AND F >= +10 BUY Size AT NEXT BAR OPEN // автор: порог 5 или 10
IF Position >= 0 AND F <= -10 SELL SHORT Size AT NEXT BAR OPEN
// Finetiq: из шорта BUY это переворот: шорт закрывается, открывается лонг на Size.
// SELL SHORT из лонга так же. Где встречный ордер только закрывает позицию, удваивайте объём ордера
IF Position > 0 AND F <= 0 EXIT AT NEXT BAR OPEN // Finetiq: выход в середине диапазона
IF Position < 0 AND F >= 0 EXIT AT NEXT BAR OPEN // Finetiq
// порог +20 означает закрытие на максимуме окна: это почти классический пробой канала
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Таймфрейм | дневные бары, пересчёт раз в день | автор |
| Шкала прогноза | 0 в середине, +10 на полпути к максимуму, +20 у максимума | автор |
| Кап прогноза | ±20 | автор |
| Стоп-лосс | нет, выход через прогноз | автор |
| Окно диапазона N | 80 дней, проверять 20–320 | Finetiq |
| Форма между точками автора | прямая линия | Finetiq |
| Сглаживание прогноза | нет или EMA N/4 | Finetiq |
| Средняя позиция | 0.5% капитала на ATR(25) | Finetiq |
| Зона без сделок | 10% средней позиции, минимум 1 контракт | Finetiq |
| B: порог входа | +5 или +10, для шорта −5 или −10 | автор |
| B: выход | прогноз вернулся к нулю | Finetiq |
Что проверить
- Непрерывно против дискретно. Одно окно N, три режима: непрерывная позиция, вариант B с порогом 10 и классический пробой (порог 20). Сравнивайте доходность на единицу риска, просадку и оборот.
- Свой размер счёта. Прогоните тест с округлением до целых контрактов при вашем реальном капитале. Если средняя позиция 1–2 контракта, посчитайте, сколько дней позиция действительно менялась. С дробными контрактами тест покажет гладкость, недоступную на счёте.
- Окно N. 20, 40, 80, 160, 320 дней. Соседние окна должны давать похожий результат. Автор торгует несколько вариаций каждого правила и усредняет прогнозы: сравните одно окно со средним прогнозом трёх окон.
- Издержки. Позиция меняется почти каждый день. Посчитайте число сделок в год и заложите проскальзывание на каждое изменение. Сравните три версии: без зоны без сделок, с зоной, со сглаживанием EMA N/4.
- Отсутствие стопа. Посмотрите на худшие дни, например гэп против позиции при прогнозе +20. Сравните с тем же правилом и аварийным стопом на 3–4 ATR.
- Корреляция с моментумом. Автор называет около 80%. Посчитайте корреляцию дневного результата с пересечением средних из карточки
ma-cross-continuous-forecast. Если выше 0.9, второе правило мало что добавит в портфель. - Много рынков. Эффект у автора создаёт портфель из 200+ фьючерсов. Прогоните одни параметры на 20–30 рынках и смотрите медиану.
Особенности платформ
TradingView (Pine Script)
- Для положения в диапазоне нужен диапазон с текущим баром:
ta.highest(high, N)иta.lowest(low, N)без[1]. Тогда P лежит от 0 до 1, и прогноз сам не выходит за ±20. - Добор позиции через
strategy.entryограничен параметромpyramidingвstrategy(), по умолчанию дополнительных входов нет. Без этой настройки рост позиции от +10 до +20 молча не произойдёт. Проще считать целевой объём и отправлятьstrategy.orderна разницу соstrategy.position_size, затем сверить список сделок. - Округляйте объём сами (
math.round). Иначе тест пойдёт дробными контрактами. ta.atrсглаживает по Уайлдеру. Средняя позиция будет отличаться от EasyLanguage и MQL5, где ATR это простое среднее.
MultiCharts и TradeStation (EasyLanguage)
- Добор в одну сторону разрешается в свойствах стратегии (несколько входов в одном направлении). По умолчанию повторный
Buyпри открытой позиции не исполняется. - Частичное сокращение:
Sell N contracts total next bar at market.Sell Shortпри открытом лонге переворачивает всю позицию сразу, поэтому постепенный переход через ноль делайте в два шага: сначала сокращение лонга, потом вход в шорт. - Положение в диапазоне не зависит от масштаба цены, поэтому оно корректно и на склеенном (back-adjusted) непрерывном фьючерсе, даже если ряд ушёл в минус. Размер позиции считайте по ATR в пунктах, а не в процентах от цены.
AvgTrueRangeэто простое среднее TrueRange.
MetaTrader 5 (MQL5)
- На неттинговом счёте одна позиция на символ: сокращение и переворот делаются сделками в обратную сторону на разницу объёма. На хеджинговом каждая сделка открывает отдельную позицию, и закрывать придётся конкретные позиции.
- Объём округляйте до
SYMBOL_VOLUME_STEPи не нижеSYMBOL_VOLUME_MIN. На минимальном лоте непрерывная версия превращается в бинарную. - Средняя позиция из риска:
SYMBOL_TRADE_TICK_VALUEиSYMBOL_TRADE_TICK_SIZE. - Дневные бары CFD строятся по серверу брокера, воскресные бары искажают диапазон и ATR. Своп списывается каждую ночь, а система держит позиции неделями: заложите его в тест.
Где идея может сломаться
- В интервью автор описал перевод цены в прогноз на одном примере. Длину окна, форму между точками, сглаживание, размер средней позиции и зону без сделок задали мы.
- Результатов этого правила автор не показывает. Преимущество непрерывной торговли он описывает словами.
- Эффект у автора создают 200+ рынков и 80–100 перестановок правил, сведённые в одно число. Одно окно на одном рынке даст гораздо более шумный результат.
- Малый счёт. Округление съедает непрерывность, а частые изменения позиции добавляют издержки. Выигрыш в издержках, по словам автора, достаётся в основном крупному счёту.
- Стоп-лосса нет, и позиция реагирует только на дневные закрытия. Если за день цена резко уходит против позиции, прогноз снизится лишь на следующем закрытии, а сокращение пройдёт на открытии следующего бара. Внутридневной стоп ограничил бы такой убыток при плавном движении, но от гэпа через уровень стопа не защищает и он.
- Размер позиции растёт в спокойные периоды: при низком ATR средняя позиция большая, и всплеск волатильности застаёт систему с крупной позицией.