SMA 트렌드 필터링 시스템과 결합된 트렌드 추종 듀얼 이동 평균 교차 전략

EMA SMA MA RSI RR
생성 날짜: 2025-02-21 14:35:29 마지막으로 수정됨: 2025-02-21 14:35:29
복사: 3 클릭수: 395
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

SMA 트렌드 필터링 시스템과 결합된 트렌드 추종 듀얼 이동 평균 교차 전략 SMA 트렌드 필터링 시스템과 결합된 트렌드 추종 듀얼 이동 평균 교차 전략

개요

이 전략은 이동 평균 ((MA) 의 교차와 트렌드 추적을 결합한 양적 거래 시스템이다. 그것은 15주기 간단한 이동 평균 ((SMA) 을 트렌드 필터로 사용하고, 동시에 9주기 및 21주기 지수 이동 평균 ((EMA) 의 교차를 사용하여 거래 신호를 생성한다. 이 전략은 엄격한 입시 조건과 고정된 1:4 위험 수익 비율을 사용하여 위험을 관리한다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.

  1. 트렌드 확인: 15주기 SMA를 주요 트렌드 판단 지표로 사용한다. 가격은 15SMA 이상의 상승 추세로 간주되며, 반대로 하향 추세로 간주된다.
  2. 거래 신호: 9EMA와 21EMA의 교차를 통해 거래 신호를 유발한다. 9EMA 상단에서 21EMA를 통과하고 다른 조건이 충족되면 다중 신호가 발생한다. 9EMA 아래에서 21EMA를 통과하고 다른 조건이 충족되면 공백 신호가 발생한다.
  3. 확인 조건: 다중은 두 개의 연속 항선이 나타나고 두 개의 EMA가 15SMA 위에 있습니다. 공백은 음선이 나타나고 두 개의 EMA가 15SMA 아래에 있습니다.
  4. 위험 관리: 시스템은 자동으로 입점 포인트에 따라 중지 손실과 수익 목표를 계산하고, 1: 4의 위험 수익 비율을 설정한다.

전략적 이점

  1. 트렌드 추적 능력: 15SMA의 트렌드 필터링 메커니즘을 통해 수평 또는 역동적인 상황에서 거래를 효과적으로 피할 수 있습니다.
  2. 다중 확인 메커니즘: 평선 교차, 그래프 형태 및 트렌드 확인과 같은 다중 조건을 결합하여 잘못된 신호의 위험을 줄인다.
  3. 리스크 관리: 고정 리스크 수익률과 자동 스톱 손실 차단 설정이 장기적으로 안정적인 운영에 유리하다.
  4. 시각적 피드백이 명확하다: 시스템은 거래 신호 표기 및 스톱 스톱 레벨 표시를 포함한 명확한 시각적 지시를 제공합니다.

전략적 위험

  1. 뒤처진 위험: 이동 평균은 본질적으로 뒤처진 지표이며, 시장이 빠르게 변할 때 반응하지 않을 수 있다.
  2. 가짜 돌파 위험: 상반기 시장에서 가짜 교차 신호를 생성할 수 있다.
  3. 고정 리스크 비율의 제한:1:4의 고정 리스크 수익 비율은 모든 시장 환경에 적합하지 않을 수 있다.
  4. 연속 손실 위험: 불안정한 시장에서 연속 중단이 발생할 수 있습니다.

전략 최적화 방향

  1. 동적 사이클 최적화: 시장의 변동에 따라 이동 평균 사이클을 자동으로 조정할 수 있다.
  2. 변동률 필터를 도입: ATR 또는 다른 변동률 지표를 추가하여 진입 시기를 최적화한다.
  3. 동적 위험 관리: 시장 조건에 따라 동적으로 조정되는 위험 수익률
  4. 시장 환경 판단을 높이기: 거래 조건을 최적화하기 위해 트렌드 강도 지표를 도입한다.

요약하다

이것은 합리적이고 논리적으로 엄격한 트렌드 추적 전략을 설계한다. 이 전략은 여러 가지 기술 지표와 엄격한 위험 관리를 결합하여 좋은 실용성을 가지고 있다. 일부 고유한 위험이 존재하지만, 제안된 최적화 방향은 전략의 안정성과 수익성을 더욱 향상시킬 수 있다. 이 전략은 특히 트렌드가 뚜렷한 시장에서 적용하기에 적합하며, 중장기 기간 동안 사용하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2024-02-21 00:00:00
end: 2024-12-19 00:00:00
period: 4d
basePeriod: 4d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy with 15 SMA Trend", overlay=true, margin_long=100, margin_short=100)

// Calculate Indicators
sma15 = ta.sma(close, 15)
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)

// Trend Detection
uptrend = close > sma15
downtrend = close < sma15

// Crossover Conditions
goldenCross = ta.crossover(ema9, ema21)
deathCross = ta.crossunder(ema9, ema21)

// Candle Conditions
twoBullish = (close > open) and (close[1] > open[1])
bearishCandle = (close < open)

// Entry Conditions
longCondition = goldenCross and uptrend and twoBullish and (ema9 > sma15) and (ema21 > sma15)
shortCondition = deathCross and downtrend and bearishCandle and (ema9 < sma15) and (ema21 < sma15)

// Risk Management
var float longStop = na
var float longTarget = na
var float shortStop = na
var float shortTarget = na

if longCondition
    longStop := low
    longTarget := close + 4*(close - longStop)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)

if shortCondition
    shortStop := high
    shortTarget := close - 4*(shortStop - close)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)

// Visual Elements
plot(sma15, "15 SMA", color=color.orange)
plot(ema9, "9 EMA", color=color.blue)
plot(ema21, "21 EMA", color=color.red)

// Plot trading levels
plot(longCondition ? longStop : na, "Long Stop", color=color.red, style=plot.style_linebr)
plot(longCondition ? longTarget : na, "Long Target", color=color.green, style=plot.style_linebr)
plot(shortCondition ? shortStop : na, "Short Stop", color=color.red, style=plot.style_linebr)
plot(shortCondition ? shortTarget : na, "Short Target", color=color.green, style=plot.style_linebr)

// Signal Markers
plotshape(longCondition, "Buy", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Sell", shape.triangledown, location.abovebar, color=color.red, size=size.small)