← Все идеи
#073НовоеРазмер позицииПозиционная

Размер позиции по прогнозу с полом волатильности и потолком номинала

Rob Carver переводит сигнал любого правила в прогноз от −20 до +20 и умножает среднюю позицию по риску на прогноз / 10. Слишком тихие инструменты не торгуются, номинал позиции ограничен жёстким потолком.

The Algorithmic Advantage · Rob Carver · Смотреть видео

Рынки

Фьючерсы, Индексы, Сырьё, Форекс, Облигации

Таймфрейм

D1

Данные

OHLC

Правила

Частично формализовано

Сложность

Средняя

Статус

Не проверено

Часть правил дописали мы, это помечено в тексте.

TradingView есть ловушки
EasyLanguage есть ловушки
MetaTrader 5 есть ловушки

Идея коротко

Это не сигнал, а блок размера позиции. Он подходит к любому правилу, которое выдаёт число со знаком: к пересечению средних из ma-cross-continuous-forecast, к положению цены в диапазоне из range-position-breakout, к собственному индикатору.

Rob Carver, бывший руководитель направления в Man AHL, приводит сигнал каждого правила к прогнозу. 0 значит нет мнения, ±10 средняя позиция, ±20 максимум. Прогнозы нескольких правил он сводит взвешенным средним в одно число на инструмент. Позиция равна средней позиции, умноженной на прогноз / 10. Средняя позиция считается по риску, одинаково для всех инструментов.

У размера по риску есть слабое место: чем тише инструмент, тем больше контрактов. Поэтому у автора два ограничителя. Пол волатильности: ниже него инструмент не торгуется. Жёсткий потолок размера: номинал позиции не превышает заданной доли капитала, даже если волатильность упала между пересмотрами.

Почему это может работать

Размер по риску выравнивает вклад инструментов. Без него золото и двухлетние облигации в одном портфеле живут в разных масштабах, и результат определяет самый волатильный рынок. Прогноз добавляет вторую ось: сильный сигнал получает больше риска, слабый меньше. По словам автора, это даёт естественный стоп. Когда цена идёт против позиции, прогноз снижается, и позиция сокращается постепенно, так же как набиралась. Кап ±20 он объясняет ограничением риска одного инструмента.

Слабое место автор называет сам. Инструмент, который выглядит безопасным из-за низкой волатильности, получает огромную позицию в номинале. Его пример: при номинале в 100% капитала падение инструмента на 10% стоит 10% счёта. При пяти номиналах это уже половина счёта. Пол отсекает такие инструменты заранее. Потолок страхует между пересмотрами списка, которые у автора проходят раз в несколько месяцев: если волатильность за это время упала, позиция и плечо растут сами.

Выигрыш блока автор получает на портфеле из примерно 200 фьючерсов. На одном инструменте прогноз, пол и потолок работают так же, но их эффект виден хуже.

Правила

Прогноз (автор, нормировка Finetiq)

// дневные бары, расчёт раз в день после закрытия
// любое правило i выдаёт сырое число RawF_i со знаком
Scalar_i = 10 / Average(|RawF_i|)                  // автор: средний |прогноз| = 10; Finetiq: среднее только по прошлым барам
F_i      = max(-20, min(+20, RawF_i * Scalar_i))   // автор: кап ±20

F = Σ w_i * F_i                                    // автор: взвешенное среднее; Finetiq: веса равные, Σ w_i = 1
F = F * K                                          // Finetiq: K возвращает средний |F| к 10 по прошлой истории
F = max(-20, min(+20, F))

Средняя и целевая позиция

// автор: одинаковый расчёт риска для всех инструментов, бюджет делится сверху вниз по секторам
RiskPerInstr = 0.5%                                // Finetiq: доля капитала на один дневной ATR(25) для одного инструмента
// это не средний вес инструмента около 0.5% из заявлений автора: там доля в портфеле из ~200 фьючерсов,
// числа совпали случайно; в портфеле делите общий бюджет риска по весам
AvgPos = Equity * RiskPerInstr / (ATR(25) * PointValue)   // Finetiq: как в карточках Carver этой базы
Target = F / 10 * AvgPos                           // автор: +10 средняя позиция, +20 двойная

