estrategia · código abierto
Estrategia de reversión a la media con RSI (RSI 14, 30 → 50)
Reversión a la media con RSI(14): compra con RSI bajo 30 y sal cuando supera 50, con bracket 2%/6%. Reglas claras, código y backtest con costes reales. 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. r = ta.rsi(close, 14).- Entrada: sin posición y con RSI por debajo de 30 (sobreventa), compra en la apertura siguiente.
- Señal de salida: RSI por encima de 50 (línea media) → 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). - 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. |
|---|---|---|---|
RSI Length | 14 | 2 | 50 |
Oversold | 30 | 5 | 45 |
Exit Level | 50 | 30 | 70 |
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("RSI Mean Reversion", 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)
len = input.int(14, "RSI Length", minval=2, maxval=50, step=1)
oversold = input.int(30, "Oversold", minval=5, maxval=45, step=1)
exitLevel = input.int(50, "Exit Level", minval=30, maxval=70, 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)
colorBg = input.color("color.purple", "Color Bg")
colorUp = input.color("color.green", "Color Up")
colorDown = input.color("color.red", "Color Down")
colorNeutral = input.color("color.gray", "Color Neutral")
r = ta.rsi(close, len)
longSignal = strategy.position_size == 0 and r < oversold
exitSignal = strategy.position_size > 0 and r > exitLevel
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="RSI exit")
hline(70, "Overbought", color=colorNeutral, linestyle=hline.style_dashed)
hline(50, "Midline", color=colorNeutral, linestyle=hline.style_dotted)
hline(30, "Oversold", color=colorNeutral, linestyle=hline.style_dashed)
p_RSI = plot(r, "RSI", color=colorBg, 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, "RSI long entry", "RSI dropped below oversold")
alertcondition(exitSignal, "RSI exit", "RSI crossed above exit level")
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 la estrategia RSI 2?
No. Usa RSI 14 con niveles 30/50. Para probar algo tipo RSI(2), pon RSI Length en 2 y baja el input Oversold; repite con los mismos costes.
¿Por qué salir en 50 y no en 70?
La reversión a la media apuesta por la vuelta a lo normal, no por una nueva tendencia. Salir en la media captura el rebote sin esperar una sobrecompra que quizá no llegue.
¿Funciona comprar sobreventa en tendencia bajista?
En caídas fuertes el RSI puede quedarse bajo 30 muchas velas, y la entrada por estado vuelve a comprar tras cada stop. Añade un filtro de tendencia (p. ej. cierre sobre la EMA 200) y compara.