Saltar a contenido

Las 20 estrategias populares (P01–P20)

Qué vas a aprender

  • Qué hace cada una de las 20 recetas "populares": idea, reglas de entrada y salida, features, defaults, timeframes y activos.
  • Qué limitaciones tienen (P12/P13 solo intradía; P12/P13 en 1h UNSUPPORTED con defaults; variantes nativas de Nautilus en P16/P18).
  • A seguir un trade barra a barra en cinco recetas (P01, P02, P04, P06, P11): señal al cierre de t, fill en la apertura de t+1, posición y equity con y sin costes.

De dónde salen los números de los ejemplos

Las tablas paso a paso son los fixtures a mano de docs/estrategias/P01.md, P02.md, P04.md, P06.md y P11.md (§6). Esos fixtures usan parámetros pequeños (por ejemplo EMA 3/5) para que se puedan calcular con lápiz, cash_inicial = 1.000,00, tick 0,01 y sin costes. Los tests del proyecto comprueban que el código reproduce esas tablas exactamente. La columna "equity con costes" la hemos añadido en este manual aplicando el escenario hypothetical_5bps que usan los ejemplos de la API (fee_rate = 0,0005, sin spread ni deslizamiento): comisión por fill = |delta| · precio · 0,0005, redondeada al céntimo half-even (la regla del ledger SIM-S, docs/POLITICAS_Y_LEDGER.md §2), y restada de la caja en la barra del fill. Esa columna no la producen los tests ni el repositorio: es un cálculo de este manual. Se ha comprobado a mano, fill por fill, en las cinco tablas (por ejemplo P01: 0,05 + 0,10 → 1.001,35; P06: 0,05 + 0,10 + 0,10 → 1.004,25). Las columnas sin costes sí son literales de los fixtures.

1. Mapa rápido

ID Nombre Familia Hito Features Defaults fdi
P01 Cruce de medias EMA tendencia, dirección continua H1 ema_fast, ema_slow fast 20, slow 50 49
P02 RSI reversión desde extremos reversión, desde plano H1 rsi period 14, lower 30, upper 70 14
P03 MACD cruce de señal tendencia, dirección continua H2 EMA ×2, señal 12 / 26 / 9 33
P04 Bollinger reentrada reversión, desde plano H1 SMA, std, bandas period 20, k 2,0 19
P05 Bandwidth ruptura tras compresión volatilidad, armado con TTL H2 bbands, bandwidth, cuantil 20 / 2,0 / q 0,2 / W 252 / TTL 10 271
P06 Supertrend tendencia, siempre en mercado H1 ATR, bandas, dirección period 10, mult 3,0 9
P07 UT Bot trailing ATR tendencia con memoria H2 ATR, stop recursivo period 10, key 1,0 9
P08 Squeeze Momentum evento + salida por signo H2 BB, Keltner, regresión 20 / 2,0 / 1,5 38
P09 WaveTrend oscilador, desde plano H2 HLC3, EMA, WT 10 / 21 / 60 41
P10 Ichimoku TK + nube causal tendencia, desde plano H2 tenkan, kijun, senkou 9 / 26 / 52 / 26 77
P11 Donchian / Turtle simplificado ruptura, desde plano H1 máximos/mínimos previos entry 20, exit 10 20
P12 Opening Range Breakout sesión intradía H2 rango de apertura, sesión range_minutes 30 por sesión
P13 VWAP de sesión sesión intradía, reversión H2 VWAP, varianza ponderada z 2,0, min 30 por sesión
P14 Parabolic SAR tendencia, dirección continua H2 PSAR 0,02 / 0,2 1
P15 DMI/ADX filtrado tendencia con histéresis H2 +DI, −DI, ADX 14 / 25 / 20 26
P16 Keltner ruptura ruptura, desde plano H2 EMA, ATR 20 / 10 / 2,0 19
P17 Stochastic RSI oscilador, desde plano H2 RSI, stoch K/D 14 / 14 / 3 / 3 31
P18 Hull Suite tendencia, dirección continua H2 WMA, HMA period 55, lag 2 62
P19 Chandelier Exit tendencia, siempre en mercado H2 ATR, HH/LL, stop recursivo 22 / 3,0 21
P20 SMC / BOS con pivotes confirmados estructura H2 pivotes confirmados half_window 3 6