IF AvgPos < 4                                      // автор: меньше 4 контрактов, непрерывности нет
    // Finetiq: дискретный режим по тому же прогнозу
    Target = sign(F) * max(1, round(AvgPos)) IF |F| >= 10, иначе 0
// Finetiq: дискретный режим считается до пола и потолка, чтобы они могли обнулить или срезать и его

Пол волатильности (автор, порог Finetiq)

// автор: список инструментов пересматривается раз в несколько месяцев
Review = каждые 63 торговых дня                   // Finetiq: квартал
VolPct = Average(ATR(25) / Close, 63)              // Finetiq: по цене текущего контракта, не склейки

IF VolPct < 0.2% THEN Tradable = FALSE             // автор: ниже минимума не торгуем; Finetiq: порог 0.2% в день
IF NOT Tradable THEN Target = 0
// автор: риск можно перенести в коррелированный и более волатильный инструмент,
//        пример: двухлетние облигации США → 5- или 10-летние
// автор: там же лимиты ликвидности и издержек; пороги Finetiq задайте под свой счёт

Потолок номинала (автор, множитель Finetiq)

Notional    = |Target| * Close * PointValue
MaxNotional = 1.0 * Equity                         // автор: «не пять капиталов»; Finetiq: 1.0
IF Notional > MaxNotional
    Target = sign(Target) * floor(MaxNotional / (Close * PointValue))
// автор: потолок срабатывает между пересмотрами, когда волатильность упала и позиция выросла
// автор: такой инструмент на пересмотре кандидат на исключение

Округление и исполнение

// порядок: целевая позиция и дискретный режим → пол → потолок → округление
Target = round(Target)

IF |Target - Position| >= max(1, 0.1 * AvgPos)     // Finetiq: зона без сделок
    торговать разницу AT NEXT BAR OPEN
// автор в бэктесте исполняет по закрытию следующего дня; сравните оба варианта

Пример применения

Счёт 500 000 долларов. На фьючерсе Micro E-mini S&P 500 (MES, 5 долларов за пункт) работают два правила из соседних карточек. Цены и ATR условные.

F_ma    = +12                      // ma-cross-continuous-forecast: шесть скоростей EMA
F_range = +18                      // range-position-breakout: окно 80 дней
F       = 0.5 * 12 + 0.5 * 18      // = +15, равные веса (Finetiq), K = 1 для простоты

Close = 5000, ATR(25) = 62 пункта
VolPct = 62 / 5000 = 1.24%                     // выше пола 0.2%
AvgPos = 500000 * 0.5% / (62 * 5) = 8.06       // больше 4, режим непрерывный
Target = 15 / 10 * 8.06 = 12.1 → 12 контрактов
Notional = 12 * 5000 * 5 = 300000              // 0.6 капитала, ниже потолка 1.0

Второй инструмент тихий: фьючерс на двухлетние облигации США (ZT, 2000 долларов за пункт), условно Close = 104, ATR(25) = 0.12 пункта.

VolPct = 0.12 / 104 = 0.115%                   // ниже пола 0.2%: Tradable = FALSE

// что было бы без пола, при F = +20
AvgPos   = 500000 * 0.5% / (0.12 * 2000) = 10.4
Target   = 20 / 10 * 10.4 = 20.8 → 21 контракт
Notional = 21 * 104 * 2000 = 4368000           // 8.7 капитала
// потолок 1.0 срезал бы позицию до floor(500000 / 208000) = 2 контрактов,
// а 2 контракта меньше 4: для этого счёта инструмент фактически дискретный

Параметры

