이 전략은 헐 이동 평균 (Hull Moving Average, HMA) 의 크로스오버 신호를 기반으로 합니다. 서로 다른 기간을 가진 두 개의 HMA 라인이 서로 횡단할 때 거래 신호를 생성합니다. HMA는 가중 이동 평균 (WMA) 의 특별한 조합을 통해 지연을 줄여 더 빠르고 부드러운 시장 트렌드 신호를 제공하는 고급 이동 평균 지표입니다.
전략의 핵심은 다른 기간의 HMA 크로스오버를 사용하여 시장 트렌드 역전 지점을 캡처하는 데 있습니다. HMA 계산은 세 단계로 이루어집니다: 먼저 반기 WMA를 계산하고, 그 다음 전체 기간 WMA를 계산하고, 마지막으로 첫 두 WMA의 특수 조합을 사용하여 원래 기간의 제곱근에 해당하는 기간을 가진 다른 WMA를 계산합니다. 빠른 HMA (전환 9 기간) 이 느린 HMA (전환 16 기간) 을 넘을 때 구매 신호가 생성되며, 빠른 HMA가 느린 HMA (전환 16 기간) 을 넘을 때 판매 신호가 생성됩니다.
이것은 HMA 크로스오버를 기반으로 한 양적 거래 전략으로, 전통적인 이동 평균의 지연을 줄임으로써 보다 적절한 거래 신호를 제공합니다. 전략 설계는 간결하고 이해하기 쉽고 구현하기 쉽지만 실질적인 응용 분야에서 시장 환경 적응력과 위험 관리에 대한 관심이 필요합니다. 지속적인 최적화 및 개선으로이 전략은 견고한 거래 시스템으로 변할 잠재력을 가지고 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Hull Moving Average Crossover", overlay=true) fastLength = input.int(9, "Fast HMA Length", minval=1) slowLength = input.int(16, "Slow HMA Length", minval=1) hma(src, length) => wma1 = ta.wma(src, length / 2) wma2 = ta.wma(src, length) ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length))) fastHMA = hma(close, fastLength) slowHMA = hma(close, slowLength) plot(fastHMA, color=color.blue, title="Fast HMA") plot(slowHMA, color=color.red, title="Slow HMA") longCondition = ta.crossover(fastHMA, slowHMA) shortCondition = ta.crossunder(fastHMA, slowHMA) if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)