fdi = first_decision_index con los defaults (primera barra en la que la receta puede decidir).

Datos: qué activos y timeframes sirven

Receta NVDA/KO intradía (1min–1h) NVDA/KO 1d US Yahoo 1d (AMZN, INTC, MSFT, TSLA) BME / FX 1d
P01–P11, P14–P20 sí (los 7 TF) sí, con las reservas de FX (OHLC reparado)
P05 sí (historia ≥ 271 barras)
P12 sí (única fuente), range_minutes múltiplo de la barra UNSUPPORTED UNSUPPORTED UNSUPPORTED
P13 sí (única fuente), volumen real UNSUPPORTED (var = 0) UNSUPPORTED UNSUPPORTED (FX sin volumen)

Fuente: docs/DATOS_POR_ESTRATEGIA.md y docs/estrategias/README.md §2. KO es un "activo con hueco": le faltan 271 sesiones (D-17); las recetas por observación siguen calculando a través del hueco y el runner avisa.

P12 y P13 en 1h con los defaults

P12 y P13 necesitan que la ventana (range_minutes, min_minutes) sea múltiplo del tamaño de la barra. El default es 30 minutos. En 1h, 30 no es múltiplo de 60, así que el caso es UNSUPPORTED: hay que pedir M = 60. Además, en 1h la última barra regular (15:30–16:00) dura 30 minutos, y en sesión corta con M = 60 queda una sola barra operable. No es un error: es aritmética, y la especificación de P12 lo declara.

2. Fichas de las 20 recetas

Cada ficha resume la canonical_rule del catálogo. "Desde plano" significa que tras una salida se vuelve a 0 y no se invierte en la misma decisión; "dirección continua" significa que el objetivo salta de +1 a −1 directamente (delta 2).

P01 · Cruce de medias EMA

Cruce de EMA 20 y EMA 50 con entradas y salidas

Figura 1. P01 con los parámetros por defecto (20/50): largo mientras la EMA rápida está por encima de la lenta; fills en el open siguiente.

  • Idea: la media rápida por encima de la lenta indica tendencia alcista.
  • Regla: con ambas EMA válidas, objetivo +1 si EMA(fast) > EMA(slow), −1 si es menor; la igualdad conserva el objetivo anterior. Estado inicial 0. Solo hay orden cuando el objetivo cambia.
  • Rejilla: fast ∈ {5,10,20,40}, slow ∈ {50,100,150,200} → 16 candidatos, 8 curvas EMA.
  • Nota: la EMA se siembra con la SMA de las primeras period barras. La EMA nativa de Nautilus se siembra con el primer valor (nt_seed_first_value) y por eso es una variante declarada, no el camino por defecto.

P02 · RSI: reversión desde extremos

RSI de 14 con entrada al cruzar 30 y salida al cruzar 70

Figura 2. P02 (RSI 14, 30/70): entra al salir de sobreventa y sale al alcanzar sobrecompra.

  • Idea: tras un exceso vendedor (RSI < 30) el precio tiende a rebotar.
  • Regla: desde plano, largo cuando el RSI cruza hacia arriba lower; corto cuando cruza hacia abajo upper. Cerrar largo si RSI ≥ 50; cerrar corto si RSI ≤ 50. La salida tiene prioridad.
  • Rejilla: 4 × 3 × 3 = 36 candidatos, solo 4 curvas RSI (los umbrales son de política).

