← Усі ідеї
#047ВихідСвінг

Вимкнення стратегії назавжди при просадці у 1.5 раза більшій за історичну

Andrea Unger вимикає систему назавжди, коли її просадка поза вибіркою на 50% більша за історичну або флет затягнувся. Історична просадка з бектесту сама занижена, тому базу для порога треба рахувати обережно.

The Algorithmic Advantage · Andrea Unger · Дивитися відео

Ринки

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

Таймфрейм

D1

Дані

OHLC

Правила

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

Складність

Середня

Статус

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

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

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

Ідея коротко

Andrea Unger торгує портфель із багатьох невеликих ф'ючерсних систем і раз на місяць вирішує, які з них працюють. Його програма Zeus вимикає систему назавжди за однієї з двох умов. Просадка поза вибіркою перевищила історичну максимальну просадку в 1.5 раза. Або система надто довго не оновлює максимум, тривалості цього флету він не назвав.

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

Це правило життєвого циклу, а не угоди. Воно вбудовується в будь-яку систему, яка має бектест. Головна пастка в базовій величині: історична просадка з бектесту майже завжди менша за ту, яку стратегія покаже в торгівлі.

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

Пояснення автора практичне. Система, яка нікуди не веде, займає маржу й тримає ризик, а місце в портфелі можна віддати іншій. Поріг потрібен помітно більший за історичну просадку: звичайна для системи просадка не повинна її вбивати. Unger допускає 40-60% замість 50%, але підбирати поріг за історією вважає ненадійним, і самі правила вимкнення свідомо не оптимізує.

Заборона на «ботокс» теж від автора. Переналаштовані параметри підганяються під останню невдалу ділянку. Нова стратегія з нуля принаймні проходить повний цикл розробки й перевірки поза вибіркою.

Чому історична просадка занижена (пояснення Finetiq):

  • Бектест це одна траєкторія. Ті самі угоди в іншому порядку дають іншу просадку, і фактичне значення з історії рідко виявляється найгіршим із можливих.
  • Максимальна просадка зростає з довжиною періоду. За п'ять років торгівлі її очікувана глибина більша, ніж за три роки бектесту, навіть якщо стратегія не змінилася.
  • Параметри підбиралися на тій самій історії. Відбір серед варіантів віддає перевагу гладким кривим, і просадка на вибірці зміщена вниз.
  • Сам Unger розробляє системи на одному контракті без витрат і додає їх пізніше. Просадка, знята до витрат, менша за торгову.

Звідси наслідок. Поріг 1.5× від заниженої бази вимикатиме здорові стратегії частіше, ніж здається. Натомість систему, що повільно вмирає без глибоких просадок, ловить лише другий тригер, за тривалістю флету.

Правила

Базові величини (автор, розрахунок Finetiq)

// до запуску, за бектестом із витратами й тим самим розміром позиції, що в торгівлі
HistMaxDD   = максимальна просадка денної кривої капіталу, у грошах
              // автор: «історична просадка»; Finetiq: за денною кривою з відкритими позиціями
HistMaxFlat = найдовший період без нового максимуму кривої, у торгових днях   // Finetiq

// Finetiq: обережна база замість одного числа
FOR i = 1 TO 1000
    зібрати криву з денних P&L бектесту, переставлених блоками по 20 днів
    MaxDD_i = максимальна просадка на відрізку завдовжки із запланований живий період
HistMaxDD_MC = 95-й перцентиль MaxDD_i

Вимкнення (автор, другий поріг Finetiq)

// на закритті кожного дня після запуску
Peak   = максимум кривої капіталу від дати запуску          // Finetiq: рахуємо лише живий період
LiveDD = Peak - Equity

IF LiveDD > 1.5 * HistMaxDD                                // автор: перевищення на 50%
    KILL
IF торгових днів від останнього максимуму > 1.5 * HistMaxFlat   // автор: довгий флет; Finetiq: 1.5
    KILL

KILL = закрити позиції, скасувати ордери, більше не вмикати   // автор: «ніколи більше не грає»
// автор: множник 1.4-1.6 припустимий, підбір за історією ненадійний

Після вимкнення (автор)

