
Стратегия адаптивного динамического прорыва - это стратегия отслеживания тенденции. Она определяет сильные прорывные сигналы, которые превышают определенный уровень прорыва, создает многоочередные позиции, продолжает отслеживать тенденцию к росту и прибыльно завершается на следующий день.
Эта стратегия была предложена Ларри Р. Уильямсом (Larry R. Williams), известным фьючерсным и фондовым трейдером. Эта стратегия пытается захватить точки прорыва цены, которые часто предвещают перемены.
Центральным показателем стратегии является определенный горизонтальный уровень ртути, который рассчитывается по формуле:
一定水平 = 收盘价 + k * (最高价 - 最低价)
где k - коэффициент опыта, равный 0,6. В формулу добавлены динамические компоненты максимальной и минимальной цены, что делает точки прорыва более гибкими и адаптируются к повторяемости рынка.
Когда максимальная цена в тот день превышает определенный уровень отсчета, это указывает на прорыв цены, и в этот момент стратегия создает многоочередные позиции. На следующий день, когда открывается торговля, все позиции закрываются.
Уровень стоп-лоска устанавливается на минимальную цену за день и половину от цены входа, чтобы предотвратить увеличение убытков.
Эта стратегия имеет следующие преимущества:
Захватывание динамики: в стратегию включены точки прорыва, рассчитывающие максимальные и минимальные цены, что делает сигналы прорыва более гибкими и способными улавливать ритм изменения цены.
Своевременное вхождение в рынок, отслеживание тенденций: ежедневные вычисления сигналов прорыва позволяют своевременно идентифицировать новые тенденции и отслеживать рост цен.
Контроль риска: установление разумного стоп-позиции позволяет эффективно контролировать убытки.
Также существуют следующие риски:
Риск прорыва: цена не обязательно будет расти в течение длительного периода, но может быть ложным прорывом в краткосрочной перспективе. Это может привести к убыткам.
Риск экстремальных ситуаций: в экстремальных ситуациях, таких как катастрофы, внезапные события, цены могут расколоться и взлететь, в результате чего остановка будет вызвана большим количеством потерь.
Риск чрезмерной торговли: ежедневное создание складов и складов увеличивает частоту торгов и увеличивает нагрузку на комиссионные.
Эта стратегия может быть оптимизирована с точки зрения:
Добавление множителя: Добавление множителя в формулу прорыва, который уменьшается, когда рынок колеблется, и увеличивается, когда рынок стабилен, что делает стратегию более гибкой.
Продление срока хранения: продление срока хранения до 2 или 3 дней, отфильтровывая краткосрочные ложные прорывы.
Оптимизация стоп-позиции: настройка стоп-позиции на более глубокие позиции поддержки, такие как нижний предел Брин-полосы, цена закрытия на предыдущий день и т. д.
Адаптивная динамическая стратегия прорыва позволяет отслеживать тенденции, отслеживая динамику и ритм цены в режиме реального времени. По сравнению с традиционной стратегией прорыва, она более гибкая и сдерживающая. Однако следует учитывать риски, которые могут быть преодолены при крайних обстоятельствах.
/*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)