estrategia · código abierto

Estrategia de cruce de triple EMA (TEMA 9)

Cruce de triple EMA: una TEMA(9) de bajo retraso cruzando una EMA 21. Compra el cruce alcista y sal en el bajista. Reglas, código y backtest con costes. Deepwick Script ejecuta un subconjunto de Pine Script.

Reglas de entrada y salida

  1. Solo largos y una posición a la vez (strategy.position_size == 0 antes 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.
  2. TEMA(9) = 3·EMA1 − 3·EMA2 + EMA3 (tres EMAs de 9 encadenadas). Línea lenta = ta.ema(close, 21).
  3. Entrada: sin posición y cuando la TEMA cruza por encima de la EMA 21, compra en la apertura siguiente.
  4. Señal de salida: la TEMA cruza por debajo de la EMA 21 → cierre.
  5. 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 % y Take 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).
  6. 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

AjusteValorMín.Máx.
Fast TEMA Length9550
Slow EMA Length2120200
Stop Loss %20.510
Take Profit %6020

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().

Más sobre cómo funciona el backtesting

Código fuente

Deepwick Script (un subconjunto de Pine Script)

//@version=5
strategy("Triple EMA Crossover", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05)
fastLen = input.int(9, "Fast TEMA Length", minval=5, maxval=50, step=1)
slowLen = input.int(21, "Slow EMA Length", minval=20, maxval=200, 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)
colorAccent = input.color("color.fuchsia", "Color  Accent")
colorLine = input.color("color.blue", "Color  Line")
colorUp = input.color("color.green", "Color  Up")
colorDown = input.color("color.red", "Color  Down")
e1 = ta.ema(close, fastLen)
e2 = ta.ema(e1, fastLen)
e3 = ta.ema(e2, fastLen)
tema = 3 * e1 - 3 * e2 + e3
slowE = ta.ema(close, slowLen)
longSignal = strategy.position_size == 0 and ta.crossover(tema, slowE)
exitSignal = strategy.position_size > 0 and ta.crossunder(tema, slowE)
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="TEMA cross down")
p_TEMA = plot(tema, "TEMA", color=colorAccent, linewidth=2)
p_Slow_EMA = plot(slowE, "Slow EMA", color=colorLine, linewidth=2)
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, "TEMA long entry", "TEMA crossed above slow EMA")
alertcondition(exitSignal, "TEMA exit", "TEMA crossed below slow EMA")

Pruébala en Deepwick

  1. Abre un gráfico de cualquier cripto o CFD.
  2. Pulsa «Scripts» y añade esta estrategia.
  3. Pulsa «Run» y revisa las operaciones en el Strategy Tester.
Empieza gratis

Preguntas frecuentes

¿Es la 'estrategia de 3 EMAs'?

No exactamente. La popular 'estrategia de 3 EMAs' usa tres EMAs distintas como abanico. Este script usa una EMA triple suavizada (TEMA) frente a una EMA 21.

¿Qué cambia la TEMA frente a un cruce de EMAs normal?

La TEMA elimina buena parte del retraso, así que cruza antes. Compara la tabla de esta página con la del cruce de EMAs 9/21 en el mismo símbolo y con los mismos costes.

¿Puedo convertirla en un abanico de tres EMAs?

Sí: añade una tercera ta.ema() y exige el orden rápida > media > lenta para entrar. Repite el backtest con los mismos costes para comparar.