top of page
Buscar

馃搱 驴M谩s o menos volatilidad?

  • Foto del escritor: Hugo de Val
    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


bottom of page