Type/to search
2
Follow
481
Followers
Исследование контртрендовой краткосрочной стратегии возврата к среднему: практика обучения «статистическому арбитражу волатильности»
Discussions
Created 2025-06-26 14:33:24  Updated 2025-07-01 09:25:31
 0
 1431

img

Источник стратегического мышления

Недавно в сообществе количественного трейдинга я увидел интересную «Стратегию статистического арбитража волатильности». Хотя она и называется арбитражной стратегией, после тщательного изучения я обнаружил, что основная идея этой стратегии на самом деле больше похожа на контр-торговлю, и некоторые называют её «стратегией ловли игл».

Основная мысль автора проста:**Когда рынок падает, а волатильность чрезмерно возрастает, это часто приводит к паническим продажам. В это время открытие длинной позиции против тренда может принести хорошую прибыль.**Эта идея звучит разумно. В конце концов, мы часто видим, как рынок после сильной паники технический отскок.

img

В учебных целях я решил написать стратегию, основанную на этой идее, чтобы проверить её. Хотя она может немного отличаться от доработанной стратегии автора, я считаю, что изучение классических идей путём ручного воспроизведения — само по себе очень ценный процесс.

Стратегический принцип

Основная логика очень проста.

Основная логика этой стратегии на самом деле очень проста и может быть изложена в нескольких предложениях:

  1. Найти падающий рынок:Цена должна быть ниже скользящей средней, чтобы подтвердить, что она падает.
  2. Всплеск эквиволатильности:Судя по индикатору ATR, текущая волатильность значительно выше среднего уровня.
  3. Открывайте длинную позицию против тренда:Открывайте длинную позицию, если выполнены вышеуказанные условия, делая ставку на отскок.
  4. Своевременный выход: Либо запускать, когда волатильность вернется к норме, либо установить защиту стоп-лосс

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

С точки зрения поведенческих финансов эта стратегия отражает экстремальное состояние рыночных настроений. Когда снижение цен сопровождается высокой волатильностью, это часто означает:

  • Инвесторы паникуют и, возможно, продают нерационально
  • Чрезмерная реакция цен из-за крупных заказов или срочных новостей
  • Естественный коррекционный спрос после перепроданности технического индикатора

Конечно, это всего лишь теоретическое предположение, и реальный эффект еще требует подтверждения данными.

Процесс написания платформы FMZ

Причины выбора платформы FMZ

Я уже использовал несколько количественных платформ. Поддержка Pine Script от FMZ лучше, и ее можно напрямую подключить к нескольким биржам, что удобно для бэктестинга и реальной торговли.

Мысли в процессе написания

1. Запутанность настройки параметров

Какова оптимальная настройка цикла ATR? Что такое множественные пороговые значения? Стандартного ответа для этих параметров нет, и найти относительно подходящие значения можно только путём повторных тестов. В итоге я выбрал:

  • Период ATR: 14 (классическая настройка)
  • Множественный порог ATR: 2,0 (ни слишком чувствительный, ни слишком нечувствительный)
  • Период скользящей средней: 20 (оценка краткосрочного тренда)

2. Важность контроля рисков

Самый большой риск торговли против тренда — это «покупка на дне на полпути к вершине горы». Поэтому я добавил несколько уровней защиты:

  • Единичный риск контролируется на уровне 2%
  • Максимальная общая позиция не превышает 10%
  • Разрешается увеличивать позиции партиями (стратегия пирамиды), но есть ограничение на количество раз.
  • Установите стоп-лосс и тейк-профит защиту

3. Конструкция выходного механизма

Это ключевая часть стратегии. Я разработал три выхода:

  • Выход из регрессии ATR: Запускать, когда волатильность возвращается к нормальному уровню (основной сигнал выхода)
  • Традиционный стоп-профит и стоп-лосс: Фиксированная процентная защита (нижняя граница контроля риска)
  • Режим смешивания: Оба метода включены одновременно

Некоторые детали реализации кода

pine
// 核心判断逻辑 atr = ta.atr(atr_period) atr_ma = ta.sma(atr, mean_period) price_ma = ta.sma(close, mean_period) // 开仓条件:下跌 + 高波动 high_volatility = atr > atr_ma * atr_multiplier price_decline = close < price_ma long_condition = price_decline and high_volatility

Этот код — ядро ​​стратегии, логика очень простая, ничего сложного. А именно:

Шаг 1: Рассчитайте основные показатели

  • atr = ta.atr(atr_period):Рассчитать текущее значение ATR, этот индикатор отражает диапазон колебания цены.
  • atr_ma = ta.sma(atr, mean_period): Рассчитывает скользящее среднее значение ATR, представляющее «нормальный» уровень волатильности.
  • price_ma = ta.sma(close, mean_period): Рассчитайте скользящую среднюю цены, чтобы определить направление тренда.

