Estrategia FGI-Smart DCA: Cómo mejorar tu DCA usando el Sentimiento del Mercado (con Python y TradingView)
Todos conocemos el Dollar Cost Averaging (DCA): invertir una cantidad fija cada mes sin importar lo que haga el mercado. Es aburrido, es disciplinado y funciona. Pero, ¿y si pudiéramos mejorarlo?
¿Qué pasaría si en lugar de meter siempre 100€, el sistema nos dijera: "El mercado está eufórico, hoy solo mete 50€" o "Hay pánico en las calles, aprovecha y mete 300€"?
Hoy quiero presentaros la estrategia FGI-Smart DCA (Dynamic Sentiment Averaging). Hemos construido, probado y optimizado un sistema que hace exactamente eso, utilizando el sentimiento del mercado como brújula.
1. La Mecánica: Comprar Sangre y Vender Euforia
La filosofía es sencilla. Necesitamos un "termómetro" del mercado. Para cripto usaremos el Fear & Greed Index (FGI) (escala 0-100) y para la bolsa el VIX, al que recalibraremos matemáticamente para que hable el mismo idioma (0 = pánico, 100 = euforia).
La matriz de inversión es la siguiente (ejemplo con una Inversión Base de 100€/semana):
- Miedo Extremo (0-24): Compramos 3x (300€). Usamos nuestra reserva de efectivo.
- Miedo (25-44): Compramos 1.5x (150€).
- Neutral (45-55): Compramos 1x (100€).
- Codicia (56-75): Compramos 0.5x (50€). El resto ahorra.
- Euforia (76-100): No compramos (0€) y vendemos un 10-20% de la cartera para tomar beneficios.
El dinero que no invertimos en los meses de euforia, o el que obtenemos de las ventas, va a parar a un Fondo de Reserva en efectivo. Ese fondo es la munición que usaremos para disparar las compras 3x cuando llegue el siguiente crash.
2. El Viaje del Backtesting: De la Teoría a la Realidad
Para no vendernos humo, pasamos la estrategia por un backtester en Python con datos reales de los últimos 4 años. Estos fueron los hitos:
Fase 1: Bitcoin a prueba
- DCA Tradicional: ROI 44.6%
- FGI-Smart DCA: ROI 54.4%
- Problema: El sistema vendió en la euforia de 2024 y acumuló demasiada caja (54% del portafolio inactivo).
Fase 2: Optimización (Tope de Reserva y Rebalanceo)
- Añadimos un límite: si el efectivo supera el 30% de la cartera, el excedente se reinvierte, pero solo si el mercado tiene miedo (FGI <= 55).
- Resultado Final BTC: ROI 50.8%, superando al DCA tradicional y manteniendo un 35% en efectivo listo para comprar el próximo mercado bajista. Éxito rotundo.
Fase 3: La Bolsa (S&P 500) y el problema del VIX
- Aplicamos la misma lógica al ETF SPY usando el VIX. El resultado fue un desastre (ROI 2% vs 49% del DCA normal).
- El diagnóstico: La bolsa es menos volátil. Un VIX de 15 es normalidad en Wall Street, pero nuestro código lo interpretaba como "Euforia Extrema".
- La solución: Recalibramos la fórmula del VIX: FGI = 120 - (VIX * 3.2). Ahora un VIX de 15 equivale a un sentimiento de 72 (Codicia suave/Normalidad), lo cual tiene sentido. La estrategia en bolsa se convirtió en un escudo defensivo: sacrifica algo de rentabilidad en los rallies explosivos, pero acumula liquidez para comprar los crashes (como el del COVID o 2022).
3. El código abierto para esta comunidad.
¿Cómo empezar a usarlo hoy mismo?
Puedes descargar el código desde nuestro repositorio "Inversion_Estrategias-analisis-inversiones-largo-plazo"
No requiere conocimientos avanzados de programación.
Sigue estos sencillos pasos:
🔹 Usando Google Colab (Gratis y online):
Entra en Google Colab y sube el archivo .ipynb descargado (Archivo > Subir cuaderno).
Ejecuta la primera celda. Se configurará todo automáticamente (instalando yfinance si es necesario) y aparecerá un menú interactivo que te guiará en el análisis.
🔹 Usando Google Drive:
Sube el archivo .ipynb a tu unidad de Drive.
Haz doble clic en él y ábrelo con Google Colaboratory.
¡Ejecuta y listo! El menú te irá indicando qué hacer en cada momento.
4. El Santo Grial: Aplicación al MSCI World
Un lector me planteó una duda excelente: "¿Se puede aplicar al MSCI World con DCA mensual usando fondos indexados?". La respuesta es sí.
El problema es que no existe un "VIX Global". Para solucionarlo, creamos un VIX Sintético ponderando las volatilidades de las tres grandes zonas desarrolladas: VIX_Global = (0.70 * VIX) + (0.20 * VSTOXX) + (0.10 * VXEAFE)
Si tienes un fondo indexado MSCI World en tu banco, la mejor forma de seguir esta estrategia es de forma visual en TradingView. He creado un código en Pine Script que dibuja un oscilador (como un RSI, pero de sentimiento global) para que sepas qué hacer cada mes.
pine
//@version=5
indicator("FGI-Smart DCA Global (MSCI World Proxy)", overlay=false)
// 1. Obtener los datos de volatilidad (VIX y VSTOXX)
vix_val = request.security("VIX", "D", close)
vstoxx_val = request.security("VSTOXX", "D", close)
// 2. Calcular el VIX Global Sintético (80% USA, 20% Europa)
vix_global = (vix_val * 0.80) + (vstoxx_val * 0.20)
// 3. Aplicar nuestra fórmula de recalibración a escala 0-100
fgi_global = 120 - (vix_global * 3.2)
fgi_final = math.max(0, math.min(100, fgi_global))
// 4. Dibujar el indicador
plot(fgi_final, title="FGI Global", color=color.blue, linewidth=3)
// 5. Zonas de alerta visual
hline(24, "Miedo Extremo (Comprar 2x)", color=color.red, linestyle=hline.style_dashed)
hline(44, "Miedo (Comprar 1.5x)", color=color.orange, linestyle=hline.style_dashed)
hline(75, "Codicia (Comprar 1x)", color=color.green, linestyle=hline.style_dashed)
hline(90, "Euforia (Vender)", color=color.purple, linestyle=hline.style_dashed)
// Rellenar las zonas de color para que sea visual
bgcolor(fgi_final <= 24 ? color.new(color.red, 85) : na, title="Fondo Miedo Extremo")
bgcolor(fgi_final >= 90 ? color.new(color.purple, 85) : na, title="Fondo Euforia")
Simplemente pega esto en el "Pine Editor" de TradingView y añádelo al gráfico. Cuando la línea toque el rojo, es el momento de hacer una aportación extra a tu fondo indexado.
indicator("FGI-Smart DCA Global (MSCI World Proxy)", overlay=false)
// 1. Obtener los datos de volatilidad (VIX y VSTOXX)
vix_val = request.security("VIX", "D", close)
vstoxx_val = request.security("VSTOXX", "D", close)
// 2. Calcular el VIX Global Sintético (80% USA, 20% Europa)
vix_global = (vix_val * 0.80) + (vstoxx_val * 0.20)
// 3. Aplicar nuestra fórmula de recalibración a escala 0-100
fgi_global = 120 - (vix_global * 3.2)
fgi_final = math.max(0, math.min(100, fgi_global))
// 4. Dibujar el indicador
plot(fgi_final, title="FGI Global", color=color.blue, linewidth=3)
// 5. Zonas de alerta visual
hline(24, "Miedo Extremo (Comprar 2x)", color=color.red, linestyle=hline.style_dashed)
hline(44, "Miedo (Comprar 1.5x)", color=color.orange, linestyle=hline.style_dashed)
hline(75, "Codicia (Comprar 1x)", color=color.green, linestyle=hline.style_dashed)
hline(90, "Euforia (Vender)", color=color.purple, linestyle=hline.style_dashed)
// Rellenar las zonas de color para que sea visual
bgcolor(fgi_final <= 24 ? color.new(color.red, 85) : na, title="Fondo Miedo Extremo")
bgcolor(fgi_final >= 90 ? color.new(color.purple, 85) : na, title="Fondo Euforia")
Simplemente pega esto en el "Pine Editor" de TradingView y añádelo al gráfico. Cuando la línea toque el rojo, es el momento de hacer una aportación extra a tu fondo indexado.
5. El Asistente Automatizado en Python
Para los más tecnológicos, he dejado listo un código en Python (ejecutable en Google Colab o Anaconda) que hace dos cosas:
- Simula: Le das unas fechas y te dice cuánto habrías ganado con esta estrategia frente a un DCA tradicional.
- Alerta: Lee el mercado hoy y te dice exactamente qué acción tomar (ej: "Comprar 1.5x este mes"), pudiendo enviarse la notificación directamente a tu móvil vía Telegram.
(Nota para Rankia: Podéis acceder al repositorio de código y al script completo en [enlace a tu GitHub/Colab si lo tienes, o dejarlo indicado que lo compartirás en los comentarios]).
Conclusiones para el Inversor
- Cripto vs Bolsa: La estrategia brilla en cripto por sus ciclos extremos. En bolsa, asume un perfil más conservador, ideal para quienes tienen pánico a los crashes y quieren tener siempre liquidez disponible.
- La disciplina por encima de todo: El mayor valor de este sistema no es la matemática, es eliminar la emoción. Cuando las noticias dicen que el mundo se acaba, tu oscilador estará en rojo diciéndote que es el momento de invertir.
¿Qué os parece este enfoque? ¿Usáis actualmente DCA puro o habéis intentado cronometrar el mercado de alguna forma? Os leo en los comentarios.