// не змінювати параметри вимкненої системи
IF принцип системи ще виглядає робочим
    нова розробка з нуля: вихідна ідея без фільтрів, нова перевірка поза вибіркою
// на місце вимкнених додавати нові незалежні системи, орієнтир автора: за ~6 місяців

Варіант B. Titan: тимчасове вимкнення за результатом кривої (автор)

// раз на місяць, за «тіньовою» кривою: вимкнена система далі рахується, але не торгується (автор)
Perf9 = результат за останні 9 місяців
Perf2 = результат за останні 2 місяці
ON = Perf9 > 0 AND Perf2 > 0 AND Perf2 / 2 > Perf9 / 9
// автор: 2 місяці «в середньому кращі» за 9; Finetiq: порівнюємо середній місячний результат
// наступного місяця торгуються системи з ON, найкращі за результатом (автор)
// автор сам подає пороги як приклад, їх можна змінювати

Застосування до картки drift-vwap-pullback

// автор тієї картки підібрав параметри на 2020–2024 і називає 2024–2026 поза вибіркою
HistMaxDD = максимальна просадка 2020–2024 на 1 NQ з витратами          // Finetiq
з першого дня 2024 року:
    IF LiveDD > 1.5 * HistMaxDD THEN KILL
// питання для перевірки: чи була б стратегія вимкнена на власній out-of-sample ділянці і коли

Параметри

Параметр Значення Звідки
База максимальна просадка бектесту автор
Поріг просадки 1.5 × бази автор
Допустимий діапазон порога 1.4-1.6 автор
Другий тригер флет, довший за норму автор
Довжина флету 1.5 × найдовшого флету в бектесті Finetiq
Відлік живої просадки від максимуму після запуску Finetiq
Повторне увімкнення ніколи автор
Обережна база 95-й перцентиль перестановок блоками по 20 днів Finetiq
Частота перегляду портфеля раз на місяць автор
Варіант B: вікна результату 9 і 2 місяці автор
Варіант B: умова обидва додатні, 2 місяці в середньому кращі за 9 автор

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

  1. Хибні вимкнення. Наріжте історію на вікна: 3 роки розробки, 2 роки торгівлі. Для кожної своєї стратегії порахуйте, чи спрацьовував поріг і що стратегія робила після цього. Порівняйте множники 1.3, 1.5 і 2.0 за часткою вимкнень, після яких стратегія відновилася.
  2. Яка база. Одне число з бектесту без витрат, із витратами і 95-й перцентиль перестановок. Подивіться, наскільки зсувається дата вимкнення.
  3. Назавжди проти тимчасово. Портфель своїх стратегій у трьох режимах: усе завжди увімкнено, вимкнення назавжди, помісячне ввімкнення за правилом Titan на тіньовій кривій.
  4. Поріг флету. 1, 1.5 і 2 найдовші флети бектесту. Для стратегій із рідкісними угодами флет може тривати роками без жодної деградації.
  5. Портфель без заміни. Прогін, де вимкнені стратегії нічим не замінюються. Якщо у вас 2-3 системи, а не 30 зі 100, як у Unger, правило швидко залишить портфель порожнім.
  6. Out-of-sample чужої стратегії. Схема з блоку «Застосування» на drift-vwap-pullback і на будь-якій картці, де автор назвав період підбору параметрів.

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

TradingView (Pine Script)

  • strategy.risk.max_drawdown(value, type) після досягнення просадки закриває позиції й забороняє нові ордери до кінця тесту. Просадка рахується по всій історії тесту, включно з ділянкою, з якої ви взяли базу. Для відліку від дати запуску потрібен свій лічильник на strategy.equity і вхідний параметр із датою.
  • Базу зручно зняти окремим прогоном на ділянці розробки: strategy.max_drawdown наприкінці цього прогону.
  • Вимкнення в бектесті означає, що до кінця графіка угод немає. Щоб побачити, що було б далі, потрібен другий екземпляр стратегії без правила.
  • Pine бачить криву однієї стратегії на одному символі. Портфель із багатьох систем і правило Titan тут не зібрати.

