# Estudio 01 · Protocolo pre-registrado · v0.4

**Serie:** estudios reproducibles sobre estrategias públicas · **Autor:** Ignacio Arias, TRAVIDENCE · **Redacción:** 2026-10-08.

**Registro.** Este archivo queda registrado cuando su huella sha256 se publica en X desde la cuenta @_ignacioarias. El archivo (UTF-8, sin BOM, saltos de línea LF) se publica después en travidence.com junto con el estudio; la huella publicada en el registro se calcula sobre esos bytes exactos. Después del registro este archivo no cambia: cualquier cambio es una versión nueva, con su propia huella y una fila en la bitácora de intentos (§5).

**Qué se consultó antes del registro.** No se había descargado la serie de precios ni calculado ninguna media, señal o métrica. Sí se consultaron: las páginas de condiciones de uso y de descripción de las fuentes; las tablas públicas de tasas de interés del Banco Central Europeo y de la Reserva Federal; algunas filas de la página histórica del euro de la publicación H.10 (enero de 2000 y octubre-noviembre de 2002), al verificar su formato; la página de cargos y un artículo de ayuda de IG; y los dos scripts de TradingView citados en §5.

**Este estudio no es un certificado ni usa el puntaje de la plataforma TRAVIDENCE.** Usa únicamente reglas, datos y métricas públicos, y su código no usa ningún componente de la plataforma.

Todas las fechas de este documento están en formato AAAA-MM-DD.

---

## 1 · Hipótesis

**H1.** La regla pública «cruce de EMA 9/20», en la versión que este estudio fija como canónica —dos direcciones, en mercado desde el inicio de la ventana de evaluación (salvo el empate exacto descrito en §2), salida por cruce contrario, sin filtros, sin stop ni objetivo—, aplicada a la serie diaria EUR/USD de la publicación H.10 de la Reserva Federal, produce en el escenario de costos base (§4) un Sharpe cuyo **Deflated Sharpe Ratio (DSR) es igual o mayor que 0.95**.

El DSR (Bailey y López de Prado, 2014) estima la probabilidad de que el Sharpe verdadero supere el umbral SR₀, teniendo en cuenta la asimetría y la curtosis de los retornos y el tamaño de la muestra. SR₀ es el máximo Sharpe que cabría esperar entre N configuraciones cuyo Sharpe verdadero es cero, dados su número y la dispersión de sus Sharpe (fórmulas en §6). La variante 1 fue designada antes de correr; aun así se le aplica la deflación como si hubiera sido elegida entre las N (criterio conservador).

**Lo que el estudio no pretende:** recomendar la estrategia, mejorarla ni emitir un veredicto sobre ella. Muestra un método —registro previo, bitácora de intentos y métricas estándar— aplicado a un caso público.

## 2 · Reglas de la estrategia

**Barras.** Una barra es un fijo diario (tipo de cambio de referencia del mediodía de Nueva York) publicado por la H.10 para el euro, en dólares por euro. Los días marcados «ND» (sin dato) no son barras: no entran al cálculo de ninguna media ni a ninguna ejecución. Las barras se numeran en orden desde la primera de la serie: la barra 1 es el primer fijo publicado a partir de 1999-01-04. Pₜ es el fijo de la barra t y L es la última barra con fecha igual o anterior a 2026-09-30.

**Medias.** Cada variante usa una media rápida de n₁ periodos y una lenta de n₂ periodos. Para cada una, con n = n₁ o n = n₂ según corresponda: EMA(1) = P₁ y EMA(t) = α·Pₜ + (1 − α)·EMA(t − 1), con α = 2/(n + 1).

