双移動平均 HullMA交差トレンド戦略は,双移動平均の交差に基づくトレンド追跡戦略である.それは,加重移動平均WMAを使用して双移動平均システムを構築し,それらの交差時に取引信号を生成する.この戦略は,価格の突破判断を組み合わせて,さらにフィルター信号を生成する.
二重移動平均 HullMA交差トレンド戦略は,wma1,wma2およびwma3を含む3つの異なる周期のWMA線を使用する.wma2およびwma3は,wma3を横切るときに看板信号としてwma2を横切るときに看板信号として,wma3を横切るときに下向き信号としてwma3を横切るときに下向き信号としてwma2を横切るときに,wma3を横切るときに下向き信号として構築する.wma1は補助判断線である.
この戦略は,Hull移動平均を使用して信号判断をさらに強化する.具体的には,2日間の加重移動平均の2倍n2maとn日間の加重移動平均nmaの差値を計算し,差値の値の変化を測定する.差値が上昇した場合のみ,看板信号が有効であると確認し,差値が低下した場合のみ,看板信号が有効であると確認する.
この戦略は同時に価格判定を組み合わせている. 価格が前日の価格より高い場合にのみ,看板シグナルが有効に生成されたことを確認し,多項を行う. 価格が前日の価格より低い場合にのみ,看板シグナルが有効に生成されたことを確認し,空調を行う.
双移動平均のHullMA交差トレンド戦略は,双移動平均の交差と価格判断を組み合わせて,偽信号を効果的に除することができる.これは,その最大の利点である.さらに,この戦略は,3つの異なる周期の移動平均を使用して,異なるレベルのトレンドを捕捉し,トレンドの初期に市場に参入することができる.その止損清算方法も,比較的安定し,信頼性がある.
双移動平均HullMA交差トレンド戦略は,トレンドフォロー戦略として,収支状況で取引回数や滑点損失が多く発生する傾向があります.さらに,双移動平均線交差システムは過度に敏感であり,サイドウェイで誤った信号を発信する可能性があります.移動平均線パラメータを適切に調整するか,追加のフィルタリング条件を追加することをお勧めします.
双移動平均HullMAの交差トレンド戦略は,以下のいくつかの点で最適化できます.
移動平均のパラメータを最適化して,最適なパラメータの組み合わせを見つける
偽突破を排除するために,交差量や波動率などのフィルターを増やす
他の指標と組み合わせて,補助判断として,信号の質を向上させる
動的最適化移動平均周期パラメータ
双移動平均ハルMA交差トレンドストラテジーは,全体的に,安定した信頼性の高いトレンド追跡ストラテジックである.双移動平均交差と価格判断を組み合わせて,高品質の信号を生成する.パラメータの最適化とフィルターの追加により,誤信号をさらに削減して,より良い戦略のパフォーマンスを得ることができる.このストラテジーは,中長線トレンドを捕捉するのに適しており,取引を量化するための良い選択である.
/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
strategy.close("Short")
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
strategy.entry("Short",strategy.short)