Параметр Значение Откуда
Шкала прогноза средний модуль 10, кап ±20 автор
Объединение правил взвешенное среднее автор
Веса правил равные Finetiq
Позиция прогноз / 10 × средняя позиция автор
Средняя позиция по риску, одинаково для всех инструментов автор
Риск на инструмент 0.5% капитала на ATR(25), не путать с весом 0.5% у автора Finetiq
Пол волатильности есть, ниже него инструмент не торгуется автор
Порог пола ATR(25) / цена ниже 0.2% в день Finetiq
Потолок номинала есть, пример «не пять капиталов» автор
Множитель потолка 1.0 капитала на инструмент Finetiq
Пересмотр списка раз в несколько месяцев автор
Период пересмотра 63 торговых дня Finetiq
Минимум для непрерывного режима 4 контракта автор
Дискретный режим по знаку прогноза при |F| от 10 Finetiq
Зона без сделок 10% средней позиции, минимум 1 контракт Finetiq
Исполнение в бэктесте закрытие следующего дня автор

Что проверить

  1. Блок против фиксированного объёма. Одно правило, например пересечение EMA 16/64, в трёх режимах: всегда 1 контракт, размер по риску без прогноза, полный блок. Сравните доходность на единицу риска, худший месяц и число сделок.
  2. Пол волатильности. 10-20 фьючерсов, включая облигации и короткие ставки. С полом и без, порог 0.1%, 0.2%, 0.4%. Главная метрика: худший день портфеля в процентах капитала, а не годовая доходность.
  3. Потолок номинала. Множитель 0.5, 1, 2 и без потолка. Найдите периоды, когда потолок срабатывал, и посмотрите, что было с инструментом после.
  4. Округление на вашем счёте. Дробные контракты против целых при вашем капитале. Посчитайте долю инструментов со средней позицией меньше 4 контрактов: для них гладкость из теста на счёте недоступна.
  5. Задержка. Исполнение на открытии следующего дня, по закрытию следующего дня, через 5 и 10 дней. Автор оценивает две недели простоя примерно в 10% результата. Если у вас потеря намного больше, ваши правила быстрее, чем у него.
  6. Зона без сделок. 0%, 10% и 25% средней позиции. Число сделок в год против результата после комиссии и спреда.
  7. Заглядывание вперёд. Средний |прогноз| для Scalar и K по всей истории против растущего окна. Первый вариант знает будущее распределение и завышает тест.

Особенности платформ

TradingView (Pine Script)

  • Стоимость пункта syminfo.pointvalue, капитал strategy.equity. Объём округляйте сами (math.round), иначе тест пойдёт дробными контрактами.
  • Позицию меняйте на разницу: strategy.order на target - strategy.position_size. Через strategy.entry добор ограничен pyramiding, по умолчанию дополнительных входов нет.
  • Стратегия торгует один символ. Общий бюджет риска на портфель и замену тихого инструмента в Pine не собрать: считайте каждый инструмент отдельно с его долей капитала.
  • ta.atr сглаживает по Уайлдеру, а встроенный ATR в EasyLanguage и MQL5 простой. Средняя позиция на платформах совпадёт, только если ATR посчитан одинаково.

MultiCharts и TradeStation (EasyLanguage)

  • Стоимость пункта BigPointValue. Частичное сокращение Sell N contracts total next bar at market, добор разрешается в свойствах стратегии.
  • Sell Short при открытом лонге переворачивает всю позицию сразу. Переход прогноза через ноль делайте в два шага: сокращение лонга, затем шорт.
  • На склеенном вычитанием фьючерсе цена может уйти к нулю и в минус. Пол и потолок считайте по цене текущего контракта (отдельный поток данных без склейки), ATR в пунктах можно брать со склейки.
  • Портфельный бюджет риска и замена тихих инструментов: Portfolio Trader в MultiCharts или Portfolio Maestro в TradeStation.

