
이 전략은 헐 이동 평균 (Hull Moving Average, HMA) 의 교차 신호를 기반으로 거래한다. HMA는 고급 이동 평균 지표로, WMA의 특수한 조합을 가중화하여 뒤처짐을 줄이고, 더 빠르고 부드러운 시장 추세 신호를 제공합니다.
이 전략의 핵심은 다른 주기 HMA의 교차점을 활용하여 시장의 흐름을 포착하는 전환점이다. HMA의 계산 과정은 세 단계로 이루어져 있다: 먼저 반기 WMA를 계산하고, 그 다음에는 전체 주기 WMA를 계산하고, 마지막으로 이 두 WMA의 특수한 조합을 통해 원주기 WMA의 제곱근으로 한 주기를 다시 계산한다. 빠른 HMA (기본 9주기) 가 느린 HMA (기본 16주기) 를 상향으로 통과하면 다중 신호가 발생하며, 빠른 HMA가 느린 HMA를 하향으로 통과하면 공백 신호가 발생한다.
이것은 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)