En SIKURI rediseñamos GoldModel como un framework cuantitativo en Python (v2.2) basado en finanzas conductuales. El precio del oro se modela con nueve features point-in-time que combinan sentimiento y condiciones macro. A diferencia de la v1 (hoja de cálculo con pesos fijos 40/25/35), la v2.2 pondera cada feature por su Information Coefficient (IC) rolling con el retorno futuro del oro, aplica una capa de gestión de riesgo y valida el resultado con walk-forward honesto y permutation test. El resultado central es honesto: no hay evidencia estadística de skill (p = 0.196).

ADVERTENCIA: GoldModel es software educativo únicamente. No constituye asesoría de inversión ni recomendación de compra o venta de activos financieros. No es un caso de estudio ni una validación empírica de una estrategia de trading. El permutation test sobre datos reales salió no significativo (p = 0.196); no se reivindica skill predictivo. El desempeño pasado no garantiza resultados futuros. Consulte a un asesor financiero autorizado antes de tomar decisiones de inversión.

Premisa central: El oro no se comporta como un activo financiero tradicional: no genera flujos de caja y su precio responde a variables de sentimiento (miedo/euforia colectiva) y a variables macro (tasas reales, dólar, inflación, crédito, volatilidad). GoldModel captura ambas dimensiones en un solo framework accionable, y la validación honesta decide si esas señales tienen valor real.

Arquitectura del modelo

GoldModel v2.2 opera en cuatro capas: (1) extracción point-in-time desde fuentes primarias (LBMA, FRED, CFTC, Yahoo Finance), (2) ingeniería de features estrictamente rolling —z-scores y percentiles con ventanas pasadas y lags de publicación—, (3) modelo con pesos adaptativos por IC más capa de riesgo (vol-targeting, multiplicador de régimen, stop-loss), y (4) validación honesta: walk-forward con refit por fold, fold distribution, permutation test, stress test y sensibilidad. El output es un panel mensual, la serie de posición y un reporte JSON; ya no un archivo Excel de 9 hojas.

Fuentes de datos

FuenteDatoCobertura
LBMAPrecio del oro (fixing PM) — disponible el mismo mes, sin lag1971–presente
FREDTIPS, DXY, Credit Spread, Breakeven, VIX — desplazados 3 días por lag de publicaciónVariable por serie
CFTCPosicionamiento institucional (Managed Money) — desplazado por lag de publicación antes del resample mensual2006–presente
Yahoo FinanceGDX ETF (minería de oro)2004–presente

Features de sentimiento (Animal Spirits)

Capturan la psicología colectiva del mercado del oro. Todos los scores se normalizan en una escala 0–100 donde un valor alto es más alcista; la interpretación es contraria en extremos.

FeatureQué capturaRelación con el oro
Gold vs MA 12MMomentum: desviación del precio respecto a su media anualDirecta
Gold 6M streakPercentil rolling del retorno a 6 mesesDirecta
GDX / Gold RatioSentimiento del sector minero: las mineras anticipan al oroDirecta
COT Managed MoneyPosicionamiento neto institucional (CFTC)Directa — contraria en extremos

Features macro (Financial Index)

Anclan el modelo a la macro. TIPS, DXY y VIX se invierten para que un valor alto del score indique condiciones favorables al oro; todo se computa con ventanas pasadas y lag de publicación (sin look-ahead).

FeatureQué capturaRelación con el oro
TIPS Real YieldTasas reales a 10 añosInversa
DXYÍndice del dólarInversa
Credit SpreadMoody Baa − Aaa: estrés crediticioDirecta
Breakeven InflationExpectativas de inflación a 10 añosDirecta
VIXVolatilidad implícita (CBOE)Inversa

Pesos adaptativos por Information Coefficient

En lugar de pesos fijos (v1: 40/25/35), el modelo pondera cada feature por su IC de Spearman rolling con el retorno a un mes del oro. El IC solo usa valores conocidos hasta t−1, sin look-ahead.