| Elemento | Regla |
|---|---|
| Calentamiento | Las barras 1 a 1,000 solo calculan las medias. Es común a las cuatro variantes, que así se evalúan sobre la misma ventana |
| Posición inicial | En la barra 1,000 cada variante toma la dirección del signo de (EMA rápida − EMA lenta) y la ejecuta en la barra 1,001. Si las dos medias son exactamente iguales en la barra 1,000, la variante no toma posición y espera su primera señal |
| Señal larga | En la barra t (t ≥ 1,001): EMA rápida(t) > EMA lenta(t) y EMA rápida(t − 1) ≤ EMA lenta(t − 1) |
| Señal corta | En la barra t (t ≥ 1,001): EMA rápida(t) < EMA lenta(t) y EMA rápida(t − 1) ≥ EMA lenta(t − 1) |
| Ejecución | Una señal detectada en la barra t se ejecuta en la barra t + 1, nunca en la barra que la genera |
| Tamaño | Exposición de 1× sobre el capital, sin apalancamiento, rebalanceada en cada barra (definición exacta en §4) |
| Cambio de dirección | Cada señal cierra la posición vigente y abre la contraria en la misma ejecución |
| Señal en la dirección vigente | Se ignora y no tiene costo |
| Cierre de la ventana | La posición abierta se cierra en la barra L pagando un lado de spread. Una señal detectada en la barra L no se ejecuta; si una ejecución pendiente cae en la barra L, solo se cierra la posición vigente |
| Filtros, stops, objetivos | Ninguno. Cualquier adición es una variante nueva (§5) |

**Ventana de evaluación:** de la barra 1,001 a la barra L. Con unos 250 fijos por año, arranca hacia finales de 2002 o inicios de 2003; la fecha exacta queda en el anexo de datos (§3).

## 3 · Datos

