더블 헐 이동 평균 전략


생성 날짜: 2023-09-15 16:39:48 마지막으로 수정됨: 2023-09-15 16:43:45
복사: 0 클릭수: 1525
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

전략 원칙:

이중 HULL 이동 평균 전략은 알란 헐 (Alan HULL) 이 만든 HULL 이동 평균 지표에 기반한 거래 전략이다. 이 전략은 두 개의 HULL 이동 평균, 즉 장기선과 단기선,을 사용하여 구매와 판매의 시기를 판단한다. HULL 이동 평균은 가격에 가중된 평균을 사용하여 지연을 줄이는 개선된 이동 평균이다.

HULL 이동 평균의 계산 공식은 다음과 같다:

HmaL = wma(2*wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2*wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))

이 중 PDL는 장기기기를, PDS는 단기기를 의미한다. 전략은 단기선과 장기선의 수치를 비교하여 구매 및 판매 조건을 판단한다.

우위 분석:

  1. 덜 지연: HULL 이동 평균은 전통적인 이동 평균에 비해 덜 지연성을 가지고 있으며, 가격 추세 변화에 더 빨리 반응하여 더 정확한 매매 신호를 제공합니다.
  2. 간단하고 이해하기 쉽다: 이 전략은 두 개의 이동 평균을 사용하여 상호 판단을 하고, 논리는 비교적 간단하고 이해하기 쉽고 구현하기 쉽다.
  3. 고도로 사용자 정의: 전략의 주기적 매개 변수는 특정 시장과 거래 유형에 따라 조정 될 수 있으므로 전략이 다른 거래 환경에 더 적합합니다.

위험 분석:

  1. 시장의 흔들림: 시장의 흔들림 단계에서, 이동 평균은 자주 교차 할 수 있으며, 이로 인해 자주 구매 신호가 발생하며, 잘못된 신호가 발생하여 거래 빈도 및 손실이 발생할 수 있습니다.
  2. 슬라이드 포인트 및 지연: 전략의 실행은 슬라이드 포인트 및 지연에 영향을 받으며, 특히 고주파 거래에서는 실행 가격과 예상 가격에 일치하지 않아 거래 결과에 영향을 줄 수 있습니다.
  3. 단일 지표 의존: 이 전략은 HULL 이동 평균 지표에만 의존하며, 다른 기술 지표 또는 시장 정보와 결합되지 않아 시장의 변화와 추세를 완전히 포착 할 수 없습니다.

결론:

이중 HULL 이동 평균 전략은 HULL 이동 평균을 기반으로 한 거래 전략으로, 단기선과 장기선의 교차점을 비교하여 구매와 판매의 시간을 판단한다. 이 전략은 지연성을 줄이고, 간단하고 이해하기 쉽고 고도로 사용자 정의 할 수 있는 장점이 있지만, 시장의 흔들림, 미끄러짐 및 지연 및 단일 지표 의존의 위험이 있습니다. 실제 응용에서는 특정 상황에 따라 전략을 조정하고 최적화 할 수 있으며, 다른 기술 지표와 위험 관리 방법과 결합하여 거래의 성공률과 수익성을 높일 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
// 
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod",  defval=8, minval=1,maxval=500)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)

Buy = HmaS > HmaL
Sell = HmaS < HmaL

strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)