스토카스틱스 모멘텀 인덱스에 기초한 모멘텀 서퍼 전략

저자:차오장, 날짜: 2024-02-27 14:32:46
태그:

img

전반적인 설명

이 문서에서는 스토카스틱 모멘텀 인덱스 (SMI) 인디케이터를 기반으로 주식 트렌드를 추적하는 전략을 소개합니다. 이 전략은 모멘텀 서퍼 전략이라고합니다. SMI와 과잉 구매 및 과잉 판매 영역을 식별하고 트렌드 반전에서 이익을 얻기 위해 장기 / 단위로 진입합니다.

전략 논리

SMI 지표는 과잉 매입 및 과잉 판매 구역을 식별하는 데 사용됩니다. 빨간색 영역의 값은 주가가 과잉 매매 된 것을 나타냅니다. 녹색 영역은 과잉 매입 조건을 의미합니다. 거래 신호는 SMI와 EMA 라인의 교차에서 생성됩니다.

구체적으로, SMI가 EMA를 넘어서고 SMI가 -40 과잉판매 수준을 넘어서면 긴 신호가 발사됩니다. SMI가 EMA를 넘어서고 SMI가 40 과잉판매 수준을 넘어서면 짧은 신호가 발사됩니다.

그렇게 함으로써 전략은 가격 반전을 포착하고 낮은 것을 구매하여 높은 것을 판매 할 수 있습니다. 그것은 주식의 상승 추세와 하락 추세를 원활하게 탐색합니다.

이점 분석

가장 큰 장점은 트렌드를 추적 할 수 있다는 것입니다. SMI를 사용하여 입출점을 결정하기 때문에 신호는 가격 반전과 완벽하게 일치합니다.

또한, SMI 자체는 가격을 매끄럽게 하는 특성을 가지고 있다. 단순한 이동 평균에 비해 가격 변화에 더 안정적으로 반응한다. 거래 신호는 시장 소음에 쉽게 영향을 받지 않고 더 신뢰할 수 있다.

요약하자면, 이 전략은 SMI의 강점을 성공적으로 활용하여 주식 트렌드를 효과적으로 추적합니다. 그것은 알고 트레이딩에 적합하면서 이익을 창출합니다.

위험 분석

이 전략은 SMI 지표에 크게 의존하고, 따라서 일부 관련 위험과 대면합니다.

첫째, SMI는 매개 변수 조정에 민감하다. 잘못된 매개 변수는 신호 품질을 크게 손상시킬 수 있다. 최적을 찾기 위해 광범위한 테스트가 필요하다.

또한, SMI를 포함한 거짓 신호에 면역된 지표는 없습니다. 불필요한 손실을 유발하는 높은 변동성 중에 윙사우가 발생할 수 있습니다. SMI를 다른 지표와 함께 사용하는 것은 신호를 확인하고 오류를 줄이는 데 도움이됩니다.

마지막으로, 그것은 체계적인 시장 위험을 완화하지 않습니다. 전체 시장이 곰 상태에 빠지면 심각한 손실이 불가피합니다. 이 제한은 모든 기술 전략에 적용됩니다.

강화

이 전략은 다음과 같은 측면에서 더 개선될 수 있습니다.

  1. 다른 지표를 통합하여 싱디케이트 시스템을 형성합니다. 신호 신뢰성 및 수익성을 높이는 데 도움이됩니다. 기본 요소 및 변동성 측정이 추가 될 수 있습니다.

  2. 기계 학습을 활용하여 큰 역사적 데이터에 기반한 SMI 매개 변수를 자동으로 최적화합니다.

  3. 스톱 로스 메커니즘을 추가합니다. 합리적인 스톱 로스는 단일 거래 손실을 크게 줄이고 위험을 피합니다.

  4. 양적 재고 검열 규칙을 결합하여 재고 풀의 전반적인 품질을 향상시킵니다. 좋은 재고 선택은 견고한 전략의 기초를 마련합니다.

결론

이 기사에서는 SMI 지표로 트렌드를 추적하는 모멘텀 서퍼 전략을 소개합니다. 가장 큰 강점은 반전을 포착하고 트렌드를 원활하게 따라가는 데 있습니다. 매개 변수 민감도 및 신호 품질과 같은 몇 가지 위험이 있습니다. 이를 향상시키는 몇 가지 방법을 제안합니다. 전반적으로, 전략은 알고 거래에 매력적이며 실제 거래 검증을 가치가 있습니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stochastics Momentum Index Strategy", shorttitle="Stoch_MTM_Doan", overlay=true)

// Input parameters
a = input.int(10, "Percent K Length")
b = input.int(3, "Percent D Length")
ob = input.int(40, "Overbought")
os = input.int(-40, "Oversold")

// Range Calculation
ll = ta.lowest(low, a)
hh = ta.highest(high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2

avgrel = ta.ema(ta.ema(rdiff,b),b)
avgdiff = ta.ema(ta.ema(diff,b),b)

// SMI calculations
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ta.ema(SMI,b)
emasignal = ta.ema(SMI, 10)

// Color Definition for Stochastic Line
col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white

plot(SMIsignal, title="Stochastic", color=color.white)

plot(emasignal, title="EMA", color=color.yellow)

level_40 = ob
level_40smi = SMIsignal > level_40 ? SMIsignal : level_40

level_m40 = os
level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40

plot(level_40, "Level ob", color=color.red)
plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line)

plot(level_m40, "Level os", color=color.green)
plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line)

//fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold")
//fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought")

// Strategy Tester
longCondition = ta.crossover(SMIsignal, emasignal) and (SMI < os)
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = ta.crossunder(SMIsignal, emasignal) and (SMI > ob)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


더 많은