Convertir una estrategia manual a Pine sin programar

Hoja: entradas → Step 3, filtros → Step 4, salidas → Step 5, riesgo → Step 6 — luego export y Strategy Tester.

📖 9 min de lectura

📝 1,739 palabras

🏷️ Pine Script y TradingView

Compartir este artículo:

Las decisiones que tomas sin darte cuenta

Convertir una estrategia manual a Pine no es un problema de traducción. Expresar «RSI por debajo de 30» en código ocupa una línea, y si esa fuera la dificultad nadie escribiría sobre ello.

La dificultad es que tu estrategia manual contiene decisiones que nunca has tenido que enunciar, y Pine no se ejecutará hasta que todas sean explícitas.

La que nadie espera: ¿cuándo decides?

Un script se ejecuta una vez por barra histórica [1]. En la barra en tiempo real se ejecuta repetidamente, una vez por actualización [1]. Así que «entro cuando el RSI baja de 30» se divide en dos estrategias genuinamente distintas:

Querías decirEn PineConsecuencia
el momento en que el RSI cruza 30, intrabarraactuar sobre la barra en formaciónla condición puede revertirse antes del cierre — el mismo valor que el backtest quizá nunca vio
el RSI está por debajo de 30 al cierre de la barraactuar sobre la barra confirmadaentras una barra más tarde de cuando lo «viste»

Mirando un gráfico nunca tomas esta decisión. Ves romper el nivel y actúas, en algún punto intermedio. Pine no tiene «punto intermedio», y las dos opciones producen resultados medibles distintos.

Elegir el cierre confirmado es casi siempre la respuesta correcta para una estrategia convertida, porque es la única que tu backtest puede reproducir honestamente — la razón está en repintado y lookahead.

Los adjetivos que tienen que volverse números

Repasa tus notas y busca cada palabra que no sea un número. Cada una es un parámetro que has estado fijando a ojo, distinto cada vez:

EscribistePine necesita
«tendencia fuerte»una pendiente, un nivel de ADX o una distancia a una media — con un umbral
«cerca del soporte»dentro de cuántos ticks, o cuántos ATR
«buen volumen»por encima de qué, medido sobre cuántas barras
«esperar una ruptura limpia»un cierre más allá del nivel por una cantidad mínima, o un número de barras
«cuando parece extendido»un indicador concreto cruzando un valor concreto

Aquí es donde se atascan la mayoría de las conversiones, y atascarse es información. Si no puedes poner un número a «tendencia fuerte», no estabas aplicando una regla: estabas ejerciendo criterio, y el criterio no se puede backtestear. Eso conviene descubrirlo en una hora y no después de tres meses de una estrategia en vivo que no se comporta como tú.

La salida que nunca has especificado

Casi todo operador manual tiene una entrada completamente especificada y una salida improvisada. «Cierro cuando el movimiento parece agotado» no es una regla, y suele ser donde vivía la ventaja real.

Pine lo exige todo de antemano: un stop, un objetivo o una condición de salida, y qué pasa cuando no se activa ninguno. También tienes que decidir qué ocurre con una posición todavía abierta cuando tu condición de entrada se vuelve a cumplir — Pine pone pyramiding en 1 por defecto [2], así que la segunda entrada se ignora en silencio salvo que digas otra cosa.

Qué te da realmente la conversión

No automatización. Una especificación. Al final tienes un enunciado escrito de lo que haces, con números, que puedes probar contra el historial y contra tus propios registros de operaciones.

Si la versión especificada no coincide con tus resultados reales, una de dos cosas es cierta: la especificación está incompleta, o tus resultados venían en parte de un criterio que no has capturado. Ambas merecen saberse, y ninguna es visible mientras la estrategia vive solo en tu cabeza.


Una conversión en cinco pasos

Hazlos en orden. Los dos primeros necesitan papel, no un constructor, y son donde una estrategia queda descartada de forma barata.

1. Escribe la regla como una frase sin adjetivos

No un párrafo. Una frase, con solo números, indicadores con nombre y las palabras y, o, por encima, por debajo, cruza.

Entrar largo cuando el RSI de 14 periodos cierre por debajo de 30 y el precio esté por encima de la media simple de 200, salir a 2× ATR de beneficio o 1× ATR de pérdida.

Si no puedes escribir esa frase, para. Los pasos restantes no ayudarán, y el problema no es Pine.

2. Cuenta los parámetros que contiene

Cada número es un parámetro. La frase de arriba tiene seis: 14, 30, 200, 2, 1 y la elección del RSI. Ese recuento importa porque acota cuánto puedes fiarte de cualquier resultado posterior: seis parámetros pueden ajustar mucho historial, y cuantos más tengas, más cuidado has de tener al buscar entre ellos.

Menos es mejor, y «menos» es una decisión que tomas aquí, no después de ver el backtest.

3. Decide la barra en la que actúas, y anótalo

De la sección anterior: intrabarra o cierre confirmado. Elige una a propósito. Anótalo junto a la regla, porque es la suposición que más probablemente explique después una brecha entre tu backtest y tus resultados en vivo.

4. Constrúyelo, y luego lee la declaración

