Saltar al contenido

167 estrategias, en números

6 min de lectura

Qué incluía el corpus de paridad de PineForge en mayo de 2026: cómo se repartían sus 167 estrategias por categoría, activo y complejidad. Léelo como una guía de museo para la galería.

Las cifras de este artículo se midieron el 9 de mayo de 2026 y se mantienen tal cual. Para ver los resultados actuales, consulta cómo medimos la paridad.

Cifras actualizadas el 2026-05-09 para reflejar el nuevo tamaño del corpus (167 estrategias de referencia, 165 en paridad estricta).

En mayo de 2026 dijimos que «165 de 167 estrategias pasan la paridad estricta». La afirmación solo significa algo si sabes cuáles eran esas 167. Esta es una visita guiada al corpus tal como estaba entonces.

Por qué importa un corpus

Sin un conjunto de referencia fijo, la «paridad» es una sensación. Ejecutas unas cuantas estrategias, se parecen bastante y lo publicas. Luego un usuario prueba algo con grupos de salida OCA o con request.security dentro de un bucle y nada coincide. Los bugs siempre estuvieron ahí; simplemente no habías probado esos casos.

Un corpus fijo, reservado para validar, cambia eso. En aquel momento, los mantenedores volvían a ejecutar las mismas 167 estrategias sobre el mismo OHLCV canónico, en sus propias máquinas, ante cualquier cambio que pudiera afectar a la paridad. Si subía el número de estrategias que pasaban, algo había mejorado. Si bajaba, se había colado una regresión. El corpus es un banco de pruebas de regresión disfrazado de galería de backtests.

Las 167 estrategias también servían como atestación pública. Publicamos en la galería las salidas del motor (número de operaciones, rentabilidad total, ratio de Sharpe) para que cualquiera pudiera ver lo que producía el motor. Eso es distinto de un comunicado de prensa que proclama la paridad.

Las tres categorías

El 2026-05-09, las 167 estrategias estaban repartidas en tres carpetas: basic, community y validation (una cuarta, parity-anomalies, guardaba una sonda que quedaba fuera del recuento). No estaban ordenadas por calidad; describían de dónde venían las estrategias y qué ponían a prueba. (El corpus público actual guarda sus 312 estrategias evaluadas en validation/.)

basic — 9 estrategias

La categoría basic reúne tipos de estrategia canónicos y conocidos: cruce de medias móviles, Supertrend, Stochastic Slow, Parabolic SAR, Keltner Channel, Inside Bar, Pivot Extension y un método de expansión de volatilidad. Son los ejemplos de manual que encontrarías en cualquier curso introductorio de trading algorítmico.

Están en el corpus porque los ejemplos de manual son justo donde los compiladores fallan de forma más embarazosa. Si un cruce de medias móviles no produce la lista de operaciones correcta, todo lo demás queda en entredicho. basic es la capa de cordura.

Las 9 estrategias basic del corpus iban de 13 operaciones (la estrategia greedy, muy selectiva) a 7.299 (la de expansión de volatilidad, que dispara a menudo en barras de 15 minutos). Es una dispersión de más de 500× dentro de la categoría «simple», y dice más de lo selectiva que es una estrategia que de lo compleja que es.

community — 11 estrategias

La categoría community reúne scripts Pine aportados por la comunidad de trading algorítmico. Autoría real significa variación real: distintos estilos de código, distinto uso de las funciones integradas, distintos casos límite en cómo se conectan el tamaño de la posición y la lógica de salida.

Las 11 estrategias de la comunidad incluyen un filtro RSI con 4 EMA, un detector de curvas Break-of-Structure, una estrategia de liquidity sweep, un sistema de seguimiento de tendencia llamado MarketShift y otras. El número de operaciones iba de 72 (VCP, una estrategia muy selectiva que combina varias señales) a 2.643 (IES, la más activa). El rango de resultados es amplio: IES ganó +$58.430 en la ventana de backtest y MarketShift, +$3.388, mientras que la estrategia de la comunidad con peor resultado perdió $678. Estar en el corpus no dice nada sobre si una estrategia es rentable, solo que compila y genera operaciones.

Los scripts de la comunidad son la categoría en la que más cuesta mantener la paridad. La diversidad de autores hace que los scripts combinen funciones de Pine de formas poco habituales que las suites de validación no siempre anticipan. Cuando encontramos un nuevo hueco de paridad, suele aparecer aquí primero.

validation — 147 estrategias

La categoría validation era, con diferencia, la más grande: 147 de las 167 entradas del corpus. Son estrategias sintéticas diseñadas para poner a prueba semánticas concretas de Pine; no buscan ser rentables, sino demostrar que una característica concreta del lenguaje se traduce correctamente a la salida en C++.

Algunos ejemplos de lo que ponían a prueba, en aquel momento, estrategias de validación concretas:

  • 41-partial-exit-qty-percent: prueba strategy.exit(qty_percent=...) para cerrar parcialmente una posición. Si el motor emite fills de salida de más, esta es la estrategia que lo detecta.
  • Variantes de request.security: verifican que las consultas a una temporalidad superior se resuelven en la barra correcta con lookahead=barmerge.lookahead_off, con y sin gaps.
  • Grupos de salida OCA: verifican que, cuando se ejecuta una salida de un grupo strategy.oca.reduce, la otra salida del grupo se reduce en la cantidad ejecutada.
  • Variantes de trailing stop: comprueban que la lógica de trinquete del trailing stop sigue correctamente el máximo alcanzado a través de gaps y fills de órdenes límite.
  • Pruebas de métodos de UDT: verifican que los métodos de los tipos definidos por el usuario de Pine v6 se compilan a las operaciones correctas sobre structs de C++.