| Fuente | Contenido | Condiciones de uso (consultadas el 2026-10-08) |
|---|---|---|
| Board of Governors of the Federal Reserve System, publicación H.10 Foreign Exchange Rates | Serie diaria del euro (dólares por euro): «noon buying rates in New York for cable transfers payable in the listed currencies» ([descripción de la H.10](https://www.federalreserve.gov/releases/h10/about.htm)) | [Aviso legal del Board](https://www.federalreserve.gov/disclaimer.htm) (actualizado el 2024-08-02): «Unless otherwise indicated, information on Board's website is in the public domain and may be copied and distributed without permission. Please cite to the Board as the source of the information.» |
| Board of Governors of the Federal Reserve System, [Open Market Operations](https://www.federalreserve.gov/monetarypolicy/openmarket.htm) y su [archivo histórico](https://www.federalreserve.gov/monetarypolicy/openmarket_archive.htm) | Objetivo de fondos federales del FOMC (Comité Federal de Mercado Abierto) | El mismo aviso legal del Board |
| European Central Bank, ECB Data Portal | Tasa de la facilidad de depósito del BCE | [Policy regarding the reuse of ESCB statistics](https://www.ecb.europa.eu/stats/ecb_statistics/governance_and_quality_framework/html/usage_policy.en.html) (publicada el 2026-08-13): reutilización gratuita «irrespective of any subsequent commercial or non-commercial use», citando «Source: ECB statistics» y sin modificar las estadísticas |

- **Archivos.** Se descargan cinco archivos, una sola vez: (1) la serie del euro del Data Download Program del Board; (2) la página histórica del euro de la H.10, solo como control de igualdad (si difiere del archivo 1, rige el archivo 1 y las diferencias se listan); (3) la página vigente de Open Market Operations; (4) su archivo histórico; (5) la serie de la tasa de la facilidad de depósito del ECB Data Portal, en CSV. Cada archivo se guarda sin ninguna modificación, con fecha, hora y sha256.
- **Anexo de datos.** Antes de calcular cualquier señal se publica en X, desde @_ignacioarias, la huella sha256 de un anexo fechado que fija: URL e identificador exactos de cada descarga, fecha y hora, sha256 de cada archivo, número de barras, días «ND», fechas de las barras 1,000, 1,001 y L, y cualquier anomalía. El anexo no modifica este archivo.
- **Por qué se congela.** La H.10 advierte: «past releases are not revised and may not reflect subsequent revisions to the data». Una descarga posterior podría traer otros números; con los archivos congelados, cualquiera reproduce el estudio con los mismos bytes.
- **Publicación.** Los cinco archivos se publican tal cual, junto al código, con su sha256 y su cita. Todo lo que el estudio calcula (punto medio del rango del FOMC, swap diario, medias) lo genera el código al correr; no se guarda como versión modificada de ninguna estadística.
- **Periodo.** De 1999-01-04 (inicio de la serie del euro) a 2026-09-30, fin del último mes completo antes del registro. Nada posterior entra al estudio.
- **Tramo final.** Los últimos 24 meses de la ventana (2024-10-01 a 2026-09-30) se reportan por separado, dentro de la misma corrida: la posición se hereda, sin reapertura ni costo adicional. Como no hay optimización ni selección con estos datos, el tramo final no decide nada: es un corte de lectura.
- **Integridad.** Fijos faltantes o no numéricos se listan, no se rellenan y no son barras. Si hay fechas duplicadas, el código se detiene.

## 4 · Capital, costos y sensibilidad

**Capital.** El capital K se mide en dólares. Kₜ⁻ es el capital en la barra t antes de los costos de ejecución de esa barra y Kₜ⁺ el capital después. dₜ = +1 si la posición tras ejecutar en t es larga, −1 si es corta y 0 si no hay posición. Valores iniciales: K₁,₀₀₀⁺ = 1 y dₜ = 0 para t ≤ 1,000. Para t = 1,001, …, L:

Kₜ⁻ = Kₜ₋₁⁺ · [1 + dₜ₋₁ · (Pₜ / Pₜ₋₁ − 1)] + Sₜ₋₁

Kₜ⁺ = Kₜ⁻ − cₜ

donde Sₜ₋₁ es el swap del intervalo entre las barras t − 1 y t, y cₜ el costo de spread de las ejecuciones de la barra t (0 si no hay ejecución). La recursión mantiene una exposición igual a Kₜ⁺ en cada barra; ese rebalanceo diario no paga spread (supuesto declarado). Solo pagan spread la entrada, los cambios de dirección y el cierre. El fijo de la H.10 se trata como precio medio; el spread se cobra aparte.

**Escenario base** (el único que decide H1):

| Concepto | Regla |
|---|---|
| Spread | 2.0 pips por lado = 0.0002 dólares por euro. cₜ = (número de lados ejecutados en t) · (0.0002 / Pₜ) · Kₜ⁻. Toda entrada desde posición nula paga un lado; un cambio de dirección paga dos; el cierre de la ventana paga uno, y cero si en la barra L no hay posición |
| Swap | Sₜ = Kₜ⁺ · |dₜ| · (r_comprada − r_vendida − m) · Dₜ / 360, donde Dₜ son los días naturales entre las fechas de las barras t y t + 1. En largo EUR/USD la moneda comprada es el euro y la vendida el dólar; en corto, al revés. r_EUR = tasa de la facilidad de depósito del BCE; r_USD = objetivo del FOMC (desde 2008-12-16, punto medio del rango). Todas las tasas y m se expresan como fracción anual (2.00 % = 0.02). Se usan las tasas vigentes en la barra t: para el BCE, la última observación del archivo 5 con fecha igual o anterior a la fecha de t (las fechas de esa serie son fechas de entrada en vigor); para el FOMC, la última decisión con fecha anterior a la de t, porque la tabla del FOMC da la fecha de la decisión, normalmente anunciada después del fijo del mediodía, y por eso rige desde el fijo siguiente. m = 1.0 % anual en contra, tanto en largos como en cortos. Un Sₜ positivo suma al capital y uno negativo resta |
| Comisión | 0 (en cuentas estándar el costo va en el spread) |
| Impuestos | No se modelan; se declaran como límite |

**Escenarios de sensibilidad** (fijados ahora; bajo y alto solo se reportan y no deciden nada; la fila base repite el escenario base):

| Escenario | Spread por lado | m |
|---|---|---|
| Bajo | 1 pip (0.0001) | 0.5 % anual |
| Base | 2 pips (0.0002) | 1.0 % anual |
| Alto | 4 pips (0.0004) | 2.0 % anual |

**Supuestos declarados y sus límites.**
- El costo base (2 pips por lado, 4 por vuelta completa) es unas 6.7 veces el medio spread mínimo que hoy publica IG para EUR/USD (0.6 puntos de spread, 0.3 por lado; [página de cargos de IG](https://www.ig.com/uk/charges), consultada el 2026-10-08). No encontramos una fuente pública verificable de spreads minoristas para los primeros años de la ventana; el escenario alto muestra el resultado con el doble del costo base.
- IG, por ejemplo, calcula la financiación nocturna de divisas sobre la tasa interbancaria tom-next más una comisión administrativa ([artículo de ayuda de IG](https://www.ig.com/uk/help-and-support/articles/681712-what-is-overnight-funding-how-is-it-charged-and-how-is-it-calculated): «tom-next rate plus an admin fee»); su página de cargos lista «1% for FX» y «1.5% for FX» en dos secciones de producto distintas. Aquí se usan las tasas de política monetaria de los dos bancos centrales como aproximación, y m = 1.0 % es una convención declarada.
- Dₜ/360 sobre días naturales cubre fines de semana y feriados sin modelar por separado el cargo triple de los miércoles que algunos brókers aplican por la liquidación a dos días.

Un cambio de cualquier valor de esta sección después de ver resultados es una variante nueva.

## 5 · Variantes declaradas y bitácora de intentos

El estudio declara antes de correr las cuatro configuraciones que se van a mirar, todas sobre la misma serie diaria y la misma ventana:

| Variante | Par EMA (n₁ / n₂) | Por qué está aquí |
|---|---|---|
| 1 (H1) | 9 / 20 | La regla pública que se estudia; por ejemplo, el script de código abierto [«EMA 9 & 20 Cross Strategy»](https://www.tradingview.com/script/FwyqBaAX-EMA-9-20-Cross-Strategy/) en TradingView |
| 2 | 9 / 21 | Un par «hermano» muy citado en guías y scripts de cruce de EMAs; por ejemplo, el indicador [«EMA 9 & 21 Crossover D-Line»](https://www.tradingview.com/script/CCLaOJyy-EMA-9-21-Crossover-D-Line/) en TradingView |
| 3 | 12 / 26 | Los periodos por defecto del MACD, reutilizados como cruce |
| 4 | 50 / 200 | La versión EMA del par que el trader minorista conoce como «Golden Cross / Death Cross» (el clásico usa medias simples); en barras diarias produce pocas operaciones y sirve para mostrar el problema de la muestra pequeña |

Todo lo demás (solo largos, filtros, stops, otro marco temporal, otro activo, otra fuente de precio) **no se corre**. Si durante el estudio se corre cualquier configuración no listada, se registra como fila nueva de la bitácora.

**Bitácora de intentos** (cinco columnas): número · fecha · qué cambió respecto a la anterior · qué se vio en el resultado anterior que llevó al cambio · resultado mirado y si se conservó o se descartó. Para las variantes 1 a 4 la cuarta columna dice «declarada en el protocolo antes de correr». La bitácora se redacta a mano y se publica junto a las métricas.

**Fila 0.** Las versiones v0.1 a v0.3 de este protocolo (2026-10-07) planteaban el mismo estudio sobre BTCUSDT perpetuo. El 2026-10-08 el instrumento cambió a EUR/USD porque en ninguna de las fuentes de precios de BTC revisadas encontramos términos que autoricen expresamente a una firma comercial a publicar resultados derivados sin una licencia escrita. El cambio se hizo sin haber descargado ni corrido nada sobre BTC ni sobre EUR/USD. La fila queda en la bitácora para que se vea; como no se miró ningún resultado, no cuenta como intento.

**n_trials** cuenta las configuraciones distintas de la regla (par de EMA, dirección, filtros, marco temporal, activo o fuente) cuyo resultado se miró, al cierre del estudio; por construcción, 4 o más. La Fila 0, los escenarios de costos, las corridas de atribución y la referencia no son intentos y no entran. Volver a correr una configuración ya registrada tras corregir un error de código se anota en la bitácora, pero no suma; se publica la corrida con el código final. Ese mismo conjunto de configuraciones entra a N, a la varianza de los Sharpe y a la matriz del PBO. Una configuración que no comparta las barras de la ventana (otro marco temporal, activo o fuente) cuenta en N, pero no entra a la varianza de los Sharpe ni a la matriz del PBO; si existe, se declara junto al DSR.

## 6 · Métricas

Todas se calculan con código propio del estudio, a partir de métodos publicados.

- **Retornos.** Rₜ = Kₜ⁺ / Kₜ₋₁⁺ − 1 para t = 1,001, …, L (netos de spread y swap). Por construcción, R₁,₀₀₁ es el costo de entrada (en el escenario base, −0.0002 / P₁,₀₀₁), o 0 si la variante no tomó posición en la barra 1,000; el número de retornos es T = L − 1,000.
- **Sharpe.** Cociente entre la media y la desviación estándar muestral (divisor n − 1) de Rₜ; anualizado multiplicando por √252, con tasa libre de riesgo 0. √252 es la convención de días hábiles; se reporta además el número de fijos por año de la ventana. Si la desviación estándar de una variante es 0, su Sharpe se reporta como 0 y se declara.
- **DSR** (Bailey y López de Prado, 2014) de la variante 1, con el Sharpe por barra (sin anualizar), SR̂:
  - γ̂₃ = m₃ / m₂^(3/2) y γ̂₄ = m₄ / m₂², con mₖ = (1/T)·Σ(Rₜ − R̄)ᵏ (momentos centrales sin corrección de sesgo; γ̂₄ es la curtosis de Pearson, cuyo valor en la distribución normal es 3).
  - V = varianza muestral (divisor N − 1) de los Sharpe por barra de las N configuraciones, con N = n_trials.
  - SR₀ = √V · [(1 − γ)·Φ⁻¹(1 − 1/N) + γ·Φ⁻¹(1 − 1/(N·e))], con γ = 0.5772156649 (constante de Euler-Mascheroni) y e la base de los logaritmos naturales.
  - DSR = Φ( (SR̂ − SR₀) · √(T − 1) / √(1 − γ̂₃·SR̂ + ((γ̂₄ − 1)/4)·SR̂²) ).
  - Φ y Φ⁻¹ son la distribución normal estándar y su inversa (`statistics.NormalDist` de la biblioteca estándar de Python).
  - Junto al DSR se reportan V, SR₀ y el PSR contra cero (la misma expresión con SR₀ = 0).
- **PBO** (Bailey, Borwein, López de Prado y Zhu, 2017) por validación cruzada combinatoria simétrica (CSCV): matriz de retornos Rₜ de las N configuraciones sobre las mismas barras; se descartan los (T mod 16) retornos más antiguos y el resto se divide en 16 bloques contiguos iguales; se recorren las 12,870 combinaciones de 8 bloques dentro de muestra y 8 fuera. En cada combinación, el Sharpe dentro y fuera de muestra es el Sharpe por barra (divisor n − 1) de los retornos concatenados de sus 8 bloques (si su desviación estándar es 0, ese Sharpe vale 0); la configuración con mayor Sharpe dentro de muestra (un empate lo gana la de menor número de variante) recibe su rango fuera de muestra (1 = menor Sharpe; los empates reciben el rango promedio); ω = rango / (N + 1); λ = ln(ω / (1 − ω)); PBO = proporción de combinaciones con λ ≤ 0. Solo en el escenario base.
- **Otras.** Drawdown máximo sobre Kₜ⁺; número de ejecuciones (cada barra con operación cuenta 1, incluidos la entrada inicial y el cierre); porcentaje de las barras t = 1,001, …, L con dₜ ≠ 0; tramo final calculado sobre los retornos de las barras con fecha de 2024-10-01 a 2026-09-30, ambas inclusive: retorno total = Π(1 + Rₜ) − 1; Sharpe anualizado con √252 como en la ventana completa; drawdown máximo sobre la curva reiniciada en 1 al inicio del tramo; ejecuciones contadas en las barras del tramo.
- **Atribución de costos.** Para la variante 1: diferencia de retorno total entre la corrida base y la misma corrida sin spread, y entre la corrida base y la misma corrida sin swap.
- **Sensibilidad.** Para los escenarios bajo y alto: Sharpe de las cuatro variantes y DSR de la variante 1, con V calculada en el mismo escenario y el mismo N.
- **Referencia de contexto, no comparación de mérito.** Exposición larga 1× en EUR/USD, rebalanceada como las variantes, durante toda la ventana: abre en la barra 1,001, paga el mismo spread de entrada y de cierre y el mismo swap.

**Límites que el estudio declara.** Con N = 4 configuraciones, varias muy parecidas entre sí (9/20, 9/21 y 12/26), V se estima con tres grados de libertad y la deflación del DSR es débil; por eso se reportan también SR₀ y el PSR contra cero. Con N = 4 y sin empates, el rango fuera de muestra solo toma cuatro valores (ω ∈ {0.2, 0.4, 0.6, 0.8}) y λ ≤ 0 equivale a quedar en los dos últimos lugares; el PBO puede quedar dominado por configuraciones casi idénticas.

## 7 · Criterio de descarte (fijado antes de correr)

- **H1 se descarta si el DSR de la variante 1 en el escenario base es menor que 0.95.** El umbral equivale a un nivel de significancia unilateral del 5 % y se fija aquí antes de correr. Si el DSR es igual o mayor que 0.95, H1 no se descarta. El criterio se evalúa sobre el valor en precisión completa (punto flotante de 64 bits), no sobre el valor redondeado, y la salida incluye una columna «DSR ≥ 0.95» con valor verdadero o falso.
- **Lectura secundaria:** si el PBO es 0.50 o mayor, en al menos la mitad de las combinaciones la configuración con mejor Sharpe dentro de muestra quedó en la mediana o por debajo fuera de muestra. Se reporta tal cual.
- Ni el descarte ni el no descarte de H1 son un veredicto sobre la estrategia fuera de esta serie, este periodo, estas reglas y estos costos.
- El resultado se publica sea cual sea. No existe ninguna condición bajo la cual el estudio no se publique por su resultado.

## 8 · Reproducción

- Código en Python (biblioteca estándar, pandas y numpy). Un archivo de requisitos fija las versiones exactas de Python, pandas y numpy. El código se publica con su sha256 junto a los cinco archivos de datos.
- Un solo comando verifica el sha256 de los cinco archivos de datos —si un byte no coincide, se detiene—, corre las cuatro variantes, la referencia, los tres escenarios de costos y las corridas de atribución sobre la misma ventana, y escribe las métricas. Las salidas numéricas se escriben redondeadas a 10 decimales.
- Antes de publicar, la reproducción se ejecuta en un entorno limpio y se comprueba que sus salidas coinciden byte a byte con las de la corrida publicada.
- Citas que acompañan al estudio y a los archivos: «Source: Board of Governors of the Federal Reserve System, H.10 Foreign Exchange Rates», «Source: Board of Governors of the Federal Reserve System, Open Market Operations» y «Source: ECB statistics».

## 9 · Referencias

- Bailey, D. H., y López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-Normality. *Journal of Portfolio Management*, 40(5), 94–107.
- Bailey, D. H., Borwein, J. M., López de Prado, M., y Zhu, Q. J. (2017). The Probability of Backtest Overfitting. *Journal of Computational Finance*, 20(4), 39–69. https://doi.org/10.21314/JCF.2016.322

---

*Versiones:* v0.1–v0.3 (2026-10-07), borradores sobre BTCUSDT perpetuo, nunca corridos (ver Fila 0). v0.4 (2026-10-08): EUR/USD de la H.10, periodo 1999-01-04 a 2026-09-30, calentamiento de 1,000 barras, ejecución en la barra siguiente, costos de spread y swap con escenarios de sensibilidad, Sharpe con √252, referencia de exposición larga, archivos de datos congelados y publicados.
