
이 글은 Stochastics Momentum Index ((SMI) 지표에 기반한 주식 트렌드를 추적하는 전략을 소개한다. 이 전략은 ?? Momentum Surfer 전략 ?? 이라고 한다. 그것은 SMI 지표를 사용하여 주식의 과매매 과매매 지역을 식별하고, 트렌드 반전 지점에서 구매 판매를 하여 이익을 얻는다.
SMI 지표는 주식의 과매매 영역을 식별하는 데 사용됩니다. SMI 지표가 빨간 영역에 진입하면 주식이 과매매되고, 녹색 영역은 주식이 과매매되는 것을 나타냅니다. 이 전략의 거래 신호는 SMI 지표와 EMA의 교차에서 비롯됩니다.
구체적으로, SMI 지표가 EMA 라인을 통과하고 SMI 값이 -40 이하의 oversold 영역을 통과하면 구매 신호가 발생한다. SMI 지표가 EMA 라인을 통과하고 SMI 값이 40 이상의 oversold 영역을 통과하면 판매 신호가 발생한다.
이렇게 함으로써, 이 전략은 주가 가격이 반전될 때 시그널을 적시에 잡을 수 있고, 낮은 가격으로 높은 가격으로 팔 수 있는 목적을 달성할 수 있다. 따라서 순차적으로 주가의 하락 경향을 추적할 수 있다.
이 전략의 가장 큰 장점은 주식의 흐름을 순차적으로 추적할 수 있다는 것입니다. SMI 지표를 사용하여 진입과 출퇴근의 시간을 식별하기 때문에 주식 가격이 반전될 때 신호를 잡을 수 있습니다.
또한, SMI 지표는 자체적으로 평평한 가격의 특징을 가지고 있다. 간단한 이동 평균과 같은 지표에 비해 가격 변화에 대한 반응이 평평하다. 이것은 또한 생성 된 거래 신호를 더 신뢰할 수있게하고 단기 시장 소음에 영향을 받지 않게 만든다.
전체적으로, 이 전략은 SMI 지표의 장점을 활용하여 주식 동향을 효과적으로 추적하는 데 성공했습니다. 그것은 투자자에게 이익을 얻을 수 있으며 자동화 거래에도 적합합니다.
이 전략은 주로 SMI 지표에 의존하기 때문에 SMI와 관련된 몇 가지 위험이 있습니다.
첫째, SMI 지표는 파라미터 설정에 민감하다. 파라미터 설정이 잘못되면 생성된 거래 신호 효과는 크게 할인된다. 이것은 투자자가 최적의 파라미터 조합을 결정하기 위해 반복적으로 테스트해야 한다.
또한, SMI 자체는 잘못된 거래 신호의 발생을 완전히 피할 수 없습니다. 시장이 급격하게 변동할 때, 가짜 신호가 발생하여 불필요한 손실이 발생할 수 있습니다. 이것은 거래 신호를 확인하고 잘못된 거래의 가능성을 줄이기 위해 다른 지표 제품군과 함께 사용해야합니다.
마지막으로, 이 전략은 전체적인 주식 시장의 위험을 바꿀 수 없습니다. 전체 시장이 곰 시장에 들어갔을 때, 이 전략은 여전히 큰 손실을 피하기 어렵습니다. 이것은 기술 분석 기반의 모든 전략이 완전히 피할 수 없는 체계적인 위험입니다.
이 전략은 다음의 몇 가지 측면에서 더 개선될 수 있습니다.
다른 지표를 조합하여 지표 조합의 장점을 사용하여 잘못된 거래 신호의 가능성을 줄이고 수익 가능성을 향상시킵니다. 예를 들어 기본 요소, 변동률 지표 등이 추가 될 수 있습니다.
기계 학습 방법을 사용하여 SMI 파라미터를 자동으로 최적화하십시오. 많은 역사 데이터 훈련을 통해 최적의 파라미터 조합을 찾으십시오.
손실을 줄이는 전략. 합리적인 손실을 줄이는 것은 단편적 손실의 영향을 크게 줄이고 위험을 줄일 수 있습니다.
양적 주식 선택 전략과 결합하여 주식 풀의 전반적인 품질을 향상시킵니다. 좋은 주식 풀 품질은 전략의 안정성을 직접적으로 향상시킵니다.
이 문서에서는 SMI 지표 기반의 트렌드 추적을 구현하는 Momentum Surfer 전략에 대해 자세히 소개한다. 이 전략의 가장 큰 장점은 순차적으로 가격 반전을 포착하고, 순차적으로 주식 트렌드 변화를 추적할 수 있다는 것이다. 또한 몇 가지 파라미터 설정 민감성, 신호 신뢰성 등의 위험이 있다.
/*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)