La lógica de «si esta estrategia pasa, la característica X está cubierta» es explícita en cómo ampliamos esta carpeta. Cuando un script de la comunidad saca a la luz un caso límite nuevo, solemos escribir un caso sintético mínimo que lo reproduce y lo añadimos a validation.

Cómo son de verdad las cifras

Las 167 estrategias del corpus de entonces se ejecutaban sobre el mismo activo y la misma temporalidad: ETHUSDT en barras de 15 minutos. Es una restricción deliberada: usar un único OHLCV canónico hace que tenga sentido comparar estrategias entre sí y elimina del análisis de paridad los factores propios de cada activo.

Distribución del número de operaciones:

RangoEstrategias
Menos de 10010
100 – 49943
500 – 99961
1.000 – 4.99947
5.000 o más6

La estrategia mediana del corpus generaba 732 operaciones en la ventana de backtest. La que menos, 13 (la estrategia greedy, muy selectiva). La que más, 11.851. Esta dispersión importa para las pruebas de paridad: en una estrategia con 13 operaciones, una sola salida mal colocada supone una tasa de error del 8 %; el mismo bug en una estrategia de 5.000 operaciones aparece en las métricas agregadas aunque la mayoría de las operaciones coincidan.

Distribución del Sharpe:

La galería calculaba el Sharpe por operación (la rentabilidad porcentual media de las operaciones dividida entre su desviación estándar, sin anualizar), así que los valores eran pequeños. La mayoría de las estrategias del corpus se incluyeron por la cobertura de funciones de Pine que aportaban, no por su rentabilidad ajustada al riesgo. La mediana del Sharpe en las 167 estrategias era de 0,021. De las 167, 106 tenían una rentabilidad total positiva en la ventana de backtest; 61 eran negativas.

Mostrábamos estas cifras en la galería, en lugar de filtrar las estrategias «buenas». Si buscabas inspiración, las columnas de rentabilidad y Sharpe te decían qué mirar. Si lo que quieres es verificar la paridad, las cifras en sí dan igual: lo que importa es que PineForge y TradingView produzcan las mismas.

Qué debe cumplir cada estrategia del corpus

Para entrar en el corpus hacen falta cuatro cosas:

  1. Compilar con el codegen de PineForge. Si no compila, no se puede probar. El listón es más alto de lo que parece: algunos scripts Pine de la comunidad hacen import de bibliotecas, y el codegen solo los compila si recibe el código fuente de cada una.

  2. Generar al menos una operación sobre el OHLCV canónico. Una estrategia que compila pero nunca abre una entrada no tiene una lista de operaciones que comparar con nada.

  3. Tener un CSV de referencia de TradingView. Cada estrategia del corpus tiene versionada una exportación «List of Trades» de TradingView: tv_trades.csv o, en el caso de una estrategia de autoprueba, un trades-<mode>.csv por modo. Es la referencia contra la que se compara la salida del motor.

  4. Tener la salida del motor versionada junto al código Pine. La galería se sirve a partir de esas salidas versionadas. Nada de la galería se genera sobre la marcha: es la instantánea de lo que produjo el motor el día en que se añadió la estrategia o se actualizó por última vez.

Por qué publicábamos agregados y no el código fuente

Hasta mediados de mayo de 2026, la galería publicaba el número de operaciones, la rentabilidad, el ratio de Sharpe y los sparklines, pero no el código Pine ni las listas de operaciones en bruto.

El motivo sigue vigente para los scripts de la comunidad: los escribieron sus autores originales y no tenemos permiso para redistribuir su código. Las estrategias que escribimos nosotros se han publicado desde entonces al completo en el pineforge-corpus abierto: el código Pine, el C++ generado, la exportación de TradingView y la lista de operaciones del motor de cada una. La galería enlaza todo ello.

Qué permite la galería

La galería sirve a tres públicos:

Quants independientes que buscan ideas. Las estrategias abarcan suficiente variedad de lógica de entrada, lógica de salida y tipo de indicador como para que recorrer la galería dé un panorama razonable de lo que compila y se ejecuta en el motor. Filtra por categoría y mira los sparklines.

Ingenieros que verifican afirmaciones de paridad. Si quieres comprobar una afirmación de paridad, la galería es el punto de partida: cada tarjeta muestra cuántas de sus operaciones son idénticas en TradingView y en PineForge, y las páginas de cada estrategia muestran las dos listas de operaciones. La rúbrica que asigna los niveles está en la página de metodología.

Línea base de CI para las versiones del motor. Entonces, el barrido completo de 167 estrategias se lanzaba en las máquinas de los mantenedores; la CI del motor no lo ejecutaba. Hoy, un workflow de paridad del corpus vuelve a ejecutar cada noche, en main, las 312 estrategias del corpus abierto, y una pull request solo se fusiona si la ejecución completa de los mantenedores da un veredicto de paridad favorable, de modo que cualquier cambio en la salida de una estrategia se detecta antes de publicarse.

Por dónde seguir