¿Brent tiene días, meses u horas con un sesgo que se pueda medir? Hemos agregado 4.183.062 velas M1 del CFD del crudo Brent entre enero de 2013 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: 1 de los 17 cortes de calendario sale con p < 0,05, pero no aguanta la corrección por comparaciones múltiples. Pista, no regla.
📊 Los datos de este artículo, en tabla y CSV: /stats/BRENT publica la estacionalidad, las sesiones y el spread de Brent 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 19: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 | 698 | -0,053% | +0,009% | 2,584% | 50,1% | -0,54 | 0,591 |
| Martes | 706 | -0,088% | +0,007% | 2,442% | 50,0% | -0,95 | 0,340 |
| Miércoles | 699 | +0,031% | +0,144% | 2,480% | 54,1% | 0,33 | 0,742 |
| Jueves | 702 | +0,182% | +0,125% | 2,243% | 53,7% | 2,15 | 0,032 |
| Viernes | 688 | +0,059% | +0,127% | 2,210% | 53,3% | 0,70 | 0,485 |
Lectura: días con p < 0,05:
- Jueves: +0,182% de media, 53,7% de win rate, p=0,032, pero no supera el umbral de Bonferroni para 5 pruebas (0,0100). En las dos mitades de la muestra (2013–2020: +0,056%; 2020–2026: +0,307%) el signo se mantiene.

2. Estacionalidad por mes del año
162 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 | 13 | +1,71% | +2,07% | 9,03% | 61,5% | 0,68 | 0,508 |
| Febrero | 14 | +3,67% | +1,86% | 8,53% | 71,4% | 1,61 | 0,131 |
| Marzo | 14 | +0,14% | +0,60% | 18,72% | 50,0% | 0,03 | 0,978 |
| Abril | 14 | +2,74% | +1,12% | 9,64% | 71,4% | 1,06 | 0,307 |
| Mayo | 13 | +1,26% | +1,15% | 14,39% | 53,8% | 0,32 | 0,757 |
| Junio | 13 | +0,65% | +2,79% | 7,64% | 69,2% | 0,31 | 0,764 |
| Julio | 14 | +0,64% | +0,62% | 10,21% | 57,1% | 0,23 | 0,818 |
| Agosto | 14 | -0,40% | +0,68% | 5,48% | 57,1% | -0,27 | 0,789 |
| Septiembre | 14 | -0,26% | -0,72% | 7,58% | 50,0% | -0,13 | 0,899 |
| Octubre | 13 | -0,94% | +0,28% | 6,65% | 53,8% | -0,51 | 0,618 |
| Noviembre | 13 | -3,39% | -2,80% | 12,31% | 38,5% | -0,99 | 0,340 |
| Diciembre | 13 | -0,34% | +0,45% | 9,97% | 53,8% | -0,12 | 0,905 |
Lectura: ningún mes tiene p < 0,05. El mejor en media es febrero (+3,67%) y el peor noviembre (-3,39%), pero con 14 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) | 2.267 | +0,0334% | 53,0% | 0,099 | 1,180% |
| Londres (07–12 UTC) | 2.267 | +0,0045% | 51,1% | 0,862 | 1,633% |
| Nueva York (12–17 UTC) | 2.266 | -0,0210% | 51,4% | 0,498 | 2,167% |
| NY tarde (17–22 UTC) | 2.201 | +0,0225% | 53,0% | 0,305 | 1,320% |
- Nueva York (12–17 UTC) concentra el movimiento: rango medio 2,167%, 1,8× el de Asia (00–07 UTC).
- Ninguna sesión tiene un drift significativo: se mueve, pero sin dirección preferida.

4. Heatmap día × sesión
| Día | Asia (00–07) | Londres (07–12) | Nueva York (12–17) | NY tarde (17–22) |
|---|---|---|---|---|
| Lunes | -0,069% | -0,029% | -0,009% | +0,028% |
| Martes | +0,076% | -0,021% | -0,138% | -0,036% |
| Miércoles | +0,010% | +0,069% | -0,009% | -0,002% |
| Jueves | +0,102% | +0,002% | +0,074% | +0,007% |
| Viernes | +0,047% | +0,000% | -0,023% | +0,118% |
- Celda más alcista: Viernes × NY late (+0,118%, p=0,008). Más bajista: Martes × NY (-0,138%, p=0,058).
- 2 de 20 celdas salen con p < 0,05; por puro azar se esperarían unas 1,0. Es lo que daría el azar: no leas el heatmap como un mapa de señales.

5. Horas más volátiles (UTC)
| Hora UTC | Rango medio % | Rango medio (centavos) | Std % | Sesión |
|---|---|---|---|---|
| 14:00 | 1,089% | 79,0 | 1,025 | NY |
| 15:00 | 1,032% | 75,2 | 0,642 | NY |
| 13:00 | 0,992% | 73,4 | 0,673 | NY |
| 16:00 | 0,854% | 62,0 | 0,573 | NY |
| 08:00 | 0,794% | 58,1 | 0,530 | London |
| 18:00 | 0,772% | 55,4 | 0,711 | NY late |
La hora más activa (14:00 UTC) mueve 4,0× más que la más tranquila (04:00 UTC, 0,273%). 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. Cuánto cuesta operarlo: el spread medido
El feed trae bid y ask reales, así que el spread es medido, no la cifra de marketing de un bróker. Mediana desde 2013: 5,00 centavos. Pero un spread en centavos no dice cuánto pesa: lo que importa es qué parte del movimiento típico de la hora se come.
| Hora UTC | Spread mediano (centavos) | Rango medio (centavos) | Coste |
|---|---|---|---|
| 14:00 | 5,00 | 70,9 | 7,1% |
| 15:00 | 5,00 | 68,6 | 7,3% |
| 13:00 | 5,00 | 64,2 | 7,8% |
| 21:00 | 7,00 | 20,6 | 34,0% |
| 04:00 | 5,00 | 17,2 | 29,1% |
| 03:00 | 5,00 | 21,2 | 23,6% |
Operar a las 14:00 UTC cuesta un 7,1% del rango de la hora; a las 21:00 UTC, un 34,0%. La comparación entre mercados está en el spread real por mercado y hora.
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 14 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.
Metodología
- Fuente: ticks de Dukascopy agregados a velas M1 por EV Trading Labs (Brent, 2013-01-02 → 2026-10-12).
- Total: 4.183.062 velas M1 con al menos un tick; 3.493 retornos diarios y 162 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 19: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.
- Forex: EURUSD · GBPUSD · USDJPY · GBPJPY · AUDUSD · USDCHF · EURGBP
- Metales: XAUUSD (oro) · XAGUSD (plata)
- Índices: Dow Jones · NASDAQ-100 · S&P 500 · DAX 40 · FTSE 100 · Nikkei 225
- Petróleo: WTI
- Cripto: Bitcoin · Ethereum

