이중 이동 평균 HullMA 교차 트렌드 전략은 이중 이동 평균의 교차를 기반으로 한 트렌드 추적 전략이다. 그것은 중장 이동 평균 WMA를 사용하여 이중 이동 평균 시스템을 구축하고, 그들이 교차할 때 거래 신호를 생성한다. 이 전략은 가격 돌파 판단과 함께 추가 필터링 신호를 생성한다.
이중 이동 평균 HullMA 교차 트렌드 전략은 3개의 다른 주기의 WMA 라인을 사용하여 wma1, wma2 및 wma3을 포함한다. wma2 및 wma3는 이중 이동 평균 시스템을 구축하는데, wma2 상에서 wma3을 통과할 때 낙향 신호를, 그리고 wma2 아래에서 wma3을 통과할 때 하향 신호를 제공한다.
이 전략은 추가적으로 헐 이동 평균을 사용하여 신호 판단을 강화한다. 구체적으로, 2 일 중화 이동 평균의 두 배 n2ma와 n 일 중화 이동 평균 nma의 차이를 계산하고, 차이의 값의 변화를 측정한다. 차이는 상승할 때만 낙관 신호가 유효하며, 차이는 떨어질 때만 낙관 신호가 유효하다는 것을 확인한다.
이 전략은 동시에 가격 판단과 결합된다. 가격이 전날 가격보다 높을 때만, 낙점 신호가 효과적으로 생성되어 더 많은 주문을 할 수 있다고 확인된다. 가격이 전날 가격보다 낮을 때만, 낙점 신호가 효과적으로 생성되어 더 많은 주문을 할 수 있다고 확인된다.
이중 이동 평균 HullMA 교차 트렌드 전략은 이중 이동 평균 교차와 가격 판단을 결합하여 가짜 신호를 효과적으로 제거 할 수 있습니다. 이것은 그것의 가장 큰 장점입니다. 또한, 이 전략은 세 개의 다른 기간의 이동 평균을 사용하여 다양한 수준의 트렌드를 포착하여 트렌드 초기에 시장에 진입 할 수 있습니다.
이중 이동 평균 HullMA 교차 트렌드 전략은 트렌드 추적 전략으로서, 평준화 시에는 더 많은 거래 횟수와 슬라이드 손실을 초래할 수 있다. 또한, 이중 이동 평균 교차 시스템은 너무 민감하여, 사이드웨이에서 잘못된 신호를 발산할 수 있다. 이동 평균 선변수를 적절히 조정하거나, 추가 필터링 조건을 추가하는 것이 권장된다.
이중 이동 평균 HullMA 교차 트렌드 전략은 다음과 같은 측면에서 최적화될 수 있다:
이동 평균 변수를 최적화하여 최적의 변수 조합을 찾습니다.
가짜 돌파구를 제거하기 위해 수송량이나 변동률과 같은 필터를 증가시킵니다.
다른 지표와 결합하여 보조 판단으로 신호 품질을 향상시킵니다.
동적으로 최적화 이동 평균 주기 변수
이중 이동 평균 HullMA 교차 트렌드 전략은 전체적으로 안정적이고 신뢰할 수 있는 트렌드 추적 전략이다. 이중 이동 평균 교차와 가격 판단을 결합하여 높은 품질의 신호를 생성한다. 파라미터를 최적화하고 필터를 추가함으로써 잘못된 신호를 더욱 줄여서 더 나은 전략 성능을 얻을 수 있다. 이 전략은 중장선 트렌드를 포착하는 데 적합하며, 양적 거래에 좋은 선택이다.
/*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)