P03 · MACD: cruce de señal

  • Regla: MACD = EMA(f) − EMA(s), señal = EMA(g) del MACD, hist = MACD − señal. Objetivo +1 con histograma > 0, −1 con < 0; cero conserva. Solo tras la validez de toda la cadena.
  • Rejilla: 27 candidatos.

P04 · Bollinger: reversión por reentrada

  • Regla: bandas SMA(n) ± k·std(n, ddof=0). Largo cuando C[t−1] < lower[t−1] y C[t] ≥ lower[t] (el precio vuelve a entrar en la banda). Corto simétrico desde arriba. Salir largo con C ≥ media, corto con C ≤ media. No se invierte en la decisión de salida.
  • Caso degenerado: si la desviación es exactamente 0, no hay entrada (D-31).

P05 · Bollinger Bandwidth: ruptura tras compresión

  • Regla: BW = (upper − lower) / |media|. Se "arma" cuando BW[t] está por debajo del cuantil q de las W barras anteriores (excluida t). El armado caduca tras armed_ttl barras. Armado, largo si C > upper, corto si C < lower. Salida al cruzar la media contra la posición.
  • Límite: necesita ≥ 271 barras de historia: no sirve para series cortas.

P06 · Supertrend

Supertrend de 10 y 3 con entradas y salidas

Figura 3. P06 (period 10, multiplier 3): largo mientras Supertrend está en modo alcista.

  • Regla: bandas básicas HL2 ± m·ATR(n); las bandas finales son recursivas (la superior solo baja, salvo ruptura). Dirección inicial +1; cambia a −1 si C < banda inferior final, a +1 si C > banda superior final. Objetivo = dirección.
  • Nota: siempre en mercado desde la primera barra válida; reversiones con delta 2.

P07 · UT Bot: trailing ATR

  • Regla: nLoss = key·ATR(n); un stop recursivo que sigue al precio (sube con él en largo, baja en corto). Objetivo +1/−1 al cruce del cierre sobre/bajo el stop.
  • Límite: en 1min con key_value bajo, nLoss puede ser menor que el tick: se avisa en run_metrics.

P08 · Squeeze Momentum (TTM/LazyBear)

  • Regla: squeeze cuando Bollinger está estrictamente dentro de Keltner. Liberación = había squeeze en t−1 y no en t. El momento m es el valor final de una regresión lineal rolling. Entrar en la liberación según el signo de m; salir cuando m cambia de signo (variante explícita).

P09 · WaveTrend

  • Regla: AP = HLC3, ESA = EMA(AP), CI = (AP − ESA)/(0,015·D), WT1 = EMA(CI), WT2 = SMA(WT1, 4). Desde plano: largo al cruce WT1 sobre WT2 si WT1 < −level; corto simétrico. Salida al cruce contrario.
  • Límite: FX con reserva grave (hlc3 contaminado por OHLC inválidos).

P10 · Ichimoku: Tenkan/Kijun y nube causal

  • Regla: Tenkan, Kijun y Senkou B son puntos medios de máximos/mínimos. La nube que "se dibuja" en t usa A[t−26], B[t−26]: causal, sin mirar al futuro. Largo al cruce TK alcista con el cierre sobre ambas líneas; salida si el cierre entra en la nube o hay cruce contrario.

P11 · Donchian / Turtle simplificado

Canal de Donchian con entrada 20 y salida 10

Figura 4. P11 (entrada 20, salida 10): ruptura del máximo de 20 barras para entrar; pérdida del mínimo de 10 para salir.

  • Regla: canal de entrada = máximo y mínimo de las entry barras estrictamente anteriores. Largo si C supera el máximo; corto si rompe el mínimo. Salida con el canal de exit barras. Sin piramidación.
  • Rejilla: 15 cartesianos, 14 válidos (se excluye entry = exit = 20).

P12 · Opening Range Breakout

Rango de apertura de 30 minutos y ruptura intradía

