top of page
Buscar

📈 ¿Más o menos volatilidad?

  • Foto del escritor: Hugo de Val
    Hugo de Val
  • 20 abr
  • 2 Min. de lectura

Actualizado: 28 abr

Un análisis de carteras de inversión con Python, SQL y Business Intelligence


Publicado por Hugo de Val

Data Analyst especializado en finanzas, procesos comerciales y BI con herramientas de análisis avanzado en deval.one


Optimización de Carteras: Análisis y Resultados Numéricos Detallados

La teoría moderna de carteras permite a los inversores diversificar y optimizar su portafolio de activos financieros para maximizar rentabilidades ajustadas al riesgo. En este post, exploramos un análisis práctico y numérico basado en técnicas avanzadas de optimización, incluyendo simulaciones Monte Carlo y métodos matemáticos robustos.


1. Actualización y Preparación de Datos

El análisis comienza sincronizando datos históricos en una base MySQL, garantizando precisión y accesibilidad:

engine = create_engine('mysql+mysqlconnector://root:root@localhost:3306/cotizaciones')
df_prices = pd.concat(dfs, axis=1)

2. Definición de Parámetros Clave

Establecimos la tasa libre de riesgo anual en 2,189%, rango del análisis desde el 03/11/2022 hasta hoy y parámetros gráficos:

rf_anual = 0.02189
start_date = '2022-11-03'
annualization_factor = 252

3. Análisis de Rentabilidad y Riesgo

Calculamos la rentabilidad anualizada (CAGR), volatilidad y correlaciones:

mean_returns = df_returns.mean() * annualization_factor
cov_matrix = df_returns.cov() * annualization_factor

4. Simulación Monte Carlo

Realizamos 10,000 simulaciones para identificar la cartera con máximo ratio Sharpe:

rets, vols, sharpes, pesos = [], [], [], []
np.random.seed(42)
for _ in range(10000):
    w = np.random.rand(n_assets)
    w /= w.sum()
    ret = np.dot(w, mean_returns)
    vol = np.sqrt(w.T @ cov_matrix @ w)
    sharpe = (ret - rf_anual) / vol
    rets.append(ret)
    vols.append(vol)
    sharpes.append(sharpe)

La cartera óptima por simulación mostró un Sharpe de 1.4850, rentabilidad de 17.03% y volatilidad de 9.92%.


5. Optimización Matemática

Calculamos la cartera de mínima volatilidad con retorno superior a la tasa libre de riesgo:

constraints = ({'type': 'eq', 'fun': lambda w: w.sum() - 1},
               {'type': 'ineq', 'fun': lambda w: np.dot(w, mean_returns) - rf_anual})
res_min = minimize(portfolio_volatility, w0, args=(cov_matrix,), constraints=constraints)

Esta cartera mostró una rentabilidad de 3.34%, volatilidad mínima de 0.25% y Sharpe de 4.0909.


6. Cartera Equidistribuida Normalizada

Calculamos esta cartera utilizando una distribución equitativa ajustada por raíz cuadrada del número de activos, generando una rentabilidad del 0.69%, volatilidad del 12.19% y Sharpe negativo de -0.1318.


7. Risk Parity (Paridad de Riesgo)

Mediante el método Risk Parity (Equal Risk Contribution), obtuvimos una rentabilidad anual del 8.72%, volatilidad del 7.45% y un ratio de Sharpe de 0.8752, logrando así una asignación equilibrada del riesgo.


8. Resultados Comparativos y Conclusiones

La comparativa numérica y gráfica mostró diferencias significativas entre métodos. La optimización matemática y simulaciones Monte Carlo ofrecen mejores ratios de Sharpe comparados con la equidistribución o paridad de riesgo.


Estrategia

Rentab. (%)

Volatilidad (%)

Sharpe

Máx Sharpe MC

17.03

9.92

1.4850

Mín Vol (≥rf)

3.34

0.25

4.0909

Equidistribuida

0.69

12.19

-0.1318

Risk Parity

8.72

7.45

0.8752

Conclusión

El análisis evidencia la importancia de la selección estratégica de métodos de optimización según el perfil de riesgo del inversor. Las carteras basadas en simulaciones y métodos matemáticos proporcionan resultados superiores en términos de eficiencia riesgo-rentabilidad.

Este estudio refuerza la relevancia del uso de métodos cuantitativos avanzados en la gestión de inversiones para maximizar rentabilidades ajustadas al riesgo y diversificar eficazmente carteras de activos financieros.


Publicado en abril de 2025

 
 
 

Entradas recientes

Ver todo

Comments


bottom of page