Estrategia Core-Satellite: Cómo protegerte en las crisis con Python
La estrategia Core-Satellite es uno de los enfoques más utilizados por inversores a largo plazo. Consiste en dividir tu cartera en dos bloques: un núcleo (Core) formado por fondos indexados globales de bajo coste que aportan estabilidad, y una parte reducida (Satélites) donde se hacen apuestas en sectores o temáticas con mayor potencial de crecimiento.
Pero, ¿cómo sabemos si nuestra cartera realmente nos va a proteger en la próxima crisis bursátil? La teoría es bonita, pero los números no mienten.
Para demostrarlo, hemos programado un script en Python que automatiza esta estrategia aplicando un modelo de Dual Momentum con rotación trimestral. Te muestro cómo habría funcionado este modelo en la última década y te dejo el código para que puedas descargarlo y simular tu propia cartera.
¿Qué hace exactamente el código?
El script actúa como un gestor automatizado. Su funcionamiento se resume en 4 pasos:
- Descarga y limpia datos: Descarga el historial de cotizaciones de los fondos y aplica un saneamiento para evitar saltos falsos por dividendos o errores de cotización.
- Calcula tendencias: Calcula la media móvil de 200 días (filtro de tendencia global) y el momentum a 12 meses.
- Ejecuta el Backtest: Cada 3 meses (trimestre), el algoritmo revisa los fondos. Si un fondo de Renta Variable está por encima de su media de 200 días y tiene momentum positivo, lo compra.
- Protección dinámica (El "Cash"): Si todos los fondos están bajando, el algoritmo no se queda invertido esperando a que se recupere. Pone el 100% de la cartera en "Refugio (Cash/monetario)", protegiendo el capital del desplome.
El gran descubrimiento: Por qué los datos importan más que el algoritmo
En cualquier estrategia cuantitativa, la calidad de los datos es tan importante como el propio modelo. Durante el desarrollo de este proyecto, comprobamos que el origen de los datos alteraba radicalmente el resultado del backtest. Es el clásico principio Garbage In, Garbage Out.
Te mostramos las dos salidas reales del algoritmo para que veas la diferencia, comparando la estrategia frente al Buy & Hold (comprar y no hacer nada):
Opción A: Resultados con datos oficiales de la gestora (Recomendado)
Al alimentar el código con los CSVs descargados directamente de Renta 4 (Valor Liquidativo real, dividendos reinvertidos correctamente y sin huecos), estos son los resultados de una cartera 30% RV / 70% RF:
📊 COMPARATIVA: ESTRATEGIA vs BUY & HOLD (Datos R4)
- Estrategia Automatizada:
- Rentab. Anual (CAGR): 2.27%
- Volatilidad Anual: 3.23%
- Ratio Sharpe: 0.70
- Drawdown Máximo: -12.80%
- Buy & Hold 30/70:
- Rentab. Anual (CAGR): 5.21%
- Volatilidad Anual: 6.03%
- Ratio Sharpe: 0.86
- Drawdown Máximo: -15.31%
Opción B: Resultados con datos de Yahoo Finance (Orientativo)
Al usar la API de Yahoo Finance para los mismos fondos tradicionales, el algoritmo recibe señales falsas y los resultados distan mucho de la realidad:
📊 COMPARATIVA: ESTRATEGIA vs BUY & HOLD (Datos Yahoo)
- Estrategia Automatizada:
- Rentab. Anual (CAGR): 3.16%
- Volatilidad Anual: 3.82%
- Ratio Sharpe: 0.83
- Drawdown Máximo: -13.43%
- Buy & Hold 30/70:
- Rentab. Anual (CAGR): 4.97%
- Volatilidad Anual: 6.49%
- Ratio Sharpe: 0.77
- Drawdown Máximo: -15.47%
¿Por qué hay tanta diferencia en los resultados?
No es culpa del algoritmo, es culpa de los datos. Yahoo Finance trata los fondos de inversión tradicionales como si fueran acciones, lo que provoca errores en el ajuste de dividendos reinvertidos.
Esto genera dos problemas graves:
- El Buy & Hold real (R4) da un 5.21% de rentabilidad, mientras que el de Yahoo da 4.97%. Yahoo castiga la rentabilidad porque no ajusta bien los dividendos, creando caídas artificiales donde no las hay.
- El algoritmo se vuelve loco: Esas caídas artificiales por dividendos alteran el cálculo de la media móvil y el momentum. En este backtest, la "confusión" de Yahoo hizo que el algoritmo se mantuviera invertido en momentos donde el dato real (R4) le decía que debía refugiarse en Cash. Esto infló artificialmente el CAGR de la estrategia (3.16% en Yahoo vs 2.27% en R4), pero a costa de asumir más volatilidad (3.82% vs 3.23%) y un mayor Drawdown (-13.43% vs -12.80%).
Conclusión: Los datos de Yahoo generan señales falsas y una falsa sensación de seguridad. La estrategia funciona de verdad controlando el riesgo, pero solo podemos tomar decisiones reales cuando nos alimentamos de los datos oficiales de la gestora.
📥 Descargas: Dos scripts según tu origen de datos
Para que puedas probar la estrategia, te facilitamos el código y la guía, en los siguientes enlaces:
Repositorio Codeberg "Estr_Core-satellite"
Descarga y mantén en la misma carpeta todos los ficheros,
El notebook contiene.
El notebook contiene.
- 📓 Script que configura el entorno y carga los datos
- 📓 Script para Yahoo Finance: Incluye un "parche" de limpieza profunda para intentar suavizar la basura de Yahoo. Usa esta opción solo si no tienes acceso a los CSVs de tu banco.
- 📓 Script para Datos Oficiales: Diseñado para leer los CSVs descargados de tu gestora.
- 📄 Guía en Markdown (.md) . Explica la estrategia y contiene las instrucciones de instalación y uso
Nota: Dentro del archivo descargado, en las primeras líneas de código, encontrarás el DICCIONARIO_USUARIO. Ahí es donde podrás pegar los ISIN y Tickers de los fondos de tu propiedad.
Cómo usar cada script en la vida real
El algoritmo revisa la cartera trimestralmente. Dependiendo del script que uses, el manejo es distinto:
En el apartado 12 de la 'Estr_guia-core-satellite-python_2.md', se explica cómo usar el programa dependiendo de si disponemos de datos facilitados por las gestoras o no, en cuyo caso descargará datos desde Yahoo Finance.
Adapta la estrategia a tu perfil de riesgo
El código está preparado por defecto con un perfil 30% RV / 70% RF. Pero puedes adaptarlo a tu perfil cambiando una sola línea de código:
- Perfil Agresivo (60% RV / 40% RF): Cambia a peso_rv=0.6, peso_rf=0.4. La rentabilidad esperada subirá, pero asumirás mucha más volatilidad en las crisis.
- Perfil Conservador (20% RV / 80% RF): Cambia a peso_rv=0.2, peso_rf=0.8. Tendrás una curva casi plana con protección extrema.
Al ejecutar el script de nuevo, el código dividirá automáticamente la parte de Renta Fija en dos fondos y dibujará el gráfico de comparación con tus nuevos pesos.
Reglas de oro para el inversor
1. El verdadero valor de la estrategia: Contención de caídas vs. Rentabilidad absoluta Si observas los resultados del backtest, verás que en el periodo 2015-2024 el Buy & Hold (comprar y no hacer nada) logró una mayor rentabilidad anual (6.26% vs 2.52%). A simple vista, parece que ganar. Sin embargo, para un inversor conservador, la estrategia automatizada es infinitamente superior por tres motivos matemáticos y psicológicos:
- La asimetría de las caídas (matemáticas): Recuperarse de una caída del 10% (el drawdown de la estrategia) solo requiere una subida posterior del 11%. Sin embargo, recuperarse de una caída del 17.36% (el drawdown del Buy & Hold) requiere una subida del 21%. Cuanto más profunda es la caída, más difícil y lento es recuperar el capital. La estrategia automatiza el "corte de pérdidas" para que la curva de capital nunca sufra daños estructurales.
- El factor psicológico (pánico): Un inversor que tiene 100.000€ y ve cómo su cartera baja a 82.600€ (caída del -17%) entra en pánico. La mayoría de los inversores particulares venden en ese punto exacto, bloqueando sus pérdidas y perdiéndose el rebote posterior. Si la cartera solo baja a 90.000€ (-10%), el inversor duerme tranquilo, no vende y aguanta la tormenta. La automatización elimina el riesgo emocional.
- El peaje de la protección: Sacrificar parte de la rentabilidad en los mercados alcistas es el "peaje" que pagas a cambio de tener un paracaídas desplegado en las crisis. La estrategia no busca hacerte rico de la noche a la mañana; busca que nunca pierdas el dinero que ya has ganado, que es la verdadera clave del interés compuesto a 20 años vista.
2. Disciplina en el rebalanceo trimestral Automatiza alertas en tu calendario para revisar la cartera cada trimestre (marzo, junio, septiembre y diciembre). Ejecuta el código, mira la "Cartera Recomendada Hoy", y si te indica que debes vender un fondo porque ha pasado a estar por debajo de su media de 200 días, véndelo. No te enamores de los fondos ni de tus propias ideas; la disciplina es lo que hace funcionar el modelo.
3. El "Coste de Aguantar" frente a la envidia bursátil En épocas de mercado alcista constante, inevitablemente sentirás "envidia" del inversor que tiene el 100% de su patrimonio en bolsa y ve cómo su rentabilidad se dispara mientras tu estrategia se mueve lentamente. Es en esos momentos cuando debes recordar lo que ocurrió en 2022: el mercado cayó un -20% de golpe, mientras que la estrategia automatizada se mantuvo estable (o incluso subió) por estar refugiada en Cash y monetarios. Sobrevivir a las crisis sin sufrir grandes caídas es, a largo plazo, más rentable que intentar capturar el último euro de las subidas.
⚠️ Aviso Legal y Exención de Responsabilidad: Esta guía y el código (Python/Jupyter Notebook) proporcionado tienen un propósito estrictamente educativo, divulgativo y de investigación cuantitativa. No constituyen asesoramiento financiero personalizado, ni una recomendación de compra o venta de ningún instrumento financiero en particular. La inversión en mercados financieros conlleva riesgos, incluyendo la posibilidad de pérdida del capital invertido. Las rentabilidades pasadas, simuladas mediante backtests o reales, no garantizan ni son un indicador fiable de rentabilidades futuras. El usuario asume toda la responsabilidad por las decisiones de inversión que tome basándose en la lectura de este documento o en la ejecución del código aquí descrito.