← Усі ідеї
#045Розмір позиціїПозиційна

Розмір за ATR, зафіксований на вході, проти щоденного vol-targeting

Takahé Capital рахують розмір позиції за ATR один раз під час входу, від умовного капіталу за закритими угодами, і не перераховують його до виходу. Картка задає блок і чесне порівняння зі щоденним підлаштуванням під волатильність.

The Algorithmic Advantage · Moritz Seibert, Moritz Heiden · Дивитися відео

Ринки

Ф'ючерси, Сировина, Індекси, Облігації, Форекс

Таймфрейм

D1

Дані

OHLC

Правила

Частково формалізовано

Складність

Середня

Статус

Не перевірено

Частину правил дописали ми, це позначено в тексті.

TradingView є пастки
EasyLanguage є пастки
MetaTrader 5 є пастки

Ідея коротко

Є два способи вести розмір позиції. Перший: порахувати розмір під час входу й більше його не чіпати. Другий: регулярно підлаштовувати позицію під поточну волатильність, зменшуючи її, коли ринок розгулявся, і збільшуючи, коли він затих. Другий спосіб називають vol-targeting або контролем волатильності.

Moritz Seibert і Moritz Heiden з Takahé Capital торгують першим способом. ATR вимірюється один раз у момент відкриття угоди, і розмір тримається до виходу. Капітал для розрахунку (trade level) береться не з поточного рахунку, а з умовної величини. Її переглядають рідко й лише за реалізованим прибутком, відкритий прибуток до розрахунку не входить.

Картка задає цей блок для будь-якої системи й контрольний варіант зі щоденним підлаштуванням, щоб перевірити твердження авторів на своїх угодах.

Чому це може працювати

Аргументи авторів:

  • Менше угод. Кожне підлаштування платить комісію і спред, а фіксований розмір їх не платить зовсім.
  • Волатильність погана міра ризику. Вона симетрична й однаково рахує рух у ваш бік і проти вас.
  • Підлаштування ламає логіку системи. Шорт на ринку, що падає, зазвичай потрапляє на зростання волатильності, і правило урізає виграшну позицію. Приклад авторів: нафта у 2020 році.
  • Підлаштування зрізає правий хвіст. Крива стає гладшою, але трендова система живе рідкісними величезними угодами, і саме їхній розмір зменшується.
  • Тезу «волатильність зростає біля розворотів» їхні дані не підтверджують. Облігації роками падали плавно. Контроль волатильності в такій ситуації нарощував би позицію, яка почала втрачати.

Про свій підхід автори чесно кажуть: єдиний замір може припасти на момент незвично низької або високої волатильності, і це буває і плюсом, і мінусом. Дослідження, на яке вони посилаються, в інтерв'ю не розкрито. Цифр щодо нього немає.

Trade level за закритими угодами автори називають консервативним: плече не нарощується автоматично на кожній хвилі відкритого прибутку.

Правила

Блок розміру (автори, числа Finetiq)

// рахується лише в момент сигналу на вхід
// trade level: умовний капітал для розрахунку розміру (автори)
// тримається сталим і переглядається за реалізованим прибутком, коли P&L помітно змінився
ClosedEquity = InitialCapital + сума закритих угод             // відкритий прибуток не входить (автори)
IF перший торговий день місяця                                  // Finetiq: перевірка раз на місяць
   AND |ClosedEquity / TradeLevel - 1| >= 10%                   // Finetiq: поріг «помітної» зміни
    TradeLevel = ClosedEquity

ATRe      = ATR(20) на закритті сигнального бару                 // автори: недавній середній діапазон; Finetiq: 20
RiskMoney = TradeLevel * 0.25%                                   // автори: «певний відсоток»; Finetiq: 0.25%
StopDist  = 3 * ATRe                                             // автори: початковий стоп є; Finetiq: 3 ATR
Contracts = floor(RiskMoney / (StopDist * PointValue))

BUY Contracts AT NEXT BAR OPEN     // або SELL SHORT
// після входу Contracts не змінюється до виходу (автори): ні за зростання ATR, ні за падіння
// однаковий ризик для всіх ринків і для лонга й шорта (автори)

Контрольний варіант: щоденний vol-targeting (Finetiq)

// той самий вхід, той самий вихід, той самий TradeLevel; змінюється лише ведення розміру
Target(t) = floor(TradeLevel * 0.25% / (3 * ATR(20)[t] * PointValue))

