다중 기간 헐 이동 평균 교차 전략

HMA WMA MA
생성 날짜: 2024-07-29 14:44:25 마지막으로 수정됨: 2024-07-29 14:44:25
복사: 0 클릭수: 750
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 기간 헐 이동 평균 교차 전략

개요

다주기 헐 이동 평균 (Hull Moving Average, HMA) 교차 전략은 헐 이동 평균 (Hull Moving Average, HMA) 을 기반으로 한 정량 거래 전략이다. 이 전략은 시장의 흐름을 식별하고 거래 신호를 생성하기 위해 다양한 시간 주기에서 HMA 지표를 사용합니다. 전략의 핵심은 단기 HMA와 중기 HMA의 교차를 관찰하여 입출 및 출퇴근 시간을 결정하는 것이며, 장기 HMA를 전체적인 추세에 대한 참고 자료로 사용합니다.

전략 원칙

이 전략의 핵심 원칙은 헐 이동 평균 (Hull Moving Average, HMA) 의 빠른 응답 특성과 다중 주기 분석의 장점을 이용하는 것이다. 구체적으로 다음과 같이 구현된다:

  1. 세 개의 다른 주기에서 HMA를 계산합니다.

    • HMA 1: 25분 주기
    • HMA 2: 75분 주기
    • HMA 3: 125분 주기
  2. 거래 신호 생성:

    • 다중 신호: HMA 1에 HMA 2를 착용할 때
    • 공백 신호: HMA 1 아래 HMA 2를 통과할 때
  3. HMA 3은 장기적인 트렌드 지표로서, 신호 생성에 직접적으로 참여하지는 않지만, 전체 시장의 흐름을 판단하는데 사용될 수 있다.

  4. 전략은 매 거래의 금액으로 고정 비율의 계정 이자 ((10%) 를 사용합니다.

  5. PlotShape 함수를 사용하여 그래프에서 구매 및 판매 신호를 표시하여 시각화를 강화합니다.

  6. 장단점 경보 조건이 설정되어 실시간으로 시장 기회를 모니터링 할 수 있습니다.

전략적 이점

  1. 낮은 지연성: Hull 이동 평균은 자체적으로 낮은 지연성을 가지고 있으며, 전통적인 이동 평균보다 가격 변화에 더 빨리 반응한다.

  2. 다주기 분석: 다양한 시간 주기의 HMA를 결합하여 전략은 단기, 중기 및 장기 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시 동시

  3. 노이즈 필터링: 더 긴 주기 (75분과 125분) 를 사용하는 HMA는 짧은 시장 노이즈를 효과적으로 필터링하여 거짓 신호를 줄일 수 있다.

  4. 유연성: 전략은 사용자가 각 HMA의 길이와 데이터 소스를 사용자 정의하여 다른 시장 환경과 거래 스타일에 맞게 조정할 수 있습니다.

  5. 리스크 관리: 계좌의 적당금의 고정 비율을 사용하여 거래하는 것은 리스크 을 제어하는 데 도움이 됩니다.

  6. 시각화: 차트 상에서 직관적으로 거래 신호를 표시하여 거래자가 전략 논리를 더 잘 이해하고 검증할 수 있도록 도와줍니다.

  7. 실시간 경보: 거래 신호 경보를 설정하여 거래자가 시장 기회를 신속하게 파악할 수 있습니다.

전략적 위험

  1. 트렌드 반전 위험: 강한 트렌드 시장에서, 전략은 종종 신호를 생성하여 과도한 거래와 불필요한 비용을 초래할 수 있습니다.

  2. 수평 시장 위험: 명백한 추세가 없는 시장에서 HMA 교차는 많은 가짜 신호를 생성하여 전략의 성능에 영향을 줄 수 있습니다.

  3. 매개 변수 감수성: 전략 성능은 선택된 HMA 길이와 시간 주기에 크게 의존하며, 다른 매개 변수 조합은 매우 다른 결과를 초래할 수 있다.

  4. 슬립 포인트 및 거래 비용: 자주 거래하면 특히 유동성이 낮은 시장에서 높은 슬립 포인트 및 거래 비용이 발생할 수 있습니다.

  5. 기술 의존성: 전략은 기술 지표에 전적으로 의존하고 기본 요소를 무시하며 중요한 뉴스 또는 사건이 발생했을 때 좋지 않을 수 있습니다.

  6. 과도한 적합성 위험: 역사적인 데이터에 대해 지나치게 최적화 된 변수가 있으면 전략이 실판 거래에서 좋지 않은 성능을 발휘할 수 있습니다.

전략 최적화 방향

  1. 트렌드 필터를 도입: HMA 3를 트렌드 필터로 사용하여 장기적인 트렌드 방향으로만 포지션을 개시하여 역동적인 거래를 줄이는 것을 고려할 수 있습니다.

  2. 동적 조정 파라미터: 시장의 동적 변동에 따라 HMA의 길이와 시간 주기를 조정하는 적응 메커니즘을 구현하여 다른 시장 환경에 적응합니다.

  3. 스톱 및 스톱 메커니즘을 늘립니다. ATR 또는 고정 비율에 기반한 스톱 및 스톱 규칙을 도입하여 위험을 더 잘 제어하고 수익을 잠금합니다.

  4. 포지션 관리를 최적화: 더 복잡한 포지션 관리 전략, 예를 들어 변동성이나 계좌 적자를 기반으로 포지션 크기를 동적으로 조정하는 것을 구현합니다.

  5. 다른 기술 지표 통합: RSI, MACD와 같은 다른 기술 지표와 결합하여 더 포괄적인 입출장 조건을 구축한다.

  6. 회수 및 최적화: 다양한 시장 조건과 시간 프레임에 따라 최적의 파라미터 조합을 찾기 위해 광범위한 회수를 수행합니다.

  7. 기본 요소를 고려: 중요한 경제 데이터 발표 또는 회사 이벤트에 대한 고려를 도입하고 특정 기간에 전략 행동을 조정하십시오.

  8. 부분 포지션 거래를 실현: 전략이 신호 강도에 따라 부분 포지션 거래를 수행하는 것을 허용하고, 모든 포지션을 매번 출입하지 않는다.

요약하다

다중주기 헐 이동 평균 교차 전략은 헐 이동 평균의 신속한 반응 특성과 다중주기 분석의 장점을 결합한 양적 거래 전략이다. 다양한 시간 주기의 HMA 간의 교차 관계를 관찰함으로써 전략은 시장 추세를 효과적으로 식별하고 거래 신호를 생성할 수 있다. 그것의 장점은 전통적인 이동 평균의 지연성을 줄이는 것과 동시에 다중주기 분석을 통해 신호의 신뢰성을 높이는 데 있다. 그러나, 전략은 또한 트렌드 반전, 변수 민감성 등의 위험에 직면한다.

전략의 안정성과 수익성을 더욱 향상시키기 위해, 트렌드 필터, 동적 파라미터 조정, 포지션 관리를 최적화하는 등의 방향으로 개선할 수 있습니다. 또한, 다른 기술 지표와 기본 요소와 결합하여 더 포괄적이고 다양한 시장 환경에 더 적합한 거래 시스템을 구축 할 수 있습니다.

전체적으로, 이 전략은 트레이더에게 잠재적인 프레임워크를 제공하며, 지속적인 최적화와 개선을 통해 강력한 양적 거래 도구가 될 수 있습니다. 그러나 실제 적용에서, 트레이더는 여전히 시장 위험을 신중하게 평가하고 개인 위험 수용력과 거래 목표에 따라 적절하게 조정해야합니다.

전략 소스 코드
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='Hull v2 Strategy', shorttitle='V2 HMA', overlay=true)

