Saltar al contenido
Portafolios de Inversión con Python

Fundamentos de inversión y portafolios

Introducción

La inversión y los portafolios son temas fundamentales para aquellos que buscan maximizar sus ganancias y minimizar sus riesgos al invertir su dinero en diferentes activos financieros.

La inversión es la asignación de recursos financieros en un producto o proyecto con la expectativa de obtener un rendimiento positivo en el futuro. Por otro lado, el portafolio es una colección de diferentes inversiones que se utilizan para reducir el riesgo de una inversión única.

Los fundamentos de inversión incluyen el análisis de las empresas y los mercados financieros para determinar el potencial de ganancias y riesgos. El análisis puede ser técnico o fundamental, y los inversores deben considerar una variedad de factores, como los estados financieros, las tendencias del mercado, las tasas de interés y la competencia.

La construcción de un portafolio diversificado puede ayudar a reducir el riesgo y maximizar las ganancias. Los inversores deben examinar cuidadosamente la composición y el rendimiento de cada activo en su portafolio y reevaluar regularmente sus decisiones de inversión para asegurarse de que estén alineadas con sus objetivos de inversión a largo plazo.

El uso de Python para el análisis y la construcción de portafolios proporciona una herramienta valiosa para los inversores y analistas financieros.

Resumen

Los fundamentos de inversión se refieren a los principios básicos que deben ser considerados al momento de invertir dinero en una empresa o en algún tipo de activo financiero. Estos fundamentos incluyen un análisis del riesgo y la rentabilidad esperada para poder tomar decisiones informadas sobre dónde invertir el dinero.

Los portafolios de inversión son una selección de activos financieros en los que alguien decide invertir su dinero. El objetivo de tener un portafolio de inversión es diversificar los riesgos, de tal manera que si una inversión en particular tiene pérdidas, las otras inversiones puedan compensar esa pérdida y mantener el valor total del portafolio en un nivel aceptable.

Para construir un portafolio de inversión, se debe considerar una variedad de factores, incluyendo la rentabilidad esperada de los distintos activos, su nivel de riesgo, la composición de los activos (acciones, bonos, fondos mutuos, etc.), y el horizonte temporal de la inversión.

El proceso de selección de los activos y la construcción del portafolio es una tarea compleja y requiere de conocimientos especializados en finanzas y análisis de datos, así como de herramientas y técnicas para el análisis y la evaluación de riesgos y rentabilidades. Esto es donde la programación en Python puede ser especialmente útil: los datos pueden ser fácilmente extraídos de fuentes en línea y analizados en un formato de código para tomar decisiones informadas en función de la información obtenida.

Aplicación teórica

Teoría Moderna de Cartera

La teoría moderna de cartera (Modern Portfolio Theory, MPT) es un enfoque matemático para la construcción de carteras de inversión que busca maximizar el rendimiento esperado para un nivel dado de riesgo, o minimizar el riesgo para un nivel dado de rendimiento esperado. Desarrollada por Harry Markowitz en la década de 1950, MPT se basa en la idea de que los inversores pueden construir carteras que ofrezcan un equilibrio óptimo entre riesgo y retorno.

Conceptos Clave

1. Rendimiento Esperado

   El rendimiento esperado de una cartera se calcula como la suma ponderada de los rendimientos esperados de los activos individuales. Para una cartera con \( n \) activos, el rendimiento esperado \( E(R_p) \) se puede expresar como:

   \[
   E(R_p) = \sum_{i=1}^n w_i E(R_i)
   \]

   donde \( w_i \) es el peso del activo \( i \) en la cartera, y \( E(R_i) \) es el rendimiento esperado del activo \( i \).

2. Riesgo (Varianza y Desviación Estándar)

   El riesgo de una cartera se mide típicamente por su varianza o desviación estándar de los rendimientos. La varianza de una cartera \( \text{Var}(R_p) \) se calcula usando las covarianzas entre los activos. Para una cartera con \( n \) activos, la varianza se puede expresar como:

   \[
   \text{Var}(R_p) = \sum_{i=1}^n \sum_{j=1}^n w_i w_j \text{Cov}(R_i, R_j)
   \]

   donde \( \text{Cov}(R_i, R_j) \) es la covarianza entre los rendimientos de los activos \( i \) y \( j \).

3. Frontera Eficiente

   La frontera eficiente es un conjunto de carteras que ofrece el mayor rendimiento esperado para un nivel dado de riesgo o el menor riesgo para un nivel dado de rendimiento. Para encontrar la frontera eficiente, se resuelve un problema de optimización en el que se maximiza el rendimiento esperado de la cartera sujeto a una restricción en la varianza.

