
Эта стратегия представляет собой количественную торговую систему, основанную на сигналах пересечения нескольких скользящих средних (SMA). Он комплексно использует три простые скользящие средние с разными периодами: 20 дней, 50 дней и 200 дней, а также выявляет изменения рыночных тенденций и потенциальные торговые возможности, фиксируя взаимосвязь между сигналами пересечения скользящих средних и ценовыми позициями. Эта стратегия не только учитывает сигналы пересечения краткосрочных и среднесрочных скользящих средних, но и использует долгосрочную скользящую среднюю в качестве фильтра тренда, эффективно улучшая качество транзакций.
Основная логика стратегии основана на следующих ключевых элементах:
Это торговая стратегия с использованием множественных скользящих средних с полной структурой и понятной логикой. Благодаря комплексному использованию скользящих средних за разные периоды и их сочетанию с отношениями ценовых позиций стратегия может лучше улавливать изменения рыночных тенденций. Несмотря на определенные задержки и риски волатильности рынка, стратегия все равно имеет хорошую практическую ценность благодаря разумным настройкам параметров и фильтрации сигналов. В будущем стабильность и надежность стратегии можно будет еще больше повысить за счет внедрения большего количества технических индикаторов и оптимизации механизма генерации сигналов.
/*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)