MultiCharts і TradeStation (EasyLanguage)

  • Крива стратегії: NetProfit + OpenPositionProfit. Максимум і прапорець вимкнення зберігайте в змінних, дату запуску й базу задайте входами.
  • Під час увімкнення стратегія перераховується по всій історії. З датою запуску й базою у входах вимкнення відтворюється, але за теоретичними, а не реальними виконаннями. Рішення ухвалюйте за звітом реальних угод.
  • Сам Unger рахує ротацію поза платформою: вивантажує з MultiCharts денний P&L кожної системи й збирає матрицю у своїй програмі на MATLAB. Для портфеля з десятків стратегій це ближче до його практики, ніж код усередині однієї стратегії.

MetaTrader 5 (MQL5)

  • ACCOUNT_EQUITY спільний для всіх радників на рахунку. Криву однієї стратегії збирайте з історії угод за magic: HistorySelect, HistoryDealGetInteger(ticket, DEAL_MAGIC), HistoryDealGetDouble для DEAL_PROFIT, DEAL_COMMISSION, DEAL_SWAP, плюс плаваючий прибуток відкритих позицій.
  • Прапорець вимкнення зберігайте поза пам'яттю радника, у глобальній змінній терміналу або у файлі. Інакше перезапуск терміналу поверне систему в торгівлю.
  • Своп і комісія в MT5 ідуть окремими полями угоди. Якщо базу знято в тестері без них, жива просадка буде систематично глибшою.

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

  • Поріг 1.5 це евристика одного трейдера. Unger сам називає підбір порога ненадійним і не наводить статистики, як часто вимкнення виявлялися слушними.
  • База з бектесту занижена з причин вище. Без поправки правило вимикає частину стратегій, які просто потрапили у звичайну для себе, але не зустрінуту в історії просадку.
  • У системи з рідкісними угодами просадка поза вибіркою набирається роками. Правило спрацьовує пізно, коли основні втрати вже сталися.
  • Вимкнення назавжди виключає відновлення. Якщо стратегія циклічна, варіант Titan із тіньовою кривою може виявитися кращим, але й він потребує перевірки.
  • Правило розраховане на конвеєр розробки. В Unger сотня стратегій на вибір і регулярна заміна. З однією-двома системами воно перетворюється на рішення «припинити торгувати».
  • Тривалості флету автор не назвав. Другий тригер у картці повністю наша формалізація.

Джерела

  • 038 - Andrea Unger - 672% Returns? Sure! Would You Like Some Risk with That?

    The Algorithmic Advantage · Andrea Unger · 2025-05-07

    • 02:23Конкурс 2008 року: рахунок $15 100, повний ризик
    • 04:34Просадка близько 46% за місяць
    • 46:10Склад портфеля стратегій змінюється раз на місяць
    • 47:05Правила Titan: результат за 9 і 2 місяці
    • 51:29Titan тримає систему на лаві запасних, Zeus убиває
    • 51:54Поріг: максимальна просадка × 1.5 або довгий флет
    • 52:19Убиті системи треба замінювати новими
    • 1:04:43Бектест ротації на денних P&L з 2008 року
    • 1:05:32Вимкнена система далі рахується
    • 1:08:37Правила вимкнення не оптимізує
    • 1:09:22Просадка поза вибіркою на 50% більша за історичну
    • 1:09:50100 стратегій, у торгівлі близько 30
    • 1:20:31Розробка на одному контракті без витрат
    • 1:34:47Оновлені параметри працювали гірше за оригінал
    • 1:35:14Без «ботоксу»: нова стратегія з нуля

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

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

  • Andrea Unger чотири рази виграв World Cup Trading Championship. У 2008 році він отримав +672% на рахунку $15 100, торгуючи з повним ризиком, і під час конкурсу пережив просадку близько 46% за один місяць.
  • Для рахунку $100 000 у мікроф'ючерсах автор радить мати близько 100 розроблених стратегій, з яких у торгівлі опиниться близько 30.
  • Якщо за місяць вимкнено 10 систем, найближчого пів року, за словами автора, треба додати 10 нових.
  • Процес увімкнення й вимкнення стратегій автор перевіряє на денних P&L усіх систем починаючи з 2008 року.

Схожі ідеї

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