4. Frente de la Eficiencia

   La ecuación para la frontera eficiente se obtiene resolviendo el problema de optimización para el rendimiento esperado y el riesgo de la cartera, dado un conjunto de activos. Se utiliza el enfoque de optimización cuadrática, con la función objetivo y las restricciones adecuadas para encontrar las carteras eficientes.

5. Diversificación

   La teoría de cartera enfatiza la importancia de diversificar inversiones para reducir el riesgo. Al combinar activos con correlaciones bajas o negativas, un inversor puede reducir el riesgo general de la cartera sin sacrificar el rendimiento esperado.

Modelos Matemáticos

1. Optimización de la Cartera

   El problema de optimización para construir una cartera eficiente se puede formular como:

   \[
   \text{Maximizar} \quad E(R_p) - \frac{\lambda}{2} \text{Var}(R_p)
   \]

   sujeto a:

   \[
   \sum_{i=1}^n w_i = 1
   \]
   \[
   w_i \geq 0
   \]

   donde \( \lambda \) es el coeficiente de aversión al riesgo del inversor.

2. Modelo de Media-Varianza

   El modelo de media-varianza es una extensión de MPT que busca maximizar la relación entre el rendimiento esperado y el riesgo de una cartera. Se basa en la suposición de que los rendimientos de los activos siguen una distribución normal.

Aplicaciones Prácticas

1. Selección de Carteras

   Utilizando MPT, los inversores pueden seleccionar carteras que se ajusten a su perfil de riesgo y objetivo de rendimiento. Esto implica usar herramientas computacionales para realizar cálculos complejos y optimizar la asignación de activos.

2. Evaluación de Rendimiento

   La teoría moderna de cartera también se utiliza para evaluar el rendimiento de carteras existentes en comparación con la frontera eficiente, ayudando a identificar carteras que podrían estar subóptimas.

La teoría moderna de cartera sigue siendo una herramienta fundamental en la gestión de inversiones, proporcionando un marco sólido para tomar decisiones informadas sobre la construcción y gestión de carteras de inversión.

 

Análisis de Riesgo y Rendimiento

El análisis de riesgo y rendimiento es un proceso fundamental en la gestión de inversiones que permite a los inversores evaluar el comportamiento esperado de sus inversiones en función de su riesgo y rendimiento. Este análisis se basa en conceptos matemáticos y estadísticos para tomar decisiones informadas sobre la asignación de activos y la optimización de carteras. 

Rendimiento Esperado

El rendimiento esperado de una inversión es una medida del retorno promedio que se espera obtener. Para una inversión con \( n \) posibles resultados, el rendimiento esperado \( E(R) \) se calcula como:

\[
E(R) = \sum_{i=1}^n p_i R_i
\]

donde \( p_i \) es la probabilidad del \( i \)-ésimo resultado y \( R_i \) es el rendimiento asociado a ese resultado.

Riesgo

El riesgo se refiere a la variabilidad de los rendimientos y se mide comúnmente mediante la desviación estándar. Para una inversión con rendimientos \( R_i \) y un rendimiento esperado \( E(R) \), la desviación estándar \( \sigma \) se calcula como:

\[
\sigma = \sqrt{\sum_{i=1}^n p_i (R_i - E(R))^2}
\]

El riesgo también se puede medir mediante la varianza \( \text{Var}(R) \), que es el cuadrado de la desviación estándar:

\[
\text{Var}(R) = \sum_{i=1}^n p_i (R_i - E(R))^2
\]

Covarianza y Correlación

Cuando se analizan carteras con múltiples activos, es importante considerar cómo los activos se mueven en relación uno con otro. La covarianza entre dos activos \( A \) y \( B \) se calcula como:

\[
\text{Cov}(A, B) = \sum_{i=1}^n p_i (R_{A,i} - E(R_A))(R_{B,i} - E(R_B))
\]

donde \( R_{A,i} \) y \( R_{B,i} \) son los rendimientos de los activos \( A \) y \( B \) en el \( i \)-ésimo escenario, respectivamente. La correlación, que es una medida estandarizada de la covarianza, se define como:

\[
\rho_{AB} = \frac{\text{Cov}(A, B)}{\sigma_A \sigma_B}
\]

donde \( \sigma_A \) y \( \sigma_B \) son las desviaciones estándar de los activos \( A \) y \( B \), respectivamente.

Construcción de Carteras

La teoría moderna de cartera utiliza el rendimiento esperado y el riesgo para construir carteras que maximizan el rendimiento esperado para un nivel dado de riesgo. El rendimiento esperado de una cartera con \( n \) activos se calcula como:

\[
E(R_p) = \sum_{i=1}^n w_i E(R_i)
\]

