
이중 SMA 운동 전략은 기술 분석에 기반한 거래 전략으로, 두 개의 간단한 이동 평균 (SMA) 지표에 따라 구매 및 판매 신호를 생성한다. 그것은 주식의 단기 및 중기 가격 움직임을 포착하기 위해 고안되었다.
이 전략은 두 개의 SMA 지표, 즉, 단기 및 장기 시간 창을 사용합니다 - 빠른 SMA (길이가 9주기) 및 느린 SMA (길이가 45주기).
주식의 종식 가격이 빠른 SMA와 느린 SMA의 평균선을 뚫을 때, 상승 추세가 시작되는 것을 나타냅니다. 이 전략은 이 때 다단/구매 신호를 생성하고 다단 포지션에 들어갑니다.
가격이 두 개의 SMA 평균선을 넘어갈 때, 하향 추세가 시작되는 것을 나타냅니다. 이 전략은 이 시점에서 공백/판매 신호를 생성하고 공백 위치에 들어갑니다.
스톱로스 레벨의 동적 설정은 전날의 최고점 ((공백 거래) 과 전날의 최저점 ((다중 거래) 이다.
이 전략의 주요 장점은 다음과 같습니다.
그러나, 모든 기술적 분석 전략과 마찬가지로, 흔들리는 상황에서 신호는 종종 오류가 있습니다. RSI와 같은 다른 지표를 추가하여 개선 할 수 있습니다.
이 전략의 주요 위험은 다음과 같습니다.
흔들림과 잘못된 신호의 영향을 받을 수 있다. SMA 교차에만 의존하는 경우, 평형 또는 흔들림 상황에서 선택적 신호가 발생할 수 있으며, 불필요한 거래 비용을 초래한다. 이것은 RSI와 같은 다른 지표와 조합하여 완화 될 수 있다.
vulnerable to sudden trend reversals: 시장에 진입한 후 급격한 반전이 스톱로드를 빠르게 돌파할 수 있다. SMA 길이를 최적화하거나 다른 필터를 추가함으로써 이러한 위험을 줄일 수 있다.
매개 변수 최적화 과도한 적합의 위험: SMA 길이와 다른 매개 변수들에 대한 광범위한 최적화는 실디 디스크의 열악한 성능을 초래할 수 있다. 오랜 기간에 걸쳐 안정적인 재검토가 필요하다.
이 전략은 다음과 같은 방법으로 강화될 수 있습니다.
요약하자면, 이중 SMA 동력 전략은 단기 및 중기 경향을 직접적으로 포착하는 방법을 제공합니다. 비록 그것의 방법은 기본이지만, 추가 필터, 동적 중단 및 신중한 최적화를 추가하면 위험 조정 수익을 개선하는 데 도움이 될 수 있습니다. 주식의 상승과 하락 추세에서 선택적으로 사용되며, 수익성이있는 상황을 포착 할 수 있습니다.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Crossover Strategy", overlay=true)
// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")
// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)
// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)
// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)
// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)
// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na
strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)
strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)