Esta estrategia es un sistema de negociación cuantitativo basado en múltiples señales de cruce de promedio móvil simple (SMA). Utiliza tres SMA con diferentes períodos (20, 50 y 200 días) para identificar cambios en la tendencia del mercado y oportunidades comerciales potenciales mediante la captura de cruces de promedio móvil y relaciones de posición de precios. La estrategia considera cruces de promedio móvil a corto y mediano plazo mientras utiliza el promedio móvil a largo plazo como un filtro de tendencia para mejorar la calidad de la negociación.
La lógica central se basa en los siguientes elementos clave:
Esta es una estrategia de negociación de promedios móviles bien estructurada con lógica clara. Al utilizar de manera integral promedios móviles de diferentes períodos combinados con relaciones de posición de precios, la estrategia captura efectivamente los cambios de tendencia del mercado. Aunque tiene ciertos riesgos inherentes como retraso y vulnerabilidad lateral del mercado, la estrategia mantiene un valor práctico a través de ajustes de parámetros razonables y filtrado de señales. Las mejoras futuras pueden centrarse en incorporar indicadores técnicos adicionales y optimizar los mecanismos de generación de señales para mejorar la estabilidad y confiabilidad de la estrategia.
/*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)