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
- 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. v = ta.vwap(hlc3)(VWAP de sesión); banda inferior = VWAP × (1 − 1%).- Entrada: sin posición y con el cierre por debajo de la banda inferior, compra en la apertura siguiente.
- Señal de salida: cierre por encima del VWAP → cierre (comentario
Back to VWAP). - 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). - 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.
- 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. |
|---|---|---|---|
Band % | 1 | 0.1 | 5 |
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("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
- 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
¿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.