Esta es una estrategia comercial cuantitativa basada en el indicador MACD que ejecuta operaciones dentro de un intervalo de tiempo especificado. La estrategia principal utiliza promedios móviles rápidos y lentos para calcular los valores del MACD y genera señales basadas en cruces con la línea de señal. La estrategia también incorpora mecanismos de stop-loss y take-profit para controlar el riesgo y bloquear las ganancias.
La estrategia emplea promedios móviles exponenciales (EMA) de 8 períodos y 16 períodos para calcular los valores del MACD, y utiliza un promedio móvil simple (SMA) de 11 períodos como línea de señal. Las señales de compra se generan cuando la línea MACD cruza por encima de la línea de señal, mientras que las señales de venta ocurren en cruces descendentes. La estrategia incluye un 1% de parada de pérdida y un 2% de toma de ganancias, y solo ejecuta operaciones dentro de un intervalo de tiempo especificado por el usuario (por defecto es el año 2023 completo).
Esta es una estrategia de trading cuantitativa bien estructurada con lógica clara. Genera señales de trading a través de cruces MACD, combinadas con filtración de tiempo y gestión de riesgos para formar un sistema de trading práctico. La alta ajustabilidad de la estrategia la hace adecuada para una mayor optimización y personalización. Se aconseja a los traders que realicen pruebas de retroceso antes de la implementación en vivo y ajusten los parámetros de acuerdo con instrumentos comerciales específicos y condiciones del mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sergengurgen83 //@version=5 strategy(title="MACD Crossover Strategy with Date Range", shorttitle="MACD Crossover strategys.g", overlay=true) // Kullanıcı girişleri fastLength = input.int(8, minval=1, title="Hızlı MA Süresi") slowLength = input.int(16, minval=1, title="Yavaş MA Süresi") signalLength = input.int(11, minval=1, title="Sinyal MA Süresi") stopLossPercent = input.float(1.0, title="Stop-Loss Yüzdesi") / 100 takeProfitPercent = input.float(2.0, title="Kar Al Yüzdesi") / 100 // Tarih aralığı girişleri startDate = input(timestamp("2023-01-01 00:00"), title="Başlangıç Tarihi") endDate = input(timestamp("2023-12-31 23:59"), title="Bitiş Tarihi") // Tarih aralığı kontrolü inDateRange = true // Hareketli Ortalamalar ve MACD Hesaplamaları fastMA = ta.ema(close, fastLength) slowMA = ta.ema(close, slowLength) macd = fastMA - slowMA signal = ta.sma(macd, signalLength) // Alım ve Satım sinyalleri buySignal = ta.crossover(macd, signal) and inDateRange sellSignal = ta.crossunder(macd, signal) and inDateRange // Strateji kuralları if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // Stop-Loss ve Kar Al seviyeleri strategy.exit("Sell", from_entry="Buy", loss=stopLossPercent * close, profit=takeProfitPercent * close) // Sinyallerin grafikte gösterilmesi plot(macd, color=color.blue, title="MACD") plot(signal, color=color.red, title="Sinyal") hline(0, color=color.purple, linestyle=hline.style_dashed) plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Al", text="AL") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sat", text="SAT")