Это простая стратегия прорыва, которая использует разницу между двумя различными EMA с нулевым задержкой для отслеживания подъемного или нисходящего импульса инструмента.
Для получения разницы волатильности стратегия использует два специально рассчитанных показателя EMA, как показано в формулах ниже:
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
Разница мгновенно реагирует на резкие изменения цен без задержек.
Когда диф пересекает верхнюю полосу Боллинджера, запускается сигнал входа. Когда диф пересекает нижнюю полосу Боллинджера, запускается сигнал выхода. Направление базовой EMA определяет длинный или короткий.
Самое большое преимущество этой стратегии заключается в ее быстрой реакции на сигналы прорыва без задержки. Это достигается с использованием двух специально рассчитанных нулевых задержек EMA. Это позволяет стратегии мгновенно улавливать события прорыва цен и входить в ранние периоды формирующихся тенденций.
Еще одним преимуществом является простота этой стратегии. У нее есть только один параметр lx. Меньше параметров облегчает оптимизацию и снижает риск перенапряжения.
Основным риском этой стратегии является возможный ложный прорыв сигналов. Последующие ложные прорывы могут произойти в течение диапазонов периодов. Чтобы смягчить этот риск, мы можем увеличить множитель полосы Боллинджера, чтобы сделать сигналы более стабильными.
Еще один риск - частые небольшие выигрыши/убытки на нестабильных рынках.Это можно уменьшить путем корректировки механизмов выхода, например, путем установки уровня стоп-лосса или уровня цены прибыли.
Ниже приведены некоторые направления, по которым эта стратегия может быть оптимизирована:
Добавить индикаторы фильтров для проверки входных сигналов и уменьшения ложных сигналов.
Включите стоп-лосс и прибыль, чтобы лучше управлять сделками.
Поищите подтверждение объема торговли, чтобы избежать ложных прорывов без обязательства по объему.
Принять адаптивные полосы Боллинджера для корректировки параметров на основе волатильности рынка.
Динамически оптимизировать параметры на основе машинного обучения.
В целом, эта стратегия EMA с нулевым отставанием волатильности быстро улавливает динамику цен, используя специально рассчитанные 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")