MetaTrader 5 (MQL5)

  • Объём из риска: SYMBOL_TRADE_TICK_VALUE и SYMBOL_TRADE_TICK_SIZE, округление до SYMBOL_VOLUME_STEP, не ниже SYMBOL_VOLUME_MIN. На минимальном лоте непрерывный режим становится дискретным.
  • Номинал считайте через размер контракта символа (SYMBOL_TRADE_CONTRACT_SIZE) и цену. Плечо брокера не ограничитель риска: маржа позволит позицию намного больше потолка.
  • Мультисимвольный советник может вести весь список и заменять инструменты, но у брокера должны быть все символы. Облигационных фьючерсов у CFD-брокеров часто нет.
  • Дневные бары строятся по серверу брокера, короткие воскресные бары занижают ATR. Позиции держатся неделями: заложите своп в тест.

Где идея может сломаться

  • Порог пола, множитель потолка, риск на инструмент, веса правил и период пересмотра автор не называет. Числа в карточке наши стартовые значения.
  • Выигрыш блока автор описывает на портфеле из примерно 200 фьючерсов. На одном-двух инструментах пол может просто выключить торговлю, а потолок сделать позицию одноконтрактной.
  • Малый счёт. При средней позиции меньше четырёх контрактов прогноз меняет позицию ступенями, и преимущества непрерывной торговли пропадают. На дорогих контрактах потолок номинала срезает позицию до одного-двух контрактов.
  • Размер по риску растёт после спокойных периодов. Всплеск волатильности застаёт систему с большой позицией, и пол с потолком защищают от этого лишь частично.
  • Потолок не защищает от гэпа. При номинале в 100% капитала падение на 10% всё равно стоит 10% счёта, как в примере автора.
  • Задержка безопасна только для медленных правил. Цифра про две недели относится к системе автора, быстрый прогноз может потерять на лаге в день заметно больше.
  • ATR в процентах от цены на склеенном ряду искажается. Пол, посчитанный по склейке, выключит или включит не те инструменты.

Источники

  • 033 - Rob Carver - The Comprehensive Guide to a Diversified Futures Strategy

    The Algorithmic Advantage · Rob Carver · 2025-02-19

    • 39:43Взвешенное среднее всех правил в одно число
    • 41:47Малый счёт: прогноз меняется, число контрактов нет
    • 44:40Шкала: +10 средняя позиция
    • 45:17Кап 20 ограничивает риск одного инструмента
    • 45:50Прогноз +20: позиция удваивается
    • 47:49Естественный стоп вместо стоп-лосса
    • 49:50Прогноз как мера силы сигнала, не больше двух средних позиций
    • 1:01:34Не меньше четырёх контрактов на инструмент
    • 1:03:43Риск сверху вниз: семь секторов по 14%
    • 1:04:50Средний вес инструмента около 0.5%
    • 1:05:27Максимальный размер позиции в инструменте
    • 1:12:18Проблема: тихий инструмент раздувает позицию
    • 1:12:39Пол волатильности, лимиты ликвидности и издержек
    • 1:13:33Пример: двухлетние облигации США заменяются 5- и 10-летними
    • 1:14:03Жёсткий потолок: не пять капиталов номинала
    • 1:14:53Волатильность упала между пересмотрами, плечо выросло
    • 1:26:24В бэктесте исполнение по закрытию следующего дня
    • 1:27:10Две недели простоя: около 10% результата

Заявлено автором

Эти цифры и утверждения принадлежат автору. Мы их не проверяли.

  • Автор торгует около 200 фьючерсов, средний вес инструмента в портфеле около 0.5%. Риск распределяется сверху вниз: например, семь секторов примерно по 14% каждый.
  • Для непрерывной торговли автору нужно хотя бы четыре контракта на инструмент. С одним контрактом торговля по сути дискретная.
  • Пример автора: пять номиналов капитала в тихом инструменте недопустимы. Даже при номинале в 100% капитала падение инструмента на 10% стоит 10% капитала.
  • В бэктесте автор исполняет сигналы по закрытию следующего дня. На 20-30 годах истории лаг в один день почти не меняет результат его медленной системы, а две недели простоя стоят, по его оценке, около 10% результата.

Похожие идеи

Обновлено: 2026-09-11