Стратегия адаптивной волатильности

Автор:Чао Чжан, Дата: 2024-01-08 14:38:31
Тэги:

img

Обзор

Adaptive Volatility Breakout Strategy - это стратегия, следующая за трендом. Она определяет сигналы прорыва, когда цены сильно поднимаются выше определенного уровня, устанавливает длинные позиции и продолжает отслеживать восходящий тренд до получения прибыли на следующий день.

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

Принцип

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

Certain level = Close + k * (High - Low) 

где k - эмпирический коэффициент, оцениваемый в 0,6. Эта формула включает волатильность самых высоких и самых низких цен, что делает точки прорыва более гибкими для адаптации к колебаниям рынка.

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

Стоп-лосс устанавливается на половину от минимальной цены предыдущего дня и цены входа, что предотвращает увеличение потерь.

Анализ преимуществ

Преимущества этой стратегии включают:

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

  2. Своевременный вход, отслеживание тренда: ежедневный расчет сигналов прорыва позволяет своевременно выявлять новые тенденции для отслеживания шагов восходящего тренда цены.

  3. Правильный контроль рисков: разумное установление стоп-лосса эффективно контролирует однократные убытки.

Анализ рисков

Риски этой стратегии включают:

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

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

  3. Чрезмерный риск торговли: ежедневное открытие и закрытие позиций увеличивает частоту торговли и комиссионные.

Оптимизация

Стратегия может быть оптимизирована из следующих аспектов:

  1. Добавление мультипликатора: Добавление мультипликатора к формуле прорыва, правильное его уменьшение при росте волатильности рынка и увеличение его при стабилизации рынка, делая стратегию более эластичной.

  2. Продление периода хранения: продление периода хранения до 2 или 3 дней для отфильтрации краткосрочных ложных прорывов.

  3. Оптимизация стоп-лосса: установка стоп-лосса на более глубокие уровни поддержки, такие как нижняя полоса Боллинджера или закрытие предыдущего дня.

Заключение

Adaptive Volatility Breakout Strategy отслеживает тенденции, динамически отслеживая волатильность и ритмы цен. По сравнению с традиционными стратегиями прорыва, он более гибкий и способен улавливать движения цен.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Dicargo_Beam

//@version=5
strategy("Volatility Breakout Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, default_qty_value=100,process_orders_on_close=false)

k = input.float(0.6)


[o,h,l,c] = request.security(syminfo.tickerid,"D",[open,high,low,close])

lp = math.log(c[1])+(math.log(h[1])-math.log(l[1]))*k
_lp = math.pow(2.718,lp)

longcond = _lp < high
exit = hour==0 or  math.log(close) < (math.log(l[1])+lp)/2



plot(_lp,"Entry",color=color.yellow)
//plot(l,"Yesterday's Low")
plot((_lp+l[1])/2,"StopLoss",color=color.red)


strategy.entry("Long", strategy.long,comment = "Long", when = longcond and strategy.opentrades == 0)

strategy.close("Long", comment="Exit", when = exit)


var bg = 0
bg := if hour == 0
    bg + 1
else
    bg[1]

bgcolor(bg/2== math.floor(bg/2) ? color.new(color.blue,95):na)




Больше