Шаг 2: Определите условия срабатывания триггера

  • high_volatility = atr > atr_ma * atr_multiplier:Текущая волатильность аномально высока? Если текущий ATR превышает среднее значение ATR в 2 раза (значение по умолчанию), это считается «аномальной волатильностью».
  • price_decline = close < price_ma:Цена падает? Если текущая цена ниже скользящей средней, она считается падающей
  • long_condition = price_decline and high_volatility:Два условия выполняются одновременно, чтобы открыть больше

Воплощение основных идей
Эти строки кода отражают основную идею стратегии: мы не идем против тренда все время, а ждем момента, когда «цены падают, но волатильность внезапно взлетает». Этот момент часто означает, что происходят внезапные события или паника, и цены могут слишком остро отреагировать, предоставляя нам возможности для торговли против тренда.

img

Результаты бэктестинга

Настройка тестовой среды

  • Временной диапазон: 5 июня 2024 г. — 5 июня 2025 г. (данные за один год, без учета кредитного плеча)
  • Временные циклы:5-минутная K-линия
  • Тестовые сорта:ETH, XRP и другие криптовалютные контракты
  • Количество открытых позиций: Пирамидирование установлено на 5, по 2 лота каждый раз, до 10 лотов

Фактические результаты теста

Результаты бэктестинга XRP:

  • Относительно больше возможностей для открытия позиций (малые валюты имеют характер больших колебаний)
  • Стратегия принесла несколько хороших отскоков
  • Общая производительность оправдала ожидания

img
img

Результаты бэктестинга ETH:

  • Возможностей для открытия позиций относительно немного (основные монеты относительно стабильны)
  • Однако плата за обработку высока, что оказывает определенное влияние на доход.
  • Соответствует ожиданиям

img
img

Некоторые наблюдения и мысли

  1. **Для основных и относительно стабильных сортов возможностей для открытия позиций меньше.**Такие основные валюты, как ETH, редко соответствуют требованиям.

  2. У меньших валют больше возможностей. Такие валюты, как XRP, имеют более высокую волатильность и чаще вызывают определенные условия.

  3. **Более подходящим является 5-минутный цикл.**Более короткие периоды производят слишком много шума, более длинные периоды реагируют слишком медленно.

  4. **Плата за обработку — это расходы, которые нельзя игнорировать.**Комиссия за обработку существенно повлияет на конечную прибыль, особенно при высокочастотной торговле.

Заключительные мысли

Чему я научился

Воспроизведение этой стратегии научило меня нескольким важным вещам:

1. Простая логика часто более эффективна.
Основная логика этой стратегии очень проста, но она действительно может использовать некоторые возможности в определенных рыночных условиях. Сложность не означает эффективность, и иногда простые и прямые методы более практичны.

2. Оптимизация параметров — это техническая задача.
Одна и та же логика, но разные настройки параметров могут привести к совершенно разным результатам. Это требует множества тестов и глубокого понимания рынка.

3. Контроль рисков всегда на первом месте
Торговля против тренда изначально высокорискована, и необходимы строгие меры контроля риска. Управление рисками нельзя игнорировать только из-за успеха.

Ограничения стратегии

Благодаря этой практике я также увидел некоторые ограничения этой стратегии:

  1. Сильная зависимость от рыночной конъюнктуры: Вы можете столкнуться с постоянными потерями на одностороннем медвежьем рынке
  2. Высокая чувствительность параметров: Параметры необходимо корректировать в соответствии с различными сортами и рыночной средой.
  3. Не панацея.:Эффективен только при определенных рыночных условиях и должен сочетаться с другими стратегиями.

Последующие направления улучшения

Если мы хотим продолжить оптимизацию этой стратегии, я думаю, мы можем начать с нескольких направлений:

  1. Повышение суждения о рыночной среде: Сократите позиции или приостановите торговлю во время явного медвежьего тренда
  2. Изменение динамических параметров:Автоматически корректировать порог ATR в соответствии с характеристиками волатильности рынка
  3. Многовариантное сочетание:Распределение рисков и повышение стабильности стратегии
  4. Улучшенный механизм выхода:Объединение большего количества технических индикаторов для оптимизации времени выхода

Благодарности и резюме

Я очень благодарен автору оригинальной статьи за то, что он поделился своими идеями, что дало мне прекрасную возможность для обучения. Хотя моя реализация может быть грубой и есть расхождения с доработанной стратегией автора оригинальной статьи, этот процесс ручного воспроизведения позволил мне глубже понять стратегию возврата к среднему.

**Вот как изучается количественная торговля. Начните с имитации, думайте на практике и развивайтесь через неудачи.**Идеальной стратегии не существует, есть лишь процесс постепенного приближения к рыночной истине посредством постоянного обучения и совершенствования.

