
Bei dieser Strategie handelt es sich um ein quantitatives Handelssystem, das auf mehreren Crossover-Signalen für gleitende Durchschnitte (SMA) basiert. Es verwendet umfassend drei einfache gleitende Durchschnitte mit unterschiedlichen Zeiträumen: 20 Tage, 50 Tage und 200 Tage, und identifiziert Markttrendänderungen und potenzielle Handelsmöglichkeiten, indem es die Beziehung zwischen gleitenden Durchschnitts-Crossover-Signalen und Preispositionen erfasst. Diese Strategie berücksichtigt nicht nur die Kreuzungssignale kurzfristiger und mittelfristiger gleitender Durchschnitte, sondern verwendet auch den langfristigen gleitenden Durchschnitt als Trendfilter und verbessert so effektiv die Transaktionsqualität.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselelementen:
Dies ist eine Handelsstrategie mit mehreren gleitenden Durchschnitten mit einer vollständigen Struktur und klarer Logik. Durch die umfassende Verwendung gleitender Durchschnitte verschiedener Zeiträume und deren Kombination mit Preispositionsbeziehungen kann die Strategie Änderungen in Markttrends besser erfassen. Obwohl gewisse Verzögerungen und Risiken hinsichtlich der Marktvolatilität bestehen, hat die Strategie durch angemessene Parametereinstellungen und Signalfilterung immer noch einen guten praktischen Wert. In Zukunft können die Stabilität und Zuverlässigkeit der Strategie durch die Einführung weiterer technischer Indikatoren und die Optimierung des Signalgenerierungsmechanismus weiter verbessert werden.
/*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)