Figura 5. P12 (range_minutes 30): el rango de los primeros 30 minutos define los niveles; la ruptura se ejecuta en el open siguiente y la posición se cierra con la sesión.

  • Regla: rango = máximo/mínimo de los primeros M minutos completos de la sesión regular. Después, primera ruptura de cierre; como máximo una entrada por sesión. Salida al cruzar el punto medio o cierre programado en la apertura de la última barra regular.
  • Límite: solo NVDA y KO intradía. La última barra se determina por session_id, nunca por la hora del reloj (falla con DST y cierres anticipados a las 13:00).

P13 · VWAP de sesión: reversión

  • Regla: VWAP = Σ(V·HLC3)/ΣV, z = (C − VWAP)/√var. Tras min_minutes, largo al volver por encima de −z_entry; corto simétrico. Salida al cruzar cero o con el cierre programado de ORB.
  • Límite: necesita volumen real: FX no sirve; 1d tampoco (var = 0).

P14 · Parabolic SAR

  • Regla: objetivo +1 cuando SAR < C, −1 cuando SAR > C; igualdad conserva. El punto SAR produce una señal de cierre, no una orden stop intrabarra (SIM-S).

P15 · DMI/ADX filtrado

  • Regla: con ADX ≥ entry_adx, objetivo según qué DI domina. Con ADX < exit_adx, objetivo 0. Entre umbrales, conserva (histéresis). El ADX mide fuerza, no dirección.

P16 · Keltner: ruptura tendencial

  • Regla: canal EMA(C, n) ± k·ATR(a). Largo al cruce del cierre sobre la banda superior; corto bajo la inferior. Salida al atravesar la EMA contra la posición.
  • Divergencia nativa: con indicator_provider=native, Nautilus usa dos semillas distintas de la canónica (EMA nt_seed_first_value; ATR nt_seed_first_value_sma_inner, que no converge con el ma_type por defecto). Una banda distinta cambia el índice exacto del cruce → señales distintas. Se ejecuta como VARIANT y se reporta con su primera divergencia; no se usa KeltnerChannel nativo (otra fórmula).

P17 · Stochastic RSI

  • Regla: Stoch = 100·(RSI − min)/(max − min), K = SMA(Stoch, 3), D = SMA(K, 3). Largo en cruce K>D con K<20; corto en cruce K80. Si el rango del RSI es cero, Stoch = 50.

P18 · Hull Suite (dirección de HMA)

  • Regla: HMA(n) = WMA(2·WMA(C, ⌊n/2⌋) − WMA(C, n), round_half_up(√n)). Objetivo +1 si HMA[t] > HMA[t−lag], −1 si menor.
  • Trampas de redondeo: int(√32) = 5 pero round_half_up(√32) = 6; round(55/2) = 28 pero ⌊55/2⌋ = 27. Los tests usan period = 32, el caso discriminante.
  • Divergencia nativa: la HullMovingAverage de Nautilus no tiene semilla (tres ventanas finitas), así que es la candidata a primera variante nativa que coincida bit a bit. Mientras no se verifique, se mapea como VARIANT con su primera divergencia (D-39).

P19 · Chandelier Exit

  • Regla: long_stop = HH(n) − k·ATR(n) (solo sube mientras el cierre previo esté por encima), short_stop = LL(n) + k·ATR(n) simétrico. Dirección +1 si C > short_stop_prev, −1 si C < long_stop_prev.

P20 · SMC / BOS con pivotes confirmados

  • Regla: un pivote alto en j exige H[j] estrictamente mayor que los p vecinos a cada lado; solo está disponible en j + p (confirmación causal). Objetivo +1 si un cierre rompe el último swing alto; −1 si rompe el bajo. Consumir el nivel roto.

3. Cómo leer las tablas paso a paso

Todas las tablas siguientes tienen las mismas columnas:

