Эта стратегия представляет собой количественную торговую систему, основанную на нескольких перекрестных сигналах простой скользящей средней (SMA). Она использует три 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)