
Chiến lược này là một hệ thống giao dịch định lượng dựa trên nhiều tín hiệu giao nhau của đường trung bình động (SMA). Phương pháp này sử dụng toàn diện ba đường trung bình động đơn giản của các khoảng thời gian khác nhau: 20 ngày, 50 ngày và 200 ngày, đồng thời xác định những thay đổi về xu hướng thị trường và các cơ hội giao dịch tiềm năng bằng cách nắm bắt mối quan hệ giữa các tín hiệu giao nhau của đường trung bình động và vị thế giá. Chiến lược này không chỉ tính đến các tín hiệu giao nhau của đường trung bình động ngắn hạn và trung hạn mà còn sử dụng đường trung bình động dài hạn làm bộ lọc xu hướng, cải thiện hiệu quả chất lượng giao dịch.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Đây là chiến lược giao dịch đường trung bình động nhiều có cấu trúc hoàn chỉnh và logic rõ ràng. Bằng cách sử dụng toàn diện các đường trung bình động của nhiều giai đoạn khác nhau và kết hợp chúng với mối quan hệ vị trí giá, chiến lược này có thể nắm bắt tốt hơn những thay đổi trong xu hướng thị trường. Mặc dù có độ trễ nhất định và rủi ro biến động thị trường, chiến lược này vẫn có giá trị thực tế tốt thông qua việc thiết lập thông số hợp lý và lọc tín hiệu. Trong tương lai, tính ổn định và độ tin cậy của chiến lược có thể được cải thiện hơn nữa bằng cách đưa vào nhiều chỉ báo kỹ thuật hơn và tối ưu hóa cơ chế tạo tín hiệu.
/*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)