¿Nikkei 225 tiene días, meses u horas con un sesgo que se pueda medir? Hemos agregado 4.117.170 velas M1 del CFD del Nikkei 225 japonés entre febrero de 2012 y 12 de octubre de 2026 por día de la semana, mes del año, sesión y hora UTC, y hemos pasado cada resultado por un test de significancia. Resultado: Martes supera incluso la corrección por comparaciones múltiples; casi todo lo demás es ruido.
📊 Los datos de este artículo, en tabla y CSV: /stats/NIKKEI publica la estacionalidad, las sesiones y el spread de Nikkei 225 como referencia descargable, y en /data puedes bajar sus velas OHLCV (de D1 a M1) para replicar cada tabla. Este artículo es el análisis, con sus tests; esas páginas son los números en crudo.
1. Estacionalidad por día de la semana
Cada día cierra a las 06:00 UTC, una hora fija presente en todos los años del feed. Test: t de una muestra contra cero; en negrita, lo que supera la corrección de Bonferroni.
| Día | n | Media % | Mediana % | Std % | Win rate | t-stat | p-value |
|---|---|---|---|---|---|---|---|
| Lunes | 552 | +0,075% | +0,140% | 1,524% | 54,9% | 1,16 | 0,246 |
| Martes | 559 | +0,166% | +0,118% | 1,241% | 57,4% | 3,17 | 0,002 |
| Miércoles | 558 | +0,027% | -0,001% | 1,259% | 50,0% | 0,50 | 0,614 |
| Jueves | 560 | +0,036% | +0,021% | 1,318% | 51,6% | 0,65 | 0,518 |
| Viernes | 549 | -0,023% | +0,061% | 1,346% | 52,5% | -0,40 | 0,686 |
Lectura: días con p < 0,05:
- Martes: +0,166% de media, 57,4% de win rate, p=0,002, y supera el umbral de Bonferroni (0,0100). En las dos mitades de la muestra (2016–2021: +0,164%; 2021–2026: +0,169%) el signo se mantiene.

2. Estacionalidad por mes del año
128 meses completos (el mes en curso queda fuera). Retorno de cada mes = último cierre del mes contra el último cierre del mes anterior.
| Mes | n | Media % | Mediana % | Std % | Win rate | t-stat | p-value |
|---|---|---|---|---|---|---|---|
| Enero | 10 | +1,90% | +1,22% | 4,12% | 70,0% | 1,46 | 0,178 |
| Febrero | 11 | -0,35% | +0,35% | 6,49% | 54,5% | -0,18 | 0,863 |
| Marzo | 11 | -1,59% | -0,84% | 5,68% | 45,5% | -0,93 | 0,374 |
| Abril | 11 | +2,50% | +1,37% | 5,68% | 63,6% | 1,46 | 0,174 |
| Mayo | 11 | +3,00% | +2,29% | 5,66% | 72,7% | 1,75 | 0,110 |
| Junio | 11 | +1,54% | +2,02% | 4,79% | 72,7% | 1,07 | 0,310 |
| Julio | 11 | -0,20% | -0,01% | 4,22% | 45,5% | -0,16 | 0,878 |
| Agosto | 11 | +1,14% | +1,31% | 3,01% | 63,6% | 1,25 | 0,239 |
| Septiembre | 11 | +0,96% | +1,03% | 4,34% | 63,6% | 0,73 | 0,481 |
| Octubre | 10 | +3,09% | +4,50% | 7,11% | 60,0% | 1,38 | 0,202 |
| Noviembre | 10 | +2,65% | +1,83% | 5,81% | 70,0% | 1,44 | 0,183 |
| Diciembre | 10 | -0,18% | +0,36% | 4,80% | 70,0% | -0,12 | 0,907 |
Lectura: ningún mes tiene p < 0,05. El mejor en media es octubre (+3,09%) y el peor marzo (-1,59%), pero con 10 observaciones por mes esas medias se mueven mucho con un solo año extremo.

Cada línea fina es un año; la roja es la media. Cuando las líneas finas se abren en abanico, la media del mes dice poco del año que viene.
3. Estacionalidad por sesión de trading (UTC)
Ventanas UTC fijas, iguales para toda la serie. Drift = cierre de la sesión contra su apertura; rango = máximo menos mínimo, en % de la apertura.
| Sesión | n | Drift medio % | Win rate | p-value | Rango medio % |
|---|---|---|---|---|---|
| Asia (00–07 UTC) | 1.748 | +0,0137% | 52,0% | 0,523 | 1,293% |
| Londres (07–12 UTC) | 1.749 | +0,0068% | 53,3% | 0,606 | 0,741% |
| Nueva York (12–17 UTC) | 1.746 | +0,0329% | 53,4% | 0,034 | 0,920% |
| NY tarde (17–22 UTC) | 1.669 | +0,0200% | 55,0% | 0,118 | 0,645% |
- Asia (00–07 UTC) concentra el movimiento: rango medio 1,293%, 2,0× el de NY tarde (17–22 UTC).
- Nueva York (12–17 UTC) tiene drift alcista con p=0,034 (+0,0329% por sesión), aunque no supera Bonferroni. Es un sesgo pequeño: compáralo con el spread antes de pensar en operarlo.
- Sesiones desde 2020: antes, el CFD no cotizaba casi 24 h y las ventanas no serían comparables entre años.