donde \( w_i \) es el peso del activo \( i \) en la cartera.

El riesgo de la cartera, medido por la varianza, se calcula utilizando la fórmula:

\[
\text{Var}(R_p) = \sum_{i=1}^n \sum_{j=1}^n w_i w_j \text{Cov}(R_i, R_j)
\]

donde \( \text{Cov}(R_i, R_j) \) es la covarianza entre los rendimientos de los activos \( i \) y \( j \).

Optimización de Carteras

El objetivo de la optimización de carteras es encontrar la combinación de activos que maximiza el rendimiento esperado para un nivel dado de riesgo. Esto se realiza mediante la solución de un problema de optimización en el que se busca maximizar la relación entre el rendimiento esperado y el riesgo, sujeto a las restricciones sobre los pesos de los activos.

Medidas Adicionales

Ratio de Sharpe: Este ratio mide el rendimiento adicional obtenido por unidad de riesgo, y se calcula como:

\[
S = \frac{E(R_p) - R_f}{\sigma_p}
\]

donde \( R_f \) es la tasa libre de riesgo y \( \sigma_p \) es la desviación estándar de la cartera.

Ratio de Treynor: Este ratio mide el rendimiento adicional por unidad de riesgo sistemático y se calcula como:

\[
T = \frac{E(R_p) - R_f}{\beta_p}
\]

donde \( \beta_p \) es el beta de la cartera, que mide la sensibilidad de los rendimientos de la cartera a los rendimientos del mercado.

Ratio de Información: Este ratio mide el rendimiento adicional obtenido por unidad de riesgo específico, y se calcula como:

\[
I = \frac{E(R_p) - E(R_b)}{\text{Tracking Error}}
\]

donde \( E(R_b) \) es el rendimiento del benchmark y la desviación estándar de las diferencias entre los rendimientos de la cartera y el benchmark se conoce como el tracking error.

El análisis de riesgo y rendimiento es esencial para una gestión efectiva de las inversiones y ayuda a los inversores a tomar decisiones informadas sobre la asignación de activos y la composición de sus carteras.

Construcción y Gestión de Portafolios

La construcción y gestión de portafolios es una disciplina clave en las finanzas que busca optimizar la asignación de activos para maximizar el rendimiento esperado mientras se controla el riesgo. La teoría moderna de carteras y los métodos de optimización son fundamentales para este proceso.

Construcción de Portafolios

1. *efinición de Objetivos: El primer paso en la construcción de un portafolio es definir los objetivos de inversión, que incluyen el rendimiento esperado, el horizonte temporal, y el nivel de tolerancia al riesgo.

2. Selección de Activos: Basado en los objetivos, se seleccionan activos que se alineen con los criterios de rendimiento y riesgo. Esto puede incluir acciones, bonos, bienes raíces, y otros instrumentos financieros.

3. Estimación de Rendimientos y Riesgos: Se estiman los rendimientos esperados y los riesgos asociados con cada activo. El rendimiento esperado de un activo se calcula utilizando el valor esperado de sus rendimientos futuros, mientras que el riesgo se mide mediante la desviación estándar de los rendimientos.

4. Cálculo de la Covarianza y Correlación: Se calcula la covarianza y la correlación entre los activos para entender cómo se mueven en relación unos con otros. La covarianza mide cómo los rendimientos de dos activos cambian juntos, mientras que la correlación proporciona una medida estandarizada de esta relación.

5. Optimización del Portafolio: Utilizando técnicas de optimización, se determina la combinación óptima de activos que maximiza el rendimiento esperado para un nivel dado de riesgo o minimiza el riesgo para un nivel dado de rendimiento. El modelo de media-varianza es comúnmente utilizado para este propósito.

   El rendimiento esperado del portafolio \( E(R_p) \) se calcula como:

   \[
   E(R_p) = \sum_{i=1}^n w_i E(R_i)
   \]

   donde \( w_i \) es el peso del activo \( i \) en el portafolio y \( E(R_i) \) es el rendimiento esperado del activo \( i \).

   La varianza del portafolio \( \text{Var}(R_p) \) se calcula como:

   \[
   \text{Var}(R_p) = \sum_{i=1}^n \sum_{j=1}^n w_i w_j \text{Cov}(R_i, R_j)
   \]

   donde \( \text{Cov}(R_i, R_j) \) es la covarianza entre los rendimientos de los activos \( i \) y \( j \).

Gestión de Portafolios

1. Rebalanceo: La gestión de un portafolio implica ajustar periódicamente la asignación de activos para mantener los objetivos de inversión. El rebalanceo puede ser necesario debido a cambios en los rendimientos de los activos o en los objetivos del inversor.