Columna Significado
t Índice de barra
O / C Apertura y cierre
Indicador(es) El valor que decide
target / razón Lo que la política decide al cierre de t
Orden / fill Lo que el ledger ejecuta en la apertura de t (por una decisión de t−1)
pos Posición al cierre de t
Equity caja + pos · C[t] al cierre, sin costes
Equity con costes La misma, restando las comisiones acumuladas (5 pb)
sequenceDiagram
    participant Pol as Política (cierre t)
    participant Led as Ledger
    participant Mer as Mercado (apertura t+1)
    Pol->>Led: target[t] = +1 (razón ENTRY)
    Led->>Led: delta = target − posición = +1
    Led->>Mer: orden BUY 1 a mercado
    Mer-->>Led: fill a open[t+1]
    Led->>Led: caja −= precio + comisión

4. Ejemplo 1 — P01, cruce EMA 3/5

Fixture de P01.md §6: fast = 3, slow = 5 (fuera de la rejilla a propósito). Las barras 0–5 son planas a 100; la EMA3 es válida desde t = 2, la EMA5 desde t = 4.

t O C EMA3 EMA5 target razón orden / fill pos Equity Eq. con costes
6 100,00 100,00 100,000000 100,000000 0 HOLD 0 1.000,00 1.000,00
7 100,00 100,00 100,000000 100,000000 0 HOLD 0 1.000,00 1.000,00
8 100,50 102,00 101,000000 100,666667 +1 ENTRY 0 1.000,00 1.000,00
9 102,50 104,00 102,500000 101,777778 +1 HOLD BUY 1 @ 102,50 (com. 0,05) +1 1.001,50 1.001,45
10 104,50 106,00 104,250000 103,185185 +1 HOLD +1 1.003,50 1.003,45
11 106,00 105,00 104,625000 103,790123 +1 HOLD +1 1.002,50 1.002,45
12 104,50 103,00 103,812500 103,526749 +1 HOLD +1 1.000,50 1.000,45
13 102,50 101,00 102,406250 102,684499 −1 REVERSAL +1 998,50 998,45
14 100,50 99,00 100,703125 101,456333 −1 HOLD SELL 2 @ 100,50 (com. 0,10) −1 999,50 999,35
15 98,50 97,00 98,851562 99,970889 −1 HOLD −1 1.001,50 1.001,35

Qué observar:

  1. Barras 4–7: empate exacto. Las dos EMA valen 100,000000 bit a bit. La igualdad conserva el estado inicial 0: ninguna orden.
  2. Barra 8: la señal. EMA3 = 0,5·102 + 0,5·100 = 101; EMA5 = (1/3)·102 + (2/3)·100 = 100,666667. Rápida > lenta → +1. Pero la barra 8 ya cerró: el fill es en open[9] = 102,50, no en close[8] = 102,00.
  3. Barra 13: la reversión. Pasar de +1 a −1 es una orden de 2 unidades en open[14] = 100,50, y paga comisión por 2 (2 · 100,50 · 0,0005 = 0,1005 → 0,10).
  4. Final: la posición corta queda abierta; la equity se valora al último cierre: 1.098,50 − 97,00 = 1.001,50. No se liquida automáticamente.

5. Ejemplo 2 — P02, RSI(3) 30/70

Fixture de P02.md §6: period = 3, lower = 30, upper = 70. El precio cae de 100 a 94 (RSI a 0) y luego rebota.

t O C RSI target razón orden / fill pos Equity Eq. con costes
6 95,50 94,00 0,000000 0 HOLD 0 1.000,00 1.000,00
7 94,00 94,50 15,083799 0 HOLD 0 1.000,00 1.000,00
8 94,60 95,00 30,751708 +1 ENTRY 0 1.000,00 1.000,00
9 95,20 96,00 55,425220 0 EXIT BUY 1 @ 95,20 +1 1.000,80 1.000,75
10 96,50 98,00 78,454996 0 HOLD SELL 1 @ 96,50 0 1.001,30 1.001,20
11 98,50 100,00 87,861849 0 HOLD 0 1.001,30 1.001,20
12 99,80 99,00 66,187916 −1 ENTRY 0 1.001,30 1.001,20
13 98,80 98,00 48,311539 0 EXIT SELL 1 @ 98,80 −1 1.002,10 1.001,95
14 97,80 97,00 34,382309 0 HOLD BUY 1 @ 97,80 0 1.002,30 1.002,10
15 96,80 96,00 24,001922 0 HOLD 0 1.002,30 1.002,10