4. Heatmap día × sesión
| Día | Asia (00–07) | Londres (07–12) | Nueva York (12–17) | NY tarde (17–22) |
|---|---|---|---|---|
| Lunes | +0,006% | +0,034% | +0,126% | +0,074% |
| Martes | -0,015% | -0,007% | -0,009% | +0,010% |
| Miércoles | +0,051% | +0,028% | +0,033% | +0,025% |
| Jueves | +0,034% | -0,059% | +0,026% | -0,017% |
| Viernes | -0,008% | +0,040% | -0,012% | +0,013% |
- Celda más alcista: Lunes × NY (+0,126%, p=<0,001). Más bajista: Jueves × London (-0,059%, p=0,020).
- 3 de 20 celdas salen con p < 0,05; por puro azar se esperarían unas 1,0. Hay más de las que daría el azar, pero conviene confirmarlas fuera de muestra.

5. Horas más volátiles (UTC)
| Hora UTC | Rango medio % | Rango medio (puntos) | Std % | Sesión |
|---|---|---|---|---|
| 00:00 | 0,737% | 269,7 | 0,408 | Asia |
| 01:00 | 0,540% | 194,5 | 0,349 | Asia |
| 14:00 | 0,479% | 173,5 | 0,349 | NY |
| 15:00 | 0,421% | 150,6 | 0,290 | NY |
| 23:00 | 0,418% | 151,1 | 0,275 | Rollover |
| 13:00 | 0,409% | 148,3 | 0,296 | NY |
La hora más activa (00:00 UTC) mueve 3,6× más que la más tranquila (22:00 UTC, 0,205%). Esto, a diferencia del sesgo de calendario, sí es estable de un año a otro: es lo más útil de este análisis para decidir cuándo estar delante de la pantalla o dónde poner un stop.
6. Por qué no analizamos el spread
En los CFD de índices de este feed, el spread no es un precio de mercado: es un margen que fija el bróker y que cambia por escalones durante meses. Publicar su «evolución» sería medir la política comercial de un proveedor, no el coste de operar el índice. Para el coste, mira el spread y la comisión de tu propio bróker a la hora a la que operas.
Lo que NO te dicen estos datos
- Comparaciones múltiples: este artículo hace 41 pruebas (5 días, 12 meses, 4 sesiones y 20 celdas). Con un umbral del 5 %, unas 2 saldrían «significativas» por azar. Por eso marcamos aparte lo que supera Bonferroni.
- Pocos años por mes: cada mes tiene unas 10 observaciones. Un solo año extremo puede fabricar o borrar un «mes alcista».
- Un sesgo medio no es una estrategia: tras spread, comisión y swap, un drift de centésimas por sesión rara vez sobrevive. Antes de operarlo, haz un backtest con costes reales y walk-forward.
- Es un CFD de Dukascopy (precio bid), no el futuro ni el contado del mercado organizado: puede diferir en rollovers, gaps y horario.
- El horario del CFD cambió varias veces antes de 2019. Por eso el día cierra a una hora fija (06:00 UTC) presente en todos los años, la serie diaria empieza en 2016 y el análisis intradía en 2020.
Metodología
- Fuente: ticks de Dukascopy agregados a velas M1 por EV Trading Labs (Nikkei 225, 2012-02-06 → 2026-10-12).
- Total: 4.117.170 velas M1 con al menos un tick; 2.778 retornos diarios y 128 mensuales.
- Precio: apertura y cierre a precio medio (bid+ask)/2; máximo y mínimo en bid. Donde el feed no trae ask, bid.
- Retorno diario: (C[t] − C[t−1]) / C[t−1] × 100, donde C es el cierre a las 06:00 UTC. Se descartan días con menos de 60 velas o cuya última vela queda más de 3 h antes del corte.
- Retorno mensual: último cierre diario del mes contra el del mes anterior; el mes en curso no cuenta.
- Sesiones: drift = (cierre − apertura) / apertura × 100; rango = (máximo − mínimo) / apertura × 100; sesiones con menos del 40 % de sus minutos se descartan.
- Test: t de una muestra contra cero, p < 0,05; Bonferroni por bloque (días, meses, sesiones, celdas). Estabilidad: misma media calculada en las dos mitades de la muestra.
- Software: Python, pandas, scipy, matplotlib.
La serie completa de estacionalidad
La misma metodología aplicada a 19 mercados. El contraste entre ellos es la parte más útil: un patrón que aparece en un solo activo es más probable que sea ruido.