2. Monitoreo del Rendimiento: Se debe evaluar continuamente el rendimiento del portafolio en comparación con los objetivos establecidos. Esto incluye la revisión de los ratios de rendimiento como el ratio de Sharpe y el ratio de Treynor para evaluar la relación entre riesgo y rendimiento.

3. Análisis de Riesgo: La gestión activa del riesgo implica la evaluación de riesgos específicos del portafolio, como el riesgo de mercado, el riesgo de crédito, y el riesgo de liquidez. La diversificación es una estrategia clave para mitigar el riesgo.

4. Ajustes Estratégicos: A medida que cambian las condiciones del mercado o los objetivos del inversor, se pueden realizar ajustes estratégicos en la composición del portafolio. Esto puede incluir cambios en la asignación de activos, la incorporación de nuevos activos o la eliminación de aquellos que ya no se alinean con los objetivos.

5. Evaluación de Desempeño: Se deben utilizar benchmarks para comparar el desempeño del portafolio. Esto ayuda a determinar si el portafolio está alcanzando sus objetivos y si los gestores están agregando valor.

Estrategias de Inversión

- Inversión en Valor: Se enfoca en seleccionar activos que están subvalorados en el mercado en comparación con su valor intrínseco.
  
- Inversión en Crecimiento: Se centra en activos que tienen un potencial de crecimiento superior al promedio.

- Inversión en Índices: Consiste en replicar un índice de mercado para obtener un rendimiento similar al del índice.

- Inversión en Dividendos: Se enfoca en activos que proporcionan ingresos constantes a través de dividendos.

La construcción y gestión de portafolios es un proceso dinámico que requiere una comprensión profunda de los conceptos financieros y una atención continua a las condiciones del mercado y los objetivos del inversor.

Aplicación práctica

Un ejemplo práctico de cómo construir un portafolio de inversión con Python usando los fundamentos de diversificación y asignación de activos:

 

Supongamos que tenemos un conjunto de 4 activos: acciones de Apple, acciones de Microsoft, bonos del Tesoro de EE. UU. y oro. Queremos construir un portafolio con estos activos que nos proporcione una buena rentabilidad y diversificación.

Primero, obtenemos los precios diarios de cierre ajustados para cada uno de los activos usando la biblioteca pandas y Yahoo Finance API:

import pandas as pd
import yfinance as yf

# Descargar datos de precios de cierre diarios de los activos
tickers = ['AAPL', 'MSFT', '^TNX', 'GC=F']
prices = pd.DataFrame()
for t in tickers:
    prices[t] = yf.download(t, start='2016-01-01', end='2021-12-31')['Adj Close']
  

A continuación, utilizamos una técnica llamada "optimización de Markowitz" para asignar ponderaciones óptimas a cada uno de los activos en nuestro portafolio. La biblioteca scipy nos proporciona una función llamada "minimize" que podemos utilizar para minimizar la varianza del portafolio sujeto a ciertas restricciones.

import numpy as np
from scipy.optimize import minimize

# Función de varianza del portafolio
def portfolio_var(w, cov):
    return np.dot(w.T, np.dot(cov, w))

# Restricciones de asignación de activos
def asset_constraint(w):
    return sum(w) - 1

# Restricciones de ponderación mínima y máxima
def weight_constraint(w):
    return np.array([0.10, 0.10, 0.10, 0.10]) - w

# Estimate the covariance matrix
cov = prices.pct_change().cov()

# Optimización de Markowitz para asignar ponderaciones óptimas
w0 = [0.25, 0.25, 0.25, 0.25]  # Inicializar ponderaciones iguales
cons = [{'type': 'eq', 'fun': asset_constraint}, {'type': 'ineq', 'fun': weight_constraint}]
res = minimize(portfolio_var, w0, args=(cov,), method='SLSQP', constraints=cons, bounds=[(0, 1), (0, 1), (0, 1), (0, 1)])

# Ponderaciones optimizadas del portafolio
w_opt = res.x
print('Ponderaciones optimizadas del portafolio:', w_opt)
  

Finalmente, podemos calcular la rentabilidad del portafolio y graficar su rendimiento a lo largo del tiempo:

# Rentabilidades diarias del portafolio
pf_returns = (prices.pct_change() * w_opt).sum(axis=1)

# Graficar el rendimiento del portafolio
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(pf_returns.cumsum())
ax.set(title='Rendimiento del portafolio', ylabel='Cumulative Returns')
  

Este es solo un ejemplo básico, pero demuestra cómo podemos utilizar la programación en Python para aplicar los fundamentos de diversificación y asignación de activos a la construcción de un portafolio de inversión.