Qué observar:

  1. Barra 8: RSI[7] = 15,08 ≤ 30 y RSI[8] = 30,75 > 30 → cruce hacia arriba → entrada larga. El RSI se calcula con la media de Wilder (RMA) sembrada con una SMA.
  2. Barra 9: el RSI ya está en 55 ≥ 50 → salida. Resultado: una operación de una sola barra (compra en 95,20, venta en 96,50: +1,30 bruto).
  3. Barra 12: RSI[11] = 87,86 ≥ 70 y RSI[12] = 66,19 < 70 → cruce hacia abajo → corto. En la barra 13 el RSI ya es ≤ 50 → salida.
  4. P02 nunca invierte: no hay ningún delta de 2. Tras salir siempre vuelve a 0.
  5. Cuatro fills × 0,05 = 0,20 de comisiones: sobre una ganancia bruta de 2,30, los costes se comen casi un 9 %. En 5 minutos con cientos de operaciones esto se nota mucho (lo verás en el ejemplo completo).

6. Ejemplo 3 — P04, Bollinger(3, k = 1)

Fixture de P04.md §6: period = 3, k = 1,0. En las barras 2–3 la desviación es exactamente 0 (caso degenerado): no se puede entrar.

t O C media lower upper target razón orden / fill pos Equity Eq. con costes
4 99,50 97,00 99,000000 97,585786 100,414214 0 HOLD 0 1.000,00 1.000,00
5 97,50 99,00 98,666667 97,419448 99,913886 +1 ENTRY 0 1.000,00 1.000,00
6 99,50 101,00 99,000000 97,367007 100,632993 0 EXIT BUY 1 @ 99,50 +1 1.001,50 1.001,45
7 100,50 96,00 98,666667 96,611862 100,721471 −1 ENTRY SELL 1 @ 100,50 0 1.001,00 1.000,90
8 96,50 100,00 99,000000 96,839753 101,160247 −1 HOLD SELL 1 @ 96,50 −1 997,50 997,35
9 100,50 101,00 99,000000 96,839753 101,160247 −1 HOLD −1 996,50 996,35
10 101,50 103,00 101,333333 100,086114 102,580552 −1 HOLD −1 994,50 994,35
11 103,50 105,00 103,000000 101,367007 104,632993 −1 HOLD −1 992,50 992,35
12 105,50 110,00 106,000000 103,056080 108,943920 −1 HOLD −1 987,50 987,35
13 109,50 104,00 106,333333 103,708664 108,958003 0 EXIT −1 993,50 993,35
14 104,50 103,00 105,666667 102,575461 108,757873 0 HOLD BUY 1 @ 104,50 0 993,00 992,80
15 103,50 100,00 102,333333 100,633660 104,033007 0 HOLD 0 993,00 992,80

Qué observar:

  1. Barra 5 (reentrada): C[4] = 97 < lower[4] = 97,585786 y C[5] = 99 ≥ lower[5] = 97,419448. El precio salió por abajo y volvió a entrar: largo.
  2. Barra 6: C = 101 ≥ media = 99 → salida. Buen trade: +1,00 bruto.
  3. Barra 7: C[6] = 101 > upper[6] y C[7] = 96 ≤ upper[7] → reentrada por arriba → corto.
  4. Barras 8–12: el trade malo. El corto se abre a 96,50 y el precio sube hasta 110. En la barra 8 la condición de largo se cumple, pero se ignora porque el estado es −1: solo cuenta la salida (C ≤ media), que no llega hasta la barra 13.
  5. Resultado final −7,00 sin costes, −7,20 con costes: una estrategia de reversión sufre cuando el mercado se pone en tendencia.

