Skip to content

About

Investigacion cuantitativa reproducible sobre el oro (XAUUSD) en R: 5 hipotesis de trading probadas con validacion out-of-sample. Spoiler: buy&hold gana.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🥇 Backtesting Cuantitativo del Oro (XAUUSD) en R

Una investigación honesta y reproducible sobre si existen estrategias sistemáticas rentables en el oro. Spoiler: probamos 5 hipótesis con validación rigurosa out-of-sample y el resultado es una lección clásica del trading cuantitativo.

Aviso: Esto es investigación educativa, no es asesoría financiera. Datos del futuro del oro (GC=F) vía Yahoo Finance; difieren del spot de un bróker.


🎯 La pregunta

Tras el máximo histórico del oro empezó un ciclo bajista. ¿Puede R decirnos "en tal rango de tiempo y a tal precio, haz tal operación"? Es decir: ¿existe un patrón sistemático que dé ventaja (edge)?

🔬 El método

Cada hipótesis se sometió a la prueba de fuego: validación train/test (descubrir en una mitad de los datos, validar en la otra que el sistema nunca vio). Sin esto, es facilísimo "encontrar" patrones que son puro ruido del pasado.

📊 Resultados — el recorrido completo

# Hipótesis Métrica clave Veredicto
1 Vender rebotes a Fibonacci (diario) PF 1.35 con 13 ops ⚠️ Muestra chica
2 Filtro por hora del día PF 1.01 → 0.99 con filtro ❌ No aporta
3 Fibonacci en 4h PF 1.64 con 65 ops ⚠️ Prometedor…
4 …validado train/test train 1.60 → test 0.22 ❌ Colapsó (sobreajuste)
5 Vender rupturas (cortos, 26 años) PF 0.41 con 104 ops ❌ Estructuralmente perdedor
6 Comprar rupturas (largos, 26 años) PF 1.53 por trade ⚠️ Tiene edge por trade…
7 …vs comprar y mantener Sistema Sharpe 0.30 vs B&H 0.68 ❌ No le gana al buy&hold

🏆 Conclusión

Para el oro, en este periodo, ninguna estrategia activa que probamos le gana a simplemente comprar y mantener en términos de riesgo-retorno (Sharpe).

  • Vender el oro sistemáticamente (rebotes o rupturas) no tiene edge.
  • El lado largo tiene edge por operación, pero al estar fuera del mercado el 57% del tiempo, se pierde el gran movimiento alcista secular.
  • La única virtud del sistema activo: menor drawdown (−25% vs −44%), útil solo si se combina con apalancamiento.

Este es uno de los hallazgos más comunes y valiosos del trading cuantitativo: en un activo con tendencia secular fuerte, la mayoría de sistemas activos pierden contra el buy & hold. Lo comprobamos con datos reales y validación seria — que es justo lo que casi nadie hace antes de arriesgar dinero.


📈 Gráficos

Estacionalidad intradía (frágil, no sobrevivió al backtest):

Estacionalidad por hora

Sistema de tendencia largo vs Comprar y mantener (el buy&hold gana):

Equity sistema vs buy&hold


🗂️ Estructura del repo

Script Qué hace
00_setup.R Instala paquetes (correr una vez)
01_analisis_oro.R Máximo histórico, ciclo bajista, niveles de Fibonacci
02_backtest_niveles.R Backtest de venta en rebotes a Fibonacci
03_backtest_con_costos.R Igual, con spread + comisión
04_estacionalidad_intradia.R ¿A qué horas cae más? (datos horarios)
05_cruce_fib_horas.R Cruce Fibonacci × hora del día
06_multi_temporalidad.R Misma estrategia en Semanal/Diario/4h/1h/15m
07_train_test_4h.R Validación out-of-sample en 4h
08_tendencia_rupturas.R Estrategia de tendencia (Donchian) en el ciclo
09_tendencia_historia.R Tendencia simétrica sobre 26 años de historia
10_sistema_largo.R Sistema largo vs buy & hold (equity, Sharpe, DD)

▶️ Cómo correrlo

Requiere R (probado en 4.6.1). No necesitas MetaTrader ni API keys: los datos se bajan gratis de Yahoo Finance.

# 1. Instala dependencias (una sola vez)
source("00_setup.R")

# 2. Corre cualquier análisis, por ejemplo:
source("01_analisis_oro.R")
source("10_sistema_largo.R")

Desde consola (Windows PowerShell):

$env:R_LIBS_USER = "$env:USERPROFILE\Documents\R\win-library\4.6"
& "C:\Program Files\R\R-4.6.1\bin\Rscript.exe" "10_sistema_largo.R"

Dependencias: quantmod, TTR, PerformanceAnalytics, xts, jsonlite.


⚙️ Notas técnicas

  • Datos: diario vía getSymbols("GC=F", src="yahoo"); intradía vía la API chart de Yahoo (query1.finance.yahoo.com/.../GC%3DF?interval=1h). El intradía a veces devuelve HTTP 422 por rate-limit: reintentar tras unos segundos.
  • Costos: se descuenta ~0.08% por operación (spread + comisión) en los backtests.
  • Anti-look-ahead: las señales usan la barra ya cerrada (i-1) antes de operar.

📜 Licencia

MIT — ver LICENSE. Úsalo, apréndelo, rómpelo.

About

Investigacion cuantitativa reproducible sobre el oro (XAUUSD) en R: 5 hipotesis de trading probadas con validacion out-of-sample. Spoiler: buy&hold gana.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages