Fichas de las 20 estrategias populares¶
Esta sección dedica una ficha completa a cada receta P01–P20. Cada ficha sigue el mismo guion: identidad, idea e intuición, reglas exactas con pseudocódigo causal, indicadores, ejemplo barra a barra con el fixture real de la especificación, máquina de estados, cómo lanzarla por la API de backtesting, qué mirar en los resultados, errores típicos, variantes, resumen y ejercicios.
Si solo quieres la vista de pájaro, empieza por la página resumen Populares P01–P20; si vas a lanzar, modificar o auditar una estrategia concreta, ve a su ficha.
Qué vas a aprender¶
- A situar cada receta en su familia (tendencia, reversión, volatilidad-ruptura, sesión-estructura) y a saber qué comportamiento esperar de ella.
- Qué timeframe y qué activos tienen sentido para cada una, y cuáles están vetados por construcción (P12 y P13 en diario).
- Qué dice la matriz de paridad de cada receta y cómo leer un
PARITY_FAIL"nativo" sin alarmarse. - A elegir una estrategia de partida según el mercado que tienes delante.
Las 20 de un vistazo¶
| ID | Estrategia | Familia | Idea en cinco palabras | TF sugerido | Paridad en la matriz |
|---|---|---|---|---|---|
| P01 | Cruce de medias EMA | Tendencia | Media rápida sobre lenta: largo | 1h–1d | PASS · nativa PARITY_FAIL (semilla EMA) |
| P02 | RSI: reversión desde extremos | Reversión | Comprar sobreventa, salir en 50 | 5min–1d | PASS · nativa PARITY_FAIL (RSI 0..1) |
| P03 | MACD: cruce de señal | Tendencia | Histograma MACD positivo: estar largo | 1h–1d | PASS · nativa UNSUPPORTED |
| P04 | Bollinger: reversión por reentrada | Reversión | Volver dentro de banda: revertir | 5min–1d | PASS · nativa UNSUPPORTED |
| P05 | Bollinger Bandwidth: ruptura tras compresión | Volatilidad-ruptura | Bandas estrechas, luego romper fuera | 1h–1d | PASS · nativa UNSUPPORTED |
| P06 | Supertrend | Tendencia | Banda ATR que cambia dirección | 1h–1d | PASS · nativa UNSUPPORTED |
| P07 | UT Bot: trailing ATR | Tendencia | Stop ATR arrastrado, cruce invierte | 1h–1d | PASS · nativa UNSUPPORTED |
| P08 | Squeeze Momentum (TTM/LazyBear) | Volatilidad-ruptura | Bollinger dentro de Keltner, liberación | 1h–1d | PASS · nativa UNSUPPORTED |
| P09 | WaveTrend | Reversión | Oscilador extremo cruza su señal | 1h–1d | PASS · nativa UNSUPPORTED |
| P10 | Ichimoku: Tenkan/Kijun y nube causal | Tendencia | Cruce TK fuera de nube | 1d | PASS · nativa UNSUPPORTED |
| P11 | Donchian / Turtle simplificado | Volatilidad-ruptura | Romper máximo de N barras | 1d | PASS · nativa PARITY_FAIL (ventana inclusiva) |
| P12 | Opening Range Breakout | Sesión-estructura | Romper el rango de apertura | 1min–5min | PASS solo intradía (4/12) · 1d y 1h UNSUPPORTED |
| P13 | VWAP de sesión: reversión | Sesión-estructura | Alejado del VWAP: volver | 1min–5min | PASS solo intradía (4/12) · 1d y 1h UNSUPPORTED |
| P14 | Parabolic SAR | Tendencia | Punto SAR acelera; cruzarlo invierte | 1h–1d | PASS · nativa UNSUPPORTED |
| P15 | DMI/ADX: tendencia filtrada | Tendencia | Solo operar con ADX alto | 1h–1d | PASS · nativa UNSUPPORTED |
| P16 | Keltner: ruptura tendencial | Volatilidad-ruptura | Cierre fuera del canal: seguir | 1h–1d | PASS · nativa PARITY_FAIL (semilla EMA) |
| P17 | Stochastic RSI | Reversión | Estocástico del RSI cruza extremos | 5min–1h | PASS · nativa UNSUPPORTED |
| P18 | Hull Suite: dirección de HMA | Tendencia | Pendiente de la Hull decide | 1h–1d | PASS · nativa PARITY_FAIL (capa fills) |
| P19 | Chandelier Exit | Tendencia | Stop desde el máximo reciente | 1h–1d | PASS · nativa UNSUPPORTED |
| P20 | SMC / BOS con pivotes confirmados | Sesión-estructura | Romper último swing confirmado | 15min–1d | PASS · nativa UNSUPPORTED |
Cómo leer las columnas:
- TF sugerido es una recomendación didáctica de este manual (dónde la receta suele tener sentido económico y un número razonable de operaciones), no una restricción del motor. Los timeframes admitidos están en cada ficha: los siete (
1min…1d) para todas salvo P12 y P13, que solo admiten intradía conrange_minutes/min_minutesmúltiplo de la barra (docs/DATOS_POR_ESTRATEGIA.md). - Paridad en la matriz resume
runs/parity/summary.json(960 casos: KO 1d/1h y NVDA 1d/1h/5min/1min, costeszeroy5bps, cuatro comparaciones contra el ledger de VectorTA). "PASS" significa 12/12 enNT_FEATURES,NT_INTENT_REPLAYyNT_ONLINE(vectorta). "Nativa" es la comparación con los indicadores propios de Nautilus (NT_ONLINE(native)):- UNSUPPORTED: Nautilus 1.231.0 no tiene ese indicador (no hay nada que comparar).
- PARITY_FAIL: el indicador nativo existe pero es otra variante declarada (semilla, escala o ventana distintas). No es un bug; invalida solo un speedup presentado como caso idéntico. En P18 la divergencia aparece en la capa de fills y se aísla con
NT_INTENT_REPLAY.
- Para P12 y P13, las 8 combinaciones UNSUPPORTED son
PolicyParamErroresperados: una barra diaria no tiene rango de apertura (P12) ni varianza intradía (P13), y en 1h los 30 minutos por defecto no son múltiplo de la barra.
Mapa por familias¶
flowchart LR
ROOT(["Populares P01-P20"])
ROOT --> T["Tendencia"]
ROOT --> R["Reversión"]
ROOT --> V["Volatilidad-ruptura"]
ROOT --> S["Sesión-estructura"]
T --> T1["Medias: P01 EMA · P03 MACD · P18 Hull"]
T --> T2["Stops ATR / SAR: P06 Supertrend · P07 UT Bot · P14 PSAR · P19 Chandelier"]
T --> T3["Filtros de fuerza: P10 Ichimoku · P15 DMI/ADX"]
R --> R1["Osciladores: P02 RSI · P09 WaveTrend · P17 StochRSI"]
R --> R2["Bandas: P04 Bollinger reentrada"]
V --> V1["Canales: P11 Donchian · P16 Keltner"]
V --> V2["Compresión: P05 Bandwidth · P08 Squeeze"]
S --> S1["Intradía: P12 ORB · P13 VWAP"]
S --> S2["Estructura de precio: P20 BOS"]
Dos rasgos atraviesan las familias y conviene tenerlos presentes al leer las fichas:
| Rasgo | Recetas | Qué implica |
|---|---|---|
| Dirección continua (siempre ±1 tras el warmup, invierte sin pasar por plano) | P01, P03, P06, P07, P14, P18, P19, P20 | Muchas reversiones de 2 unidades: sensibles a costes; nunca "esperan fuera" |
| Desde plano (entrada por evento, salida a 0, sin invertir en la misma decisión) | P02, P04, P05, P08, P09, P10, P11, P12, P13, P16, P17 | Pasan tiempo sin posición; la salida tiene prioridad sobre la entrada |
| Histéresis (dos umbrales, zona intermedia que conserva) | P15 | Menos cambios de estado que una regla de un umbral |
¿Qué estrategia para qué mercado?¶
No existe una receta buena para todo. La pregunta útil es qué régimen esperas y qué coste pagas por operación.
| Si el mercado… | Prueba primero | Por qué | Evita |
|---|---|---|---|
| Tiene tendencias largas y limpias (índices en fase alcista, NVDA diario) | P01, P06, P19, P11 | Seguir la dirección y aguantar; stops anchos | Osciladores de reversión (P02, P17): venden fuerza |
| Tiende pero con ruido (acciones individuales 1h) | P15, P18, P03 | Filtran fuerza (ADX) o reducen retardo (Hull) | P01 con medias cortas: whipsaw |
| Oscila en rango (valores defensivos como KO, FX sin noticias) | P02, P04, P09, P17 | Venden extremos y cobran la vuelta a la media | Rupturas (P11, P16): falsas rupturas continuas |
| Viene de una fase de calma y esperas expansión | P05, P08 | Detectan compresión de volatilidad antes de la ruptura | Recetas que exigen tendencia ya formada |
| Es intradía con apertura informativa (NVDA 1min/5min) | P12, P13 | Explotan la estructura de la sesión regular | Todo lo diario; P12/P13 en 1h con defaults |
| Tiene estructura de máximos y mínimos clara | P20, P10 | Rupturas de swing confirmados, nube como zona | Timeframes muy finos con tick grueso (empates de pivote) |
Tres reglas prácticas antes de elegir:
- Cuenta las operaciones antes que la rentabilidad. Una receta de dirección continua en 1min puede generar cientos de reversiones al año; con
hypothetical_5bpsel coste domina. - Compara candidatos desde un inicio común. El
first_decision_indexva de 1 (P14) a 271 (P05) con defaults; con la rejilla peor, hasta 291. - Mira la paridad antes que el Sharpe. Si
parity.verdictno esPASSentre los carriles comparables, la cifra no es un resultado todavía.
De dónde salen los ejemplos numéricos
Cada ficha reproduce el fixture a mano (§6) de su especificación en docs/estrategias/Pxx.md: parámetros pequeños para poder calcular con lápiz, cash_inicial = 1.000,00, tick 0,01, sin costes. Los tests del proyecto exigen que el código reproduzca esas tablas exactamente. Cuando una ficha añade una columna de equity con costes, lo declara como cálculo propio del manual con la regla del ledger (fee_rate = 0,0005, comisión redondeada al céntimo half-even en la barra del fill).
Resumen¶
- 20 recetas en cuatro familias; ocho son de dirección continua y once operan desde plano.
- Todas pasan la paridad en los carriles comparables; las diferencias "nativas" son variantes declaradas o indicadores que Nautilus no tiene.
- P12 y P13 son las únicas restringidas a intradía; el resto admite los siete timeframes.
- La elección depende del régimen esperado y del coste por operación, no de un ranking absoluto.
Para practicar¶
- Elige una receta de cada familia y lanza su backtest con defaults sobre KO 1d y NVDA 1d. ¿Qué familia se comporta mejor en cada activo?
- Para P01 y P02, cuenta los fills del ejemplo real sobre NVDA 5min y calcula qué parte de la equity se va en comisiones.
- Con la tabla de rasgos, predice cuál de P06 y P16 tendrá más reversiones de 2 unidades y compruébalo con
n_fillsy|delta|.