7. Ejemplo 4 — P06, Supertrend(3, m = 1)

Fixture de P06.md §6: period = 3, multiplier = 1,0. Supertrend está siempre en mercado desde la primera barra válida (dirección inicial +1).

t O C banda sup. final banda inf. final dirección razón orden / fill pos Equity Eq. con costes
2 101,50 102,00 104,000000 100,000000 +1 ENTRY 0 1.000,00 1.000,00
3 102,50 103,00 104,000000 101,000000 +1 HOLD BUY 1 @ 102,50 +1 1.000,50 1.000,45
4 103,50 103,00 104,000000 101,166667 +1 HOLD +1 1.000,50 1.000,45
5 102,50 101,00 104,000000 101,166667 −1 REVERSAL +1 998,50 998,45
6 100,50 99,00 102,203704 96,796296 −1 HOLD SELL 2 @ 100,50 −1 999,50 999,35
7 98,50 97,00 100,302469 96,796296 −1 HOLD −1 1.001,50 1.001,35
8 96,50 95,00 98,368313 96,796296 −1 HOLD −1 1.003,50 1.003,35
9 94,50 95,00 97,412209 91,587791 −1 HOLD −1 1.003,50 1.003,35
10 95,50 97,00 97,412209 93,558528 −1 HOLD −1 1.001,50 1.001,35
11 97,50 99,00 97,412209 95,539018 +1 REVERSAL −1 999,50 999,35
12 99,50 101,00 103,473988 97,526012 +1 HOLD BUY 2 @ 99,50 +1 1.000,50 1.000,25
13 101,50 103,00 103,473988 99,517342 +1 HOLD +1 1.002,50 1.002,25

Al cierre de la barra 15 (última) la posición larga sigue abierta: equity 1.004,50 sin costes y 1.004,25 con costes (0,05 + 0,10 + 0,10).

Qué observar:

  1. La banda "tiene memoria". En la barra 5 la banda inferior básica sería 98,944444, pero la final se queda en 101,166667 (la de la barra 4): la banda inferior solo sube. El cierre 101 < 101,166667 → cambio a −1. Con una banda rolling sin memoria no habría habido corte en la barra 5.
  2. Dos reversiones con delta 2 (barras 6 y 12): comisión doble.
  3. La banda superior va bajando durante la caída (102,20 → 100,30 → 98,37 → 97,41): el stop "persigue" al precio hasta que en la barra 11 el cierre 99 la supera.

8. Ejemplo 5 — P11, Donchian(4, 2)

Fixture de P11.md §6: entry = 4, exit = 2. Los canales usan barras estrictamente anteriores (EU = máximo de high[t−4..t−1]).

t O C EU (máx 4) EL (mín 4) XU (máx 2) XL (mín 2) target razón orden / fill pos Equity Eq. con costes
4 101,20 102,50 102,50 99,00 102,50 99,50 0 HOLD 0 1.000,00 1.000,00
5 102,50 104,00 103,00 99,50 103,00 100,50 +1 ENTRY 0 1.000,00 1.000,00
6 104,50 105,00 105,00 99,50 105,00 101,00 +1 HOLD BUY 1 @ 104,50 +1 1.000,50 1.000,45
7 103,50 102,00 106,00 100,50 106,00 102,00 +1 HOLD +1 997,50 997,45
8 101,50 100,00 106,00 101,00 106,00 101,00 0 EXIT +1 995,50 995,45
9 99,50 98,00 106,00 99,00 104,00 99,00 −1 ENTRY SELL 1 @ 99,50 0 995,00 994,90
10 98,50 97,00 106,00 97,00 102,00 97,00 −1 HOLD SELL 1 @ 98,50 −1 996,50 996,35
11 97,50 96,00 104,00 96,00 100,00 96,00 −1 HOLD −1 997,50 997,35
12 96,50 95,00 102,00 95,00 99,00 95,00 −1 HOLD −1 998,50 998,35
13 96,50 98,00 100,00 94,00 98,00 94,00 −1 HOLD −1 995,50 995,35
14 98,50 100,00 99,00 94,00 99,00 94,00 0 EXIT −1 993,50 993,35
15 100,50 102,00 101,00 94,00 101,00 96,00 +1 ENTRY BUY 1 @ 100,50 0 993,00 992,80