Tanto si escribes el Pine a mano como si lo exportas desde el constructor, la parte a revisar es la línea strategy(), no la lógica:

ConfirmaPor qué
commission_type y commission_value están fijadossi no, pruebas un mercado que no cobra nada
slippage está en ticks de este instrumentoun tick mide distinto en otro símbolo
pyramiding coincide con lo decidido en el paso 3vale 1 por defecto [2]
cada input cambia de verdad la lista de operacionesmueve un umbral y compruébalo

La lista completa está en los parámetros de coste.

5. Pruébalo contra tus propios registros, no solo contra el historial

Este es el paso que hace que una conversión valga la pena, y el que los tutoriales genéricos omiten.

Toma tus últimas veinte operaciones manuales. Ejecuta la estrategia especificada sobre las mismas fechas y el mismo instrumento. Y compara entradas, no rentabilidades:

  • ¿tomó operaciones que tú tomaste?
  • ¿tomó operaciones que tú rechazaste?
  • ¿se saltó operaciones que tú tomaste?

El tercer caso es el informativo. Cada operación que tomaste y la regla no toma es criterio que no has capturado — y o pertenece a la especificación, o tus resultados reales nunca fueron reproducibles por una regla.

Comparar rentabilidades en su lugar no te dice casi nada, porque dos estrategias pueden llegar a un total parecido con operaciones completamente distintas.

Cuando la respuesta es «esto no se puede convertir»

Algunas estrategias genuinamente no se pueden. Cualquier cosa que dependa de leer noticias, del criterio sobre el contexto de mercado o de cómo se siente un movimiento no es un conjunto de reglas. Puedes automatizar una parte — un filtro, un límite de riesgo, una restricción de sesión — y mantener la entrada discrecional.

Es un resultado legítimo y mejor que una especificación que difiere en silencio de lo que haces. Una estrategia parcialmente automatizada que entiendes vale más que una totalmente automatizada que es otra estrategia con tu nombre.


Si lo escribe otra persona: el encargo

Tanto si el Pine lo escribe un freelance, lo genera un modelo o lo construyes en un formulario, lo mismo decide si obtienes lo que querías: con qué detalle lo especificaste. Un encargo incompleto produce una estrategia equivocada sin importar quién la implemente, y los huecos son invisibles hasta que el código existe.

La regla en una frase y los adjetivos de arriba son el punto de partida. Los adjetivos son justo las palabras que no deben aparecer en un encargo: cada uno es un parámetro, y el implementador lo fijará por ti si tú no lo haces.

Las nueve preguntas

PreguntaSi no la respondes
¿Qué instrumento, exactamente?el slippage se cuenta en ticks, y un tick mide distinto en otro sitio
¿Qué temporalidad?nada en Pine la registra; lo decide el gráfico, y cualquiera puede cambiarlo
¿Actúas intrabarra o al cierre confirmado?quien lo escriba elegirá, y ambas dan resultados medibles distintos
¿Cuál es la salida, completa?te llevas la suposición del implementador, normalmente la señal contraria
¿Qué pasa cuando la condición de entrada se repite con una posición abierta?pyramiding vale 1 por defecto [2], así que se ignora en silencio
¿Cuáles son los costes?se omiten por completo a menudo, y el backtest se vuelve ficción
¿Tamaño fijo o porcentaje de capital?el porcentaje compone y favorece a una ventaja débil
¿En qué rango de fechas se validó?no puedes comprobar el resultado después
¿Qué no debe ocurrir?ningún drawdown máximo, ningún límite de dirección, ninguna restricción de sesión

Seis de esas nueve son ajustes de la declaración strategy(), no lógica. Son la parte que decide tus resultados declarados y la parte que un encargo casi nunca menciona.

Un freelance sigue mereciendo la pena para lo que un formulario no ofrece: dibujos a medida, lógica fuera del builder o un puente con tu bróker. Contratarlo para recrear un conjunto de reglas que el builder ya exporta te da el mismo problema del encargo a un precio mayor.

Sé dueño de la especificación, no solo del archivo

La especificación es el activo. Un archivo de Pine es una expresión de ella, y si más tarde quieres la misma idea en MetaTrader, una especificación escrita se transfiere limpiamente y el código no — las dos plataformas tienen modelos de ejecución distintos, así que portar es reconstruir y no traducir.

Guarda la especificación en algún sitio que no sea el código, y actualízala cuando cambies de opinión. Es también lo único que te permite saber, seis meses después, si una estrategia se comporta mal o se comporta exactamente como pediste.

Preguntas frecuentes

Sí: Steps 3–6 → export → Editor → Tester.

Cada indicador es una regla más que probar. ATR+MA.

SuperTrend sí; los filtros de noticias aún no están disponibles. Hub.

Normalmente no para reglas que ofrece el builder. Un freelance sigue siendo útil para dibujos a medida, lógica que el builder no ofrece o un puente con el bróker. En cualquier caso, las nueve preguntas del encargo de arriba deciden si obtienes lo que querías.

Es arriesgado para un script strategy() completo: sigue necesitando el encargo completo de arriba, y el archivo que devuelve hay que revisarlo línea a línea. Ver la guía de Pine escrito con IA y generador IA frente a builder visual.