Друзьям, которые также изучают количественную торговлю, мой совет:

  • Читайте больше отличных стратегических идей по обмену
  • Воспроизведите это сами, не оставайтесь на теоретическом уровне.
  • Строго осуществлять контроль рисков
  • Сохраняйте обучающий и скептический настрой

Надеюсь, это исследование будет полезно всем. Рынок постоянно меняется, и наше обучение всегда в пути.

Источник стратегии:[Статистический арбитраж спреда волатильности], принцип раскрыт, процент выигрышей чрезвычайно высок! Преимущества поразительны!


Эта статья предназначена только для обучения и общения и не является инвестиционным советом. Количественная торговля рискованна, и вам следует быть осторожными при выходе на рынок.

pine
/*backtest start: 2025-01-01 00:00:00 end: 2025-06-24 00:00:00 period: 5m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","tradesMode":"1"}] args: [["v_input_float_4",0.5],["v_input_float_5",1.5],["RunMode",1,358374]] */ //@version=5 strategy(title="逆势短线均值回归策略", overlay=false, pyramiding=5) // ===== INPUT PARAMETERS ===== // 风险管理参数 risk_per_trade = input.float(2.0, title="单次交易风险 (%)", minval=0.1, maxval=10.0, step=0.1) max_position_size = input.float(10.0, title="最大仓位大小 (%)", minval=1.0, maxval=50.0, step=1.0) // ATR和波动率参数 atr_period = input.int(14, title="ATR周期", minval=5, maxval=50) atr_multiplier = input.float(2.0, title="ATR倍数阈值", minval=1.0, maxval=5.0, step=0.1) mean_period = input.int(20, title="均值回归周期", minval=5, maxval=100) // 止盈止损参数 use_stop_loss = input.bool(true, title="使用止损") stop_loss_pct = input.float(3.0, title="止损百分比 (%)", minval=0.5, maxval=10.0, step=0.1) use_take_profit = input.bool(true, title="使用止盈") take_profit_pct = input.float(6.0, title="止盈百分比 (%)", minval=1.0, maxval=20.0, step=0.1) // ATR回归平仓参数 use_atr_exit = input.bool(true, title="使用ATR回归平仓") atr_exit_threshold = input.float(1.0, title="ATR退出阈值", minval=0.5, maxval=3.0, step=0.1) // ===== CALCULATIONS ===== // ATR计算 atr = ta.atr(atr_period) atr_ma = ta.sma(atr, mean_period) // 价格均线 price_ma = ta.sma(close, mean_period) // 波动率判断 high_volatility = atr > atr_ma * atr_multiplier // 下跌判断 price_decline = close < price_ma // 价格距离均线的偏离度 price_deviation = math.abs(close - price_ma) / price_ma // ===== ENTRY CONDITIONS ===== // 开多条件:下跌行情 + 高波动率 long_condition = price_decline and high_volatility and strategy.position_size < max_position_size // ===== EXIT CONDITIONS ===== // ATR回归均值退出条件 atr_mean_reversion = atr <= atr_ma * atr_exit_threshold // 止损止盈条件 long_stop_loss = strategy.position_avg_price * (1 - stop_loss_pct / 100) long_take_profit = strategy.position_avg_price * (1 + take_profit_pct / 100) // ===== STRATEGY EXECUTION ===== // 开多仓 if long_condition strategy.entry("Long", strategy.long, qty=risk_per_trade, comment="逆势开多") // 平仓条件 if strategy.position_size > 0 // ATR回归平仓 if use_atr_exit and atr_mean_reversion strategy.close("Long", comment="ATR回归平仓") // 止损 if use_stop_loss and close <= long_stop_loss strategy.close("Long", comment="止损平仓") // 止盈 if use_take_profit and close >= long_take_profit strategy.close("Long", comment="止盈平仓") // ===== PLOTTING ===== // 绘制均线 plot(price_ma, color=color.blue, linewidth=2, title="价格均线", overlay=true) // 绘制ATR plotchar(high_volatility, "高波动", "▲", location.belowbar, color=color.red, size=size.small) // 绘制开仓信号 plotshape(long_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.normal, title="开多信号") // 绘制止盈止损线 if strategy.position_size > 0 plot(long_stop_loss, color=color.red, style=plot.style_linebr, linewidth=1, title="止损线") plot(long_take_profit, color=color.green, style=plot.style_linebr, linewidth=1, title="止盈线") // ATR指标显示 plot(atr, color=color.purple, title="ATR") plot(atr_ma, color=color.orange, title="ATR均线") // ===== ALERTS ===== // 开仓提醒 if long_condition alert("逆势开多信号触发", alert.freq_once_per_bar) // 平仓提醒 if strategy.position_size > 0 and atr_mean_reversion alert("ATR回归,建议平仓", alert.freq_once_per_bar)
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)