
Strategi ini adalah sistem perdagangan kuantitatif berdasarkan pada beberapa sinyal persilangan rata-rata pergerakan (SMA). Secara komprehensif menggunakan tiga rata-rata pergerakan sederhana dari periode yang berbeda: 20 hari, 50 hari dan 200 hari, dan mengidentifikasi perubahan tren pasar dan peluang perdagangan potensial dengan menangkap hubungan antara sinyal persilangan rata-rata pergerakan dan posisi harga. Strategi ini tidak hanya memperhitungkan sinyal persilangan rata-rata pergerakan jangka pendek dan jangka menengah, tetapi juga menggunakan rata-rata pergerakan jangka panjang sebagai penyaring tren, sehingga secara efektif meningkatkan kualitas transaksi.
Logika inti dari strategi ini didasarkan pada elemen-elemen kunci berikut:
Ini adalah strategi perdagangan rata-rata pergerakan ganda dengan struktur lengkap dan logika yang jelas. Dengan menggunakan rata-rata pergerakan berbagai periode secara komprehensif dan menggabungkannya dengan hubungan posisi harga, strategi tersebut dapat menangkap perubahan tren pasar dengan lebih baik. Meskipun ada kelambatan tertentu dan risiko volatilitas pasar, strategi ini masih memiliki nilai praktis yang baik melalui pengaturan parameter dan penyaringan sinyal yang wajar. Di masa mendatang, stabilitas dan keandalan strategi dapat lebih ditingkatkan dengan memperkenalkan lebih banyak indikator teknis dan mengoptimalkan mekanisme pembuatan sinyal.
/*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)