
Se trata de una estrategia de trading cuantitativa basada en el indicador MACD, que se ejecuta mediante el establecimiento de un rango de tiempo específico. El núcleo de la estrategia es el uso de promedios móviles rápidos y lentos para calcular el valor de MACD y el cruce con las líneas de señal para determinar el momento de compra y venta. La estrategia también incluye mecanismos de stop loss y stop-loss para controlar el riesgo y bloquear los beneficios.
La estrategia calcula el valor MACD con un promedio móvil indexado de 8 y 16 períodos (EMA) y usa un promedio móvil simple de 11 períodos (SMA) como línea de señal. La línea MACD genera una señal de compra cuando atraviesa la línea de señal y una señal de venta cuando la atraviesa. La estrategia también introduce una configuración de stop loss del 1% y un stop loss del 2%, y solo ejecuta operaciones en el rango de tiempo especificado por el usuario (por defecto, todo el año 2023).
Se trata de una estrategia de trading cuantificada, estructurada y con claridad lógica. La generación de señales de trading mediante el cruce de MACD, junto con la filtración de tiempo y la gestión de riesgos, forman un sistema de trading práctico. La estrategia es muy ajustable, adecuada para una mayor optimización y ajuste personalizado. Se recomienda a los operadores que realicen una adecuada retroalimentación antes de su uso en el mercado real y ajusten los parámetros según la variedad de transacciones y el entorno 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")