Стратегия мгновенного прорыва волатильности EMA Trend


Дата создания: 2024-01-15 12:00:25 Последнее изменение: 2024-01-15 12:00:25
Копировать: 0 Количество просмотров: 689
1
Подписаться
1617
Подписчики

Стратегия мгновенного прорыва волатильности EMA Trend

Обзор

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

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

Эта стратегия использует два особых типа показателей EMA для расчета разрыва в волатильности. Формула расчета для обоих показателей EMA:

hJumper = math.max(src,ta.ema(src,lx)) 

lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

Показатель сразу реагирует на значительные колебания цен, без задержек.

Когда dif превышает среднюю траекторию Блин-пояса, создается сигнал входа; когда dif ниже средней траектории Блин-пояса, создается сигнал выхода. Основная EMA направление решает, сделать лишнее или сделать пустое направление.

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

Самым большим преимуществом этой стратегии является то, что она быстро и без задержек улавливает сигналы прорыва. Это достигается путем расчета двух специальных нулевых задержечных ЭМА. Это позволяет стратегии мгновенно реагировать на события ценового прорыва, что позволяет более эффективно улавливать их в начале формирования тренда.

Еще одним преимуществом является то, что стратегия использует только один параметр lx. Меньшее количество параметров позволяет легко настраивать стратегию, а также снижает риск переоптимизации.

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

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

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

Направление оптимизации

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

  1. В сочетании с другими показателями фильтрация входного сигнала снижает вероятность ложного прорыва

  2. Увеличение механизма сдерживания убытков и управления рисками

  3. Введение подтверждения количества сделок, чтобы избежать многочисленных ложных сигналов.

  4. Использование адаптивных параметров по Беринговой полосе с корректировкой параметров в зависимости от рыночных колебаний

  5. Параметры стратегии динамической оптимизации на основе методов машинного обучения

Подвести итог

Стратегия EMA с мгновенным прорывом в волатильности имеет преимущества быстрого реагирования, простоты параметров и других преимуществ. Следующие шаги могут быть оптимизированы с точки зрения фильтрации сигналов, остановки убытков и подтверждения объема сделки, что позволяет стратегии стабильно работать в разных рыночных условиях.

Исходный код стратегии
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)

tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
 " exposes you to more risk but potentially could generate larger returns."

src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)

plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")

sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]

plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)

if enterLong
    strategy.entry("Long",strategy.long)
if enterShort
    strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
    strategy.close("Long")
    strategy.close("Short")