리소스 로딩... 로딩...

수량적 거래 전략 수정된 헬스 이동 평균과 Ichimoku Kinko Hyo를 기반으로

저자:차오장, 날짜: 2024-04-28 13:39:00
태그:HMAIKHSWMA

img

전반적인 설명

이 전략은 두 가지 기술 지표: 수정된 Hull Moving Average (HMA) 와 Ichimoku Kinko Hyo (IKHS) 를 결합하여 중장기 시장 트렌드를 파악하는 것을 목표로 한다. 주요 아이디어는 HMA와 IKHS의 Kijun Sen (기본선) 사이의 교차 신호를 활용하는 한편, IKHS의 Kumo (구름) 을 필터링 조건으로 사용하여 트렌드 방향을 결정하고 거래 결정을 내리는 것이다.

전략 원칙

  1. 수정된 Hull Moving Average (HMA) 를 계산합니다.
    • 가중 이동 평균 (WMA) 을 계산하고 수정된 HMA를 얻기 위해 이중 평형을 적용합니다.
  2. 이치모쿠 킨코 히오의 다양한 지표를 계산하세요
    • 텐칸 센 (변환선), 키준 센 (기반선), 센코 스판 A (전도 스판 A), 센코 스판 B (전도 스판 B) 을 계산합니다.
  3. 거래 신호를 생성
    • HMA가 Kijun Sen 위에 넘어가고 닫기 가격이 Kumo 위에 넘어가면 긴 신호를 생성합니다.
    • HMA가 Kijun Sen 아래로 넘어가고 닫기 가격이 Kumo 아래로 넘어가면 짧은 신호를 생성합니다.
  4. 거래 실행
    • 긴 신호 또는 짧은 신호에 기초한 대응 거래 거래를 수행
  5. 출구 거래
    • HMA가 반대 방향으로 키준 센을 통과하면 현재 위치에서 빠져 나가

전략적 장점

  1. 시장 동향을 더 잘 파악하기 위해 두 가지 효과적인 트렌드 추적 지표인 HMA와 IKHS를 결합합니다.
  2. IKHS의 Kumo를 필터링 조건으로 사용하여 잘못된 신호를 효과적으로 줄이고 거래의 승률을 향상시킵니다.
  3. 변경된 HMA는 전통적인 이동 평균에 비해 더 빠른 응답 속도와 더 낮은 지연을 가지고 있으며 시장 변화에 대한 신속한 반영을 가능하게합니다.
  4. 전략 논리는 명확하고, 이해하기 쉽고, 구현하기 쉽고, 다양한 시장과 시간 프레임에 적합합니다

전략 위험

  1. 시장 변동이나 불분명한 추세에서 전략은 더 많은 잘못된 신호를 생성하여 빈번한 거래 및 자본 손실로 이어질 수 있습니다.
  2. 전략의 매개 변수 설정은 거래 결과에 상당한 영향을 미치며, 다른 매개 변수 조합은 다른 성과를 가져올 수 있습니다.
  3. 전략은 시장 비상사태와 비합리적인 행동을 고려하지 않으며 극단적인 시장 조건에서 더 큰 위험에 직면 할 수 있습니다.

전략 최적화 방향

  1. 시그널의 신뢰성 및 안정성을 향상시키기 위해 다른 기술 지표 또는 시장 정서 지표를 도입합니다.
  2. 최적의 매개 변수 조합을 찾기 위해 기계 학습이나 유전 알고리즘을 사용하는 것과 같은 전략 매개 변수를 최적화합니다.
  3. 전략의 위험 노출을 제어하기 위해 Stop Loss 및 Take Profit 레벨을 설정, 포지션 사이즈 등 위험 관리 모듈을 추가하는 것을 고려하십시오.
  4. 다른 시장과 시간 프레임의 특성을 기반으로 전략에 대한 목표 조정 및 최적화

요약

이 전략은 수정된 헐 이동평균과 이치모쿠 킨코 히오를 결합하여 상대적으로 안정적인 트렌드를 따르는 거래 시스템을 구축합니다. 전략 논리는 명확하고 구현하기 쉽고 또한 특정 장점이 있습니다. 그러나 전략의 성능은 여전히 시장 조건과 매개 변수 설정에 의해 영향을 받으며 추가 최적화 및 개선이 필요합니다. 실제 응용에서는 더 나은 거래 결과를 얻기 위해 특정 시장 특성과 위험 선호도에 따라 적절한 조정 및 관리를 수행해야합니다.


/*backtest
start: 2024-04-20 00:00:00
end: 2024-04-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull MA_X + Ichimoku Kinko Hyo Strategy", shorttitle="HMX+IKHS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)

// Hull Moving Average Parameters
keh = input(12, title="Double HullMA")
n2ma = 2 * wma(close, round(keh/2)) - wma(close, keh)
sqn = round(sqrt(keh))
hullMA = wma(n2ma, sqn)

// Ichimoku Kinko Hyo Parameters
tenkanSenPeriods = input(9, title="Tenkan Sen Periods")
kijunSenPeriods = input(26, title="Kijun Sen Periods")
senkouSpanBPeriods = input(52, title="Senkou Span B Periods")
displacement = input(26, title="Displacement")

// Ichimoku Calculations
highestHigh = highest(high, max(tenkanSenPeriods, kijunSenPeriods))
lowestLow = lowest(low, max(tenkanSenPeriods, kijunSenPeriods))
tenkanSen = (highest(high, tenkanSenPeriods) + lowest(low, tenkanSenPeriods)) / 2
kijunSen = (highestHigh + lowestLow) / 2
senkouSpanA = ((tenkanSen + kijunSen) / 2)
senkouSpanB = (highest(high, senkouSpanBPeriods) + lowest(low, senkouSpanBPeriods)) / 2

// Plot Ichimoku
p1 = plot(tenkanSen, color=color.blue, title="Tenkan Sen")
p2 = plot(kijunSen, color=color.red, title="Kijun Sen")
p3 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement)
p4 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement)
fill(p3, p4, color=color.gray, title="Kumo Shadow")

// Trading Logic
longCondition = crossover(hullMA, kijunSen) and close > senkouSpanA[displacement] and close > senkouSpanB[displacement]
shortCondition = crossunder(hullMA, kijunSen) and close < senkouSpanA[displacement] and close < senkouSpanB[displacement]

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Exit Logic - Exit if HullMA crosses KijunSen in the opposite direction
exitLongCondition = crossunder(hullMA, kijunSen)
exitShortCondition = crossover(hullMA, kijunSen)

if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")


관련

더 많은