// Hull MA 1
length_1 = input.int(20, minval=1, title="Length 1")
src_1 = input(close, title='Source 1')
timeframe_1 = input.timeframe('25')
hullma_1 = request.security(syminfo.tickerid, timeframe_1, ta.wma(2 * ta.wma(src_1, length_1 / 2) - ta.wma(src_1, length_1), math.round(math.sqrt(length_1))))
plot(hullma_1, title='Hull MA 1', color=color.blue, linewidth=2)

// Hull MA 2
length_2 = input.int(20, minval=1, title="Length 2")
src_2 = input(close, title='Source 2')
timeframe_2 = input.timeframe('75')
hullma_2 = request.security(syminfo.tickerid, timeframe_2, ta.wma(2 * ta.wma(src_2, length_2 / 2) - ta.wma(src_2, length_2), math.round(math.sqrt(length_2))))
plot(hullma_2, title='Hull MA 2', color=color.red, linewidth=2)

// Hull MA 3
length_3 = input.int(20, minval=1, title="Length 3")
src_3 = input(close, title='Source 3')
timeframe_3 = input.timeframe('125')
hullma_3 = request.security(syminfo.tickerid, timeframe_3, ta.wma(2 * ta.wma(src_3, length_3 / 2) - ta.wma(src_3, length_3), math.round(math.sqrt(length_3))))
plot(hullma_3, title='Hull MA 3', color=color.green, linewidth=2)

// Cross Strategy
longCondition = ta.crossover(hullma_1, hullma_2)
shortCondition = ta.crossunder(hullma_1, hullma_2)
// Entry and Exit
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Plot Buy/Sell Signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title='Buy Signal', text='BUY')
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title='Sell Signal', text='SELL')

// Alerts
alertcondition(longCondition, title='Long Alert', message='Long Condition Met')
alertcondition(shortCondition, title='Short Alert', message='Short Condition Met')