estrategia · código abierto

Estrategia de reversión al VWAP (banda del 1%)

Reversión al VWAP: compra cuando el precio cierra un 1% por debajo del VWAP de la sesión y sal cuando vuelve a cerrar por encima. Reglas, código y backtest. 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. v = ta.vwap(hlc3) (VWAP de sesión); banda inferior = VWAP × (1 − 1%).
  3. Entrada: sin posición y con el cierre por debajo de la banda inferior, compra en la apertura siguiente.
  4. Señal de salida: cierre por encima del VWAP → cierre (comentario Back to VWAP).
  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. Nota de reentrada: la condición de entrada es un estado, no un cruce. Si el stop o el objetivo cierran la operación y la condición sigue activa, la estrategia vuelve a entrar en la apertura de la vela siguiente.
  7. 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.
Band %10.15
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("VWAP Mean Reversion", 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)
bandPct = input.float(1, "Band %", minval=0.1, maxval=5, step=0.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)
colorMid = input.color("color.orange", "Color  Mid")
colorMid2 = input.color("color.teal", "Color  Mid2")
colorUp = input.color("color.green", "Color  Up")
colorDown = input.color("color.red", "Color  Down")
v = ta.vwap(hlc3)
lowerBand = v * (1 - bandPct / 100)
upperBand = v * (1 + bandPct / 100)
longSignal = strategy.position_size == 0 and close < lowerBand
exitSignal = strategy.position_size > 0 and close > v
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="Back to VWAP")
p_VWAP = plot(v, "VWAP", color=colorMid, linewidth=2)
p_Lower_Band = plot(lowerBand, "Lower Band", color=color.new(colorMid2, 50), linewidth=1)
p_Upper_Band = plot(upperBand, "Upper Band", color=color.new(colorMid2, 50), linewidth=1)
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, "VWAP long entry", "Price dropped below VWAP band")
alertcondition(exitSignal, "VWAP exit", "Price recovered above VWAP")

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 una estrategia intradía?

Sí, está pensada para velas intradía, donde el VWAP de sesión tiene sentido. En diario el VWAP se reinicia cada vela y la lógica deja de tenerlo.

¿Qué anchura de banda uso?

El 1% es un punto de partida. Pares volátiles pueden necesitar más y el forex mayor mucho menos. Compara varios valores con el optimizador y valida con walk-forward.