Capa de gestión de riesgo

La posición nunca es binaria. El mismo stack de riesgo se aplica en entrenamiento (refit por fold) y en despliegue, para no optimizar sobre un pipeline que no se ejecuta.

Señales y posicionamiento

La señal es un score continuo. La posición resultante se sitúa entre una posición mínima y una máxima, sin buckets discretos.

Implementación técnica

GoldModel v2.2 es un paquete Python con pipeline, tests y CLI. Se distribuye vía pip y se ejecuta desde la línea de comandos.

Instalación

git clone https://github.com/Writecode4/goldmodel.git
cd goldmodel
pip install -e .

Python API

from goldmodel_v2 import run_analysis

results = run_analysis()
print(results['walk_forward'].metrics)
print(results['fold_sharpes'])
print(results['permutation'].p_value)

CLI

python -m goldmodel_v2
python -m goldmodel_v2 --json summary.json

Output: reporte JSON de validación

El modelo genera un panel mensual, la serie de posición y un reporte JSON con las métricas de validación honesta:

SecciónContenido
Walk-forwardSharpes fold a fold con refit; la CLI imprime la variante ejecutada.
Fold distributionMínimo, mediana, máximo y % de folds positivos — métrica principal.
Permutation testSharpe observado vs distribución nula (bloques de 36m), p-value y bandera de degeneración.
OOS hold-outÚltimos 36 meses separados antes de cualquier análisis; resultado indicativo.
Stress testEpisodios canónicos del oro (2008, 2013-15, 2020) vs buy-and-hold.
SensitivityBarrido de ventana de IC y umbrales con dispersión de métricas.

Métricas de backtest (datos reales, 2026-08)

0.96
Sharpe walk-forward (refit)
benchmark 0.98
0.196
Permutation test (p)
no significativo
2.62
Fold dist. mediana
9 folds · 9/9 positivos
14.9%
OOS CAGR 36m (indicativo)
benchmark 30.7%

Sharpe por variante: modelo refit (0.96) vs fijo (0.708) vs benchmark (0.98)

Permutation test: observado 0.708 vs null media 0.508 (p95 0.764) — p = 0.196

Distribución de Sharpes por fold (9 folds): min 0.25 · mediana 2.62 · max 8.85

Nota importante (honestidad metodológica): El walk-forward con refit muestra Sharpe 0.96 frente a un benchmark de 0.98, y la fold distribution fue 9/9 positiva. Sin embargo, el permutation test (50 shuffles, bloques de 36m) dio p = 0.196: no hay evidencia estadística de skill. Con solo 12 meses por fold, la dispersión (min 0.25, max 8.85) es demasiado amplia para concluir. GoldModel v2.2 se publica como un ejercicio de validación transparente, no como una estrategia rentable.

Limitaciones conocidas

  1. Sin evidencia estadística de skill: el permutation test sobre datos reales salió p = 0.196 (no significativo); el edge del pipeline de parámetros fijos no se distingue de ruido.
  2. Muestra pequeña por fold: 12 meses por fold hacen que la fold distribution sea muy dispersa (min 0.25, max 8.85).
  3. OOS de 36 meses indicativo: un solo camino, sin poder estadístico; se usa una única vez al final.
  4. Long-only sobre oro, sin apalancamiento; hay gaps históricos en TIPS/DXY/VIX y ruido de costos en regímenes estresados.
  5. Frecuencia mensual: no captura oportunidades semanales o intradía.

¿Por qué usamos behavioral finance?

Los modelos tradicionales de valoración (DCF, múltiplos) funcionan mal con el oro porque el oro no genera flujos de caja. Su precio está determinado por la psicología colectiva y las condiciones macro. GoldModel aborda esto desde dos ángulos:

La combinación de ambas familias permite construir scores continuos. La validación honesta (permutation test, fold distribution) decide si esos scores tienen valor real: en este dataset, la evidencia aún no lo confirma.

Próximos pasos