IF |Target(t) - CurrentContracts| >= MAX(1, 20% * CurrentContracts)   // Finetiq: зона нечутливості
    довести позицію до Target(t) AT NEXT BAR OPEN
    позначити угоду міткою "vol-adj"

Кошик коригувань (метод авторів, облік Finetiq)

// автори: скласти всі коригувальні угоди окремо, з комісією і спредом 0.5-1 тік
// Finetiq: кожна добавка закривається при найближчому скороченні або на загальному виході (LIFO)
AdjPnL = Σ по угодах "vol-adj": (ціна закриття частини - ціна відкриття частини) * контракти * PointValue
         - комісія - (0.5 або 1 тік) * контракти * 2
// AdjPnL < 0: підлаштування коштує грошей (твердження авторів)

Застосування до картки always-in-breakout

// там розмір уже рахується в момент перевороту: Units = Equity * 0.2% / (ATR20 * PointValue)
// блок змінює дві речі:
Equity  -> TradeLevel за закритими угодами, перегляд раз на місяць за зміни від 10%
ATR20   -> фіксується на барі перевороту й не перераховується до наступного перевороту
// контрольний варіант: ті самі перевороти, Units перераховуються щодня за ATR20[t]

Параметри

Параметр Значення Звідки
Замір волатильності один раз під час входу автор
Міра волатильності недавній ATR автор
Капітал для розрахунку trade level за закритими угодами автор
Перегляд trade level коли P&L помітно змінився автор
Поріг перегляду 10%, перевірка раз на місяць Finetiq
Період ATR 20 Finetiq
Ризик на угоду 0.25% trade level Finetiq
Стоп для розрахунку розміру 3 ATR Finetiq
Лонг і шорт однаковий бюджет ризику автор
Контроль: частота перерахунку щодня Finetiq
Контроль: зона нечутливості 1 контракт або 20% Finetiq
Витрати в кошику 0.5-1 тік спреду плюс комісія автор

