
この戦略は単純な突破策であり,二つの異なるゼロ時遅れのEMAの差値を用いて,対象物の上昇または下降の勢いを追跡する.差値が一定数の倍数を超えると,基本EMAの方向に応じて多行または空行信号が生成される.
この策略は,波動率差を計算するために2つの特殊なタイプのEMA指標を使用します.これらのEMA指標の計算式は以下のとおりです.
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
この指数は,価格の大幅な変動に即座に反応し,遅滞しません.
バリン帯を上線する際のdifを超えると入場信号が生成され,ブリン帯中線より下線すると出場信号が生成される.基本EMA方向は多行または空行方向を決定する.
この策略の最大の利点は,突破信号を遅滞なく迅速に捕捉することです.これは,2つの特殊なゼロ時遅延EMAを計算することによって実現されます.これは,策略が価格突破事件に即座に反応できるようにし,トレンド形成の初期により高い効率で捕捉することができます.
もう1つの優点は,この策略は1つのパラメータ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")