
Cette stratégie est un système de trading quantitatif basé sur plusieurs signaux de croisement de moyennes mobiles (SMA). Il utilise de manière exhaustive trois moyennes mobiles simples de périodes différentes : 20 jours, 50 jours et 200 jours, et identifie les changements de tendance du marché et les opportunités de trading potentielles en capturant la relation entre les signaux de croisement de moyennes mobiles et les positions de prix. Cette stratégie prend non seulement en compte les signaux de croisement des moyennes mobiles à court et moyen terme, mais utilise également la moyenne mobile à long terme comme filtre de tendance, améliorant ainsi efficacement la qualité des transactions.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
Il s’agit d’une stratégie de trading à moyennes mobiles multiples avec une structure complète et une logique claire. En utilisant de manière exhaustive les moyennes mobiles de différentes périodes et en les combinant avec les relations de position de prix, la stratégie peut mieux capturer les changements dans les tendances du marché. Bien qu’il existe certains décalages et risques de volatilité du marché, la stratégie présente néanmoins une bonne valeur pratique grâce à des paramètres raisonnables et à un filtrage des signaux. À l’avenir, la stabilité et la fiabilité de la stratégie pourront être encore améliorées en introduisant davantage d’indicateurs techniques et en optimisant le mécanisme de génération de signaux.
/*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)