Що перевірити

  1. Головне порівняння. Ті самі сигнали (наприклад, always-in-breakout або turtle-4w-2w на 20-30 ф'ючерсах), розмір на вході проти щоденного vol-targeting. Дивіться на доходність, максимальну просадку, середній збиток, середній прибуток і асиметрію розподілу угод.
  2. Кошик коригувань. Порахуйте AdjPnL при 0.5 і при 1 тіку. Це пряма перевірка твердження авторів, що підлаштування саме по собі приносить збиток.
  3. Правий хвіст. Частка підсумкового прибутку, яку дають 5% найкращих угод, в обох варіантах. Якщо vol-targeting помітно її знижує, він змінює саму природу трендової системи, про що й кажуть автори.
  4. Частота між крайнощами. Перерахунок щодня, раз на тиждень, раз на місяць, лише за зміни розміру від 50%. Так видно, де зникає різниця.
  5. Чутливість єдиного заміру. Період ATR 10, 20, 50. Окремо угоди, відкриті одразу після сплеску волатильності: за короткого ATR їхній розмір буде крихітним на всю угоду.
  6. Капітал для розрахунку. Trade level із переглядом, закритий капітал на кожній угоді, повний капітал із відкритим прибутком. Порівняйте поведінку просадки наприкінці довгого тренду, коли відкритий прибуток повертається.
  7. Розмір рахунку. При 1-3 контрактах на ринок щоденне підлаштування майже завжди округлюється до нуля змін. Проженіть порівняння на капіталі, з яким торгуватимете, а не на мільйонах.

Особливості платформ

TradingView (Pine Script)

  • Закритий капітал: strategy.initial_capital + strategy.netprofit. strategy.equity уже містить відкритий прибуток і для trade level не підходить.
  • Розмір на вході рахуйте на сигнальному барі й передавайте в strategy.entry(..., qty = n). Вартість пункту: syminfo.pointvalue.
  • Контрольний варіант потребує добору й часткового скорочення: pyramiding у strategy() і strategy.close(..., qty = x). Без pyramiding добавки мовчки не виконаються, і порівняння покаже два однакові результати.
  • Портфельного тесту немає: trade level на весь портфель у Pine не порахувати, лише на один символ (розділ 5 довідника). ta.atr згладжує за Вайлдером.

MultiCharts і TradeStation (EasyLanguage)

  • Закритий прибуток стратегії: NetProfit, відкритий: OpenPositionProfit. Початковий капітал зручніше задати входом, щоб trade level рахувався однаково в бектесті й у торгівлі.
  • Вартість пункту BigPointValue. AvgTrueRange це просте середнє TrueRange, а не Вайлдер.
  • Розмір фіксується в змінній на сигнальному барі: Buy Contracts_ contracts next bar at market. Контрольний варіант потребує дозволити кілька входів в один бік у властивостях стратегії й скорочувати позицію іменованими виходами з кількістю контрактів.
  • Спільний trade level на багато ринків рахується в Portfolio Maestro або Portfolio Trader. На одному графіку стратегія бачить лише свій прибуток.

MetaTrader 5 (MQL5)

  • AccountInfoDouble(ACCOUNT_BALANCE) це баланс без плаваючого прибутку, ACCOUNT_EQUITY з ним. Для trade level потрібен баланс, але він спільний для всіх радників на рахунку.
  • Лот із ризику: SYMBOL_TRADE_TICK_VALUE, SYMBOL_TRADE_TICK_SIZE, округлення до SYMBOL_VOLUME_STEP. Зафіксований лот зберігайте в змінній, а під час перезапуску радника беріть обсяг відкритої позиції.
  • На неттинговому рахунку підлаштування змінює обсяг однієї позиції, на хеджинговому створює окремі позиції. Кошик коригувань простіше вести на хеджинговому рахунку.
  • iATR це просте середнє TR. У CFD кожне підлаштування платить спред, а позиція, яку тримають 200 днів, ще й своп. Для CFD витрати в кошику будуть вищими, ніж в авторів на біржових ф'ючерсах.

Де ідея може зламатися

  • Дослідження авторів в інтерв'ю не оприлюднено. Усі твердження про середній збиток і кошик коригувань поки що словесні.
  • Автори торгують довгостроковий тренд із середньою угодою близько 200 днів. За такий час волатильність змінюється сильно, і різниця між двома способами помітна. У системи з угодами на 3-10 днів ATR майже не встигає змінитися, і порівняння може нічого не показати.
  • Єдиний замір ATR може припасти на сплеск або затишшя. Якщо після затишшя волатильність зросла в рази, ризик позиції в грошах теж зріс у рази, і блок цього свідомо не виправляє.
  • Trade level консервативний лише на зростанні. Після глибокої просадки він залишається високим до перегляду, і ризик у відсотках від реального капіталу стає більшим за план.
  • Відсоток ризику, період ATR, множник стопа й поріг перегляду trade level автори не назвали. Значення в таблиці стартові й потребують перевірки.
  • На маленькому рахунку округлення до цілих контрактів важить більше, ніж вибір між двома способами. Фіксованого відсотка ризику там дотримуються лише приблизно.

Джерела

  • 003 - Two Quants - Moritz Seibert & Mortiz Heiden (Part 1)

    The Algorithmic Advantage · Moritz Seibert, Moritz Heiden · 2023-09-18

    • 26:32Бюджет ризику: однакове очікування через розмір
    • 33:30Розмір від trade level, відкритий прибуток не враховується
    • 34:30Trade level переглядають, коли P&L помітно змінився
    • 57:18Два способи: фіксований розмір або підлаштування
    • 58:45Портфельне підлаштування ріже виграшні позиції
    • 59:50Гладша крива, але зрізано правий хвіст
    • 1:01:29ATR вимірюється один раз під час відкриття угоди
    • 1:02:22Економія на комісіях і спреді
    • 1:05:52Облігації: падіння без зростання волатильності
    • 1:07:02Нафта 2020: шорт урізано майже до нуля
    • 1:07:42Дослідження: середній збиток більший, кошик у мінусі
  • 004 - Two Quants - Moritz Seibert & Moritz Heiden (Part 2)

    The Algorithmic Advantage · Moritz Seibert, Moritz Heiden · 2023-09-21

    • 11:53Середня угода 200 днів, найкращі 600-700
    • 12:07Без vol-targeting: % від trade level і розмір за ATR

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

Ці цифри й твердження належать автору. Ми їх не перевіряли.

  • Середня угода трендової програми Takahé Capital триває близько 200 днів, окремі прибуткові тримаються 600-700 днів. Розмір задається за недавнім ATR, vol-targeting не застосовується.
  • За дослідженням авторів, контроль волатильності статистично збільшує середній збиток. Якщо скласти всі коригувальні угоди в окремий кошик із комісією та спредом від половини до цілого тіка, підсумок від'ємний. Точних чисел в інтерв'ю немає.
  • Приклад авторів: у 2020 році, коли нафта пішла у від'ємні ціни, контроль волатильності урізав би прибутковий шорт майже до нуля.

Схожі ідеї

Оновлено: 2026-09-10