馃搱 驴M谩s o menos volatilidad?
- Hugo de Val
- 20 abr 2025
- 2 Min. de lectura
Actualizado: 1 jun 2025
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 (鈮f) | 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

Comentarios