この戦略は,ゼロタイムラグのEMAとHull EMAの組み合わせを使用してトレンド追跡を行う.ゼロタイムラグのEMAは,通常のEMAの遅延をなくし,Hull EMAは価格曲線を平坦化します.両者の組み合わせは,トレンドの動きをより正確に捉え,低リスクのトレンド追跡取引を実現します.
ゼロタイム・ラグの EMA を計算します.
EMA1 = ema(close, Period) EMA2 = ema(EMA1, Period) Difference = EMA1 - EMA2 ZeroLagEMA = EMA1 + Difference
ゼロLagEMAは,ゼロタイムラグデッドのEMAである.これは,通常のEMAのラグデッドの問題を取り除く.
Hull EMAの平滑後の曲線を計算する.
n2ma = 2*wma(ZeroLagEMA, round(S_period/2)) nma = wma(ZeroLagEMA, S_period) n1 = wma(n2ma - nma, sqn)
最後に,現在のHull EMA (n1) と前期のHull EMA (n2) の大きさの関係を計算し,トレンドの方向を判断し,取引戦略を策定する.
この戦略の最大の利点は,トレンドの方向を正確に捉えられる点にある.
ゼロタイム・ラグ EMAは,通常のEMAのラグの問題を取り除き,価格変化をより迅速に捉えることができる.
Hull EMAは,価格を二重平滑化して,一部のノイズをフィルターし,キャプチャの傾向はより明確である.
EMAまたはHull EMAを単独で使用するよりも,両者の組み合わせは,それぞれの優位性を発揮し,戦略をより正確で信頼性のあるものにします.
この戦略には以下のリスクがあります.
PeriodとS_periodのパラメータが正しく設定されていないため,戦略が市場反応に無感になり,取引のタイミングを逃す可能性があります.
震動状況では,EMAとHull EMAが交差信号を多く発生し,警戒偽突破が必要である.
価格が一夜にして急激に上昇した状況に 効果的に対処できない.
したがって,パラメータ設定を慎重にテストし,指数信号を慎重に観察し,価格の飛躍のリスクを防ぐ必要があります.
この戦略は以下の点で最適化できます.
異なる市場の異なる周期下でのパラメータ最適化組み合わせをテストし,さまざまな状況に戦略がより良く適応できるようにする.
KDJ,MACDなどの偽突破信号をフィルタリングする他の指標と組み合わせて,戦略の安定性を高める.
単一損失を抑えるためのストップ・ロスの策略を増やす.
入場タイミングを最適化して,戦略の勝率をさらに向上させる.例えば,トレンドの方向を組み合わせて,逆転の開場を避ける.
この戦略は,ゼロ時間遅れのHull EMAの組み合わせを使用し,市場動向を正確かつ敏捷に捉え,低リスクの方法でトレンド追跡取引を行う.パラメータ最適化,指標フィルタリング,ストップ損失などの手段によって戦略の安定性をさらに高めることができます.全体的に,この戦略は,シンプルで実用的で,トレンド通貨ペアや株式指数取引に適しています.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Zero Lag EMA combined with Hull moving average for smoothing purposes.
// author: email: [email protected]
strategy("Ujanja", overlay=true)
Period = input(title="Period",defval=30, minval=1)
S_period=input(title="Smoother Period",defval=176)
EMA1= ema(close,Period)
EMA2= ema(EMA1,Period)
Difference= EMA1 - EMA2
ZeroLagEMA= EMA1 + Difference
n2ma=2*wma(ZeroLagEMA,round(S_period/2))
nma=wma(ZeroLagEMA,S_period)
diff=n2ma-nma
sqn=round(sqrt(S_period))
n2ma1=2*wma(ZeroLagEMA[1],round(S_period/2))
nma1=wma(ZeroLagEMA[1],S_period)
diff1=n2ma1-nma1
sqn1=round(sqrt(S_period))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
longCondition = n1>n2
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = longCondition != true
if (shortCondition)
strategy.entry("Short", strategy.short)