Qué observar:

  1. Barra 4: igualdad no es ruptura. C = 102,50 y EU = 102,50: "supera" exige >, así que no hay entrada.
  2. Barra 8: salida y entrada contraria a la vez. C = 100 < XL = 101 (salida del largo) y C < EL = 101 (entrada corta). Como es una estrategia desde plano, la salida gana y no se invierte en esa decisión; el corto llega en la barra 9 con su propia señal.
  3. Barra 15: señal sin fill. Hay una entrada larga en la última barra, pero no existe open[16]. El ledger no inventa un fill futuro: la equity final se calcula con posición 0.

9. Lo que enseñan los cinco ejemplos

Receta Fills Deltas de 2 Equity final sin / con costes Estilo
P01 2 1 1.001,50 / 1.001,35 dirección continua
P02 4 0 1.002,30 / 1.002,10 desde plano, operaciones cortas
P04 4 0 993,00 / 992,80 reversión, sufre en tendencia
P06 3 2 1.004,50 / 1.004,25 siempre en mercado
P11 4 0 993,00 / 992,80 ruptura, salida con canal corto

Esto no dice qué estrategia es mejor

Son 16 barras sintéticas diseñadas para ejercitar casos límite (empates, reversiones, última señal). Sirven para entender la mecánica y para que los tests comprueben el código al céntimo. Para evaluar una estrategia necesitas datos reales, costes realistas y validación fuera de muestra: ver Walk-forward.

Fichas completas

Este capítulo solo recorre cinco recetas. La ficha completa de cada una (fórmula, parámetros, rejilla, fixture y tests) está en populares/Pxx.md (índice):

P01 · P02 · P03 · P04 · P05 · P06 · P07 · P08 · P09 · P10 · P11 · P12 · P13 · P14 · P15 · P16 · P17 · P18 · P19 · P20

Resumen

  • Las 20 recetas P comparten tubería (features → política → ledger SIM-S) y contrato next-open: se decide al cierre de t, se ejecuta en la apertura de t+1.
  • Hay dos estilos: desde plano (P02, P04, P11, P16…) y dirección continua (P01, P06, P14, P18…), que produce reversiones de 2 unidades.
  • P12 y P13 solo sirven en intradía NVDA/KO; en 1h con los defaults son UNSUPPORTED (30 no es múltiplo de 60).
  • P16 y P18 tienen variantes nativas de Nautilus que se ejecutan y se reportan como VARIANT con su primera divergencia, nunca se ocultan.
  • Los costes importan: con 5 pb, cada fill cuesta y las reversiones pagan doble.

Para practicar

  1. En el ejemplo de P01, recalcula la EMA5 de la barra 9 a mano: (1/3)·104 + (2/3)·100,666667.
  2. En P04, ¿por qué la barra 8 tiene enter_long cierto pero el objetivo sigue en −1?
  3. En P06, calcula cuánto habría costado la barra 12 con un escenario de 10 pb.
  4. Ejecuta P11 con entry = 20, exit = 20. ¿Qué error esperas y por qué?
  5. Localiza en docs/estrategias/P12.md la tabla de range_minutes válidos por timeframe y explica qué candidatos quedan en 1h.