이 전략은 여러 가지 간단한 이동 평균 (SMA) 크로스오버 신호를 기반으로 한 양적 거래 시스템이다. 이동 평균 크로스오버와 가격 위치 관계를 포착함으로써 시장 트렌드 변화와 잠재적 거래 기회를 식별하기 위해 서로 다른 기간 (20, 50, 200 일) 을 가진 세 개의 SMA를 사용합니다. 전략은 장기 이동 평균을 트렌드 필터로 사용하여 거래 품질을 향상시키는 동안 단기 및 중기 이동 평균 크로스오버를 모두 고려합니다.
핵심 논리는 다음과 같은 핵심 요소에 기반합니다.
이것은 명확한 논리를 가진 잘 구성된 이동 평균 거래 전략이다. 가격 위치 관계와 결합된 다양한 기간의 이동 평균을 포괄적으로 활용함으로써 전략은 시장 트렌드 변화를 효과적으로 포착합니다. 지연 및 측면 시장 취약성과 같은 특정 내재적인 위험이 있지만 합리적인 매개 변수 설정과 신호 필터링을 통해 전략은 실용적 가치를 유지합니다. 향후 개선은 추가 기술 지표를 통합하고 전략 안정성과 신뢰성을 향상시키기 위해 신호 생성 메커니즘을 최적화하는 데 초점을 맞출 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA 20/50/200 Strateji", overlay=true) // SMA Periyotlarını, renklerini ve çizgi kalınlıklarını özelleştirme sma20_period = input.int(20, title="SMA 20 Periyodu", minval=1) sma50_period = input.int(50, title="SMA 50 Periyodu", minval=1) sma200_period = input.int(200, title="SMA 200 Periyodu", minval=1) sma20_color = input.color(color.blue, title="SMA 20 Rengi") sma50_color = input.color(color.orange, title="SMA 50 Rengi") sma200_color = input.color(color.red, title="SMA 200 Rengi") sma20_width = input.int(2, title="SMA 20 Kalınlığı", minval=1, maxval=5) sma50_width = input.int(2, title="SMA 50 Kalınlığı", minval=1, maxval=5) sma200_width = input.int(2, title="SMA 200 Kalınlığı", minval=1, maxval=5) // SMA Hesaplamaları sma20 = ta.sma(close, sma20_period) sma50 = ta.sma(close, sma50_period) sma200 = ta.sma(close, sma200_period) // Al ve Sat Koşulları buyCondition = ta.crossover(sma20, sma50) and close > sma200 sellCondition = ta.crossunder(sma20, sma50) and close < sma200 buyCondition_50_200 = ta.crossover(sma50, sma200) sellCondition_50_200 = ta.crossunder(sma50, sma200) // Grafik üzerine SMA çizimleri plot(sma20, color=sma20_color, linewidth=sma20_width, title="SMA 20") plot(sma50, color=sma50_color, linewidth=sma50_width, title="SMA 50") plot(sma200, color=sma200_color, linewidth=sma200_width, title="SMA 200") // Al-Sat Stratejisi if buyCondition strategy.entry("Buy", strategy.long) label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white) if sellCondition strategy.close("Buy") label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white) if buyCondition_50_200 label.new(bar_index, low, "50/200 BUY", style=label.style_label_up, color=color.new(color.blue, 0), textcolor=color.white) if sellCondition_50_200 label.new(bar_index, high, "50/200 SELL", style=label.style_label_down, color=color.new(color.orange, 0), textcolor=color.white) // Performans Görselleştirmesi İçin Arka Plan Rengi bgColor = buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na bgcolor(bgColor)