Cómo hacer backtesting de una estrategia de Pine Script gratis, paso a paso
Pega una estrategia de Pine Script v5 en Deepwick, pon costes realistas y lee los resultados. Guía paso a paso con una estrategia para copiar, gratis.
Puedes hacer backtesting de una estrategia de Pine Script gratis en Deepwick, una plataforma de gráficos en el navegador que lee código de Pine Script v5. Durante el lanzamiento todas las funciones son gratis y no hace falta tarjeta. Esta guía te lleva de una cuenta vacía a un backtest en el que puedas confiar, con una estrategia que puedes copiar.
Qué necesitas
- Una cuenta de Deepwick. Regístrate con tu email, Google o Apple.
- Un navegador de ordenador: el editor de scripts necesita una pantalla grande.
- Una estrategia escrita en Pine Script v5, o el ejemplo de abajo.
Paso 1: abre un gráfico
Al entrar, y tras un breve onboarding la primera vez, llegas a un gráfico. Elige el mercado con el buscador de símbolos, por ejemplo BTCUSDT para cripto o EURUSD para forex, y después la temporalidad. La estrategia se ejecuta sobre las velas cargadas en el gráfico: 1.000 al abrirlo y más a medida que te desplazas hacia atrás.
Paso 2: pega tu estrategia
Pulsa </> Scripts en la barra del gráfico para abrir el panel de scripts y pega tu código en el editor. Una estrategia tiene que llamar a strategy(). Un script que llama a indicator() dibuja en el gráfico, pero no tiene nada que testear.
Si no tienes ninguna, copia esta. Compra cuando una EMA de 20 periodos cruza por encima de una de 50, cierra con el cruce contrario y mantiene un stop a dos ATR por debajo del precio de entrada:
//@version=5
strategy("Cruce de EMAs con stop ATR", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1, slippage=2)
fastLength = input.int(20, "EMA rápida", minval=1)
slowLength = input.int(50, "EMA lenta", minval=2)
atrMultiple = input.float(2.0, "Múltiplo de ATR para el stop", minval=0.5, step=0.5)
fast = ta.ema(close, fastLength)
slow = ta.ema(close, slowLength)
stopDistance = ta.atr(14) * atrMultiple
if ta.crossover(fast, slow)
strategy.entry("Largo", strategy.long)
if ta.crossunder(fast, slow)
strategy.close("Largo", comment="Cruce bajista")
if strategy.position_size > 0
strategy.exit("Stop", "Largo", stop=strategy.position_avg_price - stopDistance)
plot(fast, "EMA rápida", color=color.teal)
plot(slow, "EMA lenta", color=color.orange)
También puedes partir de una estrategia incluida. El menú Open… del panel de scripts tiene RSI Mean Reversion, MACD Crossover, Bollinger Bounce, EMA Trend Following y Donchian Breakout.
Paso 3: pon costes realistas
La comisión y el slippage son cero por defecto, en Deepwick y en TradingView, y un backtest sin costes favorece a casi cualquier estrategia. Fíjalos en strategy():
commission_typeycommission_value: un porcentaje del valor de la operación (strategy.commission.percent), un importe fijo por orden (strategy.commission.cash_per_order) o por contrato (strategy.commission.cash_per_contract).slippage: ticks en tu contra en cada ejecución a mercado o stop.initial_capital,default_qty_typeydefault_qty_value: cuánto opera la estrategia. El capital por defecto de Deepwick es 100.000, así que fíjalo si vas a comparar resultados con otra plataforma.
Paso 4: ejecútala
Pulsa Run, o Ctrl/Cmd + Enter. Si el script tiene un error, el panel muestra la línea y la columna. Los inputs de la estrategia aparecen junto al editor, así que puedes cambiar las longitudes de las EMAs o el múltiplo de ATR y volver a ejecutarla sin tocar el código.
Paso 5: lee el Strategy Tester
Abre la pestaña Strategy Tester. Encima de los resultados, Deepwick escribe las reglas que ha usado: las órdenes se ejecutan en la apertura de la vela siguiente, los stops y objetivos a lo largo de la vela y los gaps en la apertura. Después vienen el beneficio neto, el número de operaciones, el porcentaje de acierto, el profit factor, el drawdown máximo, los ratios de Sharpe y Sortino, la rentabilidad de comprar y mantener, la comisión pagada y los lados largo y corto, y debajo la curva de capital y la lista de operaciones. Pulsa una operación para ir a ella en el gráfico.
Paso 6: compruébala con el Inspector
Abre la pestaña Inspector y pasa el cursor por las velas de alrededor de una operación. Verás el valor de todas las variables del script en esa vela: las dos EMAs, el ATR y la distancia del stop. Si una operación no tiene sentido, aquí descubres por qué, sin añadir plots ni líneas de log.
Paso 7: guárdala, crea alertas y compártela
Save backtest guarda el resultado en tu cuenta. Si tu script declara alertcondition(), Create alert te avisa por email, Telegram, Discord o webhook. Publish… comparte el script con la comunidad.
Antes de fiarte del resultado
Un backtest es una sola muestra del pasado. Antes de arriesgar dinero:
- Cuenta las operaciones. Un resultado con una docena de operaciones dice muy poco.
- Aparta una parte del histórico. Ajusta los inputs con el resto y prueba una sola vez, al final, con la parte que apartaste.
- Mueve un poco cada input. Si el resultado se hunde cuando una longitud pasa de 20 a 22, has ajustado ruido.
- Conoce los datos: las velas de cripto de Deepwick vienen de Binance y el histórico de CFD empieza en septiembre de 2026.
Hay más sobre esto en The overfitting problem in TradingView backtests (en inglés).
Si un script de TradingView no funciona
request.security()no detiene el script, pero devuelvena, así que todo lo que dependa de otra temporalidad queda vacío.label.new()ytable.new()todavía no están disponibles; las líneas y las cajas sí.- Los argumentos que Deepwick no usa, como
process_orders_on_close, se ignoran: las órdenes siempre se ejecutan en la apertura de la vela siguiente.
La lista completa de lo que se admite está en la referencia de Deepwick Script. Y si estás eligiendo plataforma, aquí tienes nuestra comparativa honesta con TradingView.
— Enrique