estrategia · código abierto
Estrategia de cruce del MACD (12, 26, 9)
Estrategia de cruce del MACD: compra cuando el MACD cruza su línea de señal al alza y sal en el cruce bajista. Reglas, código y backtest con costes. Deepwick Script ejecuta un subconjunto de Pine Script.
Reglas de entrada y salida
- Solo largos y una posición a la vez (
strategy.position_size == 0antes de entrar). Las señales se evalúan al cierre de la vela; Deepwick ejecuta las órdenes de mercado en la apertura de la vela siguiente. [macd, signal, hist] = ta.macd(close, 12, 26, 9).- Entrada: sin posición y cuando el MACD cruza por encima de la señal, compra en la apertura siguiente. Sin filtro de línea cero.
- Señal de salida: el MACD cruza por debajo de la señal → cierre.
- Bracket de protección desde el precio medio de entrada: stop-loss un 2% por debajo y take-profit un 6% por encima (inputs
Stop Loss %yTake Profit %; Take Profit % = 0 desactiva el objetivo). Stops y objetivos se comprueban siguiendo el recorrido de la vela (apertura → extremo más cercano → extremo más lejano → cierre). - Tamaño y costes en
strategy(): capital inicial 10.000, 10% del capital por operación, comisión del 0,05% por ejecución, slippage no definido (0 por defecto). Los backtests guardados pagan además medio spread real en cada ejecución de mercado y de stop.
Referencia del lenguaje: Deepwick Script.
Ajustes por defecto
| Ajuste | Valor | Mín. | Máx. |
|---|---|---|---|
Fast Length | 12 | 2 | 30 |
Slow Length | 26 | 10 | 100 |
Signal Length | 9 | 2 | 50 |
Stop Loss % | 2 | 0.5 | 10 |
Take Profit % | 6 | 0 | 20 |
Cómo ejecuta Deepwick esta estrategia
- Las órdenes de mercado se ejecutan en la apertura de la vela siguiente.
- Stops y límites siguen el recorrido de la vela: apertura → extremo más cercano → extremo más lejano → cierre.
- Los gaps se ejecutan en la apertura.
- La comisión se cobra en cada ejecución, y el slippage se aplica a las órdenes de mercado y de stop, según lo definido en
strategy().
Código fuente
Deepwick Script (un subconjunto de Pine Script)
//@version=5
strategy("MACD Crossover", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05)
fast = input.int(12, "Fast Length", minval=2, maxval=30, step=1)
slow = input.int(26, "Slow Length", minval=10, maxval=100, step=1)
sig = input.int(9, "Signal Length", minval=2, maxval=50, step=1)
stopPct = input.float(2, "Stop Loss %", minval=0.5, maxval=10, step=0.1)
tpPct = input.float(6, "Take Profit %", minval=0, maxval=20, step=0.1)
colorLine = input.color("color.blue", "Color Line")
colorMid = input.color("color.orange", "Color Mid")
colorUp = input.color("color.green", "Color Up")
colorDown = input.color("color.red", "Color Down")
colorNeutral = input.color("color.gray", "Color Neutral")
[m, s, h] = ta.macd(close, fast, slow, sig)
longSignal = strategy.position_size == 0 and ta.crossover(m, s)
exitSignal = strategy.position_size > 0 and ta.crossunder(m, s)
if longSignal
strategy.entry("Long", strategy.long)
if strategy.position_size > 0
strategy.exit("Risk", stop=stopPct > 0 ? strategy.position_avg_price * (1 - stopPct / 100) : na, limit=tpPct > 0 ? strategy.position_avg_price * (1 + tpPct / 100) : na)
if exitSignal
strategy.close("Long", comment="MACD cross down")
hline(0, "Zero", color=colorNeutral, linestyle=hline.style_dotted)
p_MACD = plot(m, "MACD", color=colorLine, linewidth=2)
p_Signal = plot(s, "Signal", color=colorMid)
p_Histogram = plot(h, "Histogram", color=h >= 0 ? colorUp : colorDown, style=plot.style_columns)
plotshape(longSignal, "Long", style=shape.triangleup, location=location.belowbar, color=colorUp, text="L")
plotshape(exitSignal, "Exit", style=shape.triangledown, location=location.abovebar, color=colorDown, text="X")
alertcondition(longSignal, "MACD long entry", "MACD crossed above signal")
alertcondition(exitSignal, "MACD exit", "MACD crossed below signal")
Pruébala en Deepwick
- Abre un gráfico de cualquier cripto o CFD.
- Pulsa «Scripts» y añade esta estrategia.
- Pulsa «Run» y revisa las operaciones en el Strategy Tester.
Preguntas frecuentes
¿Cuál es la tasa de acierto del cruce del MACD?
No hay una única: cambia con el mercado, la temporalidad, el periodo y los costes. Esta página muestra la tasa de acierto de una ejecución documentada en la tabla; repítela en tu símbolo para obtener la tuya.
¿Tomo solo cruces por encima de la línea cero?
Es un filtro habitual para operar a favor de tendencia. Añade and macd > 0 a la condición de entrada y compara ambas ejecuciones con los mismos costes.
¿Por qué el cruce del MACD llega tarde?
El MACD se construye con medias móviles del precio, así que sus cruces van por detrás de los giros. Cuanto más rápido lo configures, más cruces falsos.