En la carga de los recursos... Cargando...

La medida de los riesgos y las recompensas La teoría de Tom Markowitz

El autor:Las hierbas, Creado: 2023-11-10 15:44:53, Actualizado: 2024-11-08 09:06:34

风险和回报的衡量——马科维茨理论介绍

La semana pasadaGestión de riesgos de VaRCuando se habla del riesgo de una cartera de inversiones, el riesgo no es igual al riesgo de los activos individuales, y está relacionado con su correlación de precios. Por ejemplo, si dos activos tienen una correlación positiva muy fuerte, es decir, coinciden, entonces la dispersión en más inversiones no reduce el riesgo, si la correlación es negativa, la dispersión puede reducir significativamente el riesgo.

La teoría del portafolio moderno (MPT), propuesta por Harry Markowitz en 1952, es un marco matemático de selección de portafolios que busca maximizar los beneficios esperados y controlar el riesgo mediante la selección de diferentes portafolios de activos de riesgo. La idea central es que los cambios de precios no perfectamente sincronizados entre los activos pueden reducir el riesgo de inversión en general mediante la diversificación de la distribución de los activos.

Conceptos clave de la teoría de Markowitz

  1. Los rendimientos esperados: Es el rendimiento que un inversor puede esperar obtener de un activo o una cartera de inversiones, generalmente basado en datos de rendimiento histórico.

¿Qué es lo que se está haciendo?

En el caso de¿Por qué no lo haces?En la actualidad, la mayoría de las inversiones en el sector privado se encuentran en el sector privado, y la mayoría de las inversiones en el sector privado están en el sector privado.¿Por qué no lo haces?Sí, es el número¿Qué quieres decir?El peso de los activos en la cartera de inversiones es el mismo que el peso de los activos en la cartera de inversiones.¿Por qué no lo haces?Sí, es el número¿Qué quieres decir?El rendimiento esperado de un activo.

  1. Riesgo (Volatilidad o desventaja estándar)Se utiliza para medir la incertidumbre o la volatilidad de los retornos de las inversiones.

¿Qué es lo que está pasando?

En el caso de¿Por qué no lo haces?El riesgo total de una cartera de inversiones es el riesgo total de una cartera de inversiones.¿Por qué no lo haces?Es un activo¿Qué quieres decir?y los activos¿Qué quieres decir?La diferencia de paridad es la diferencia de paridad, que mide la relación entre los cambios de precios de los dos activos.

  1. Diferencias de cooperaciónLos precios de los activos son los siguientes:

¿Por qué no lo haces?

En el caso de¿Por qué no lo haces?Es un activo¿Qué quieres decir?y los activos¿Qué quieres decir?El número de coefficientes correlacionados¿Por qué no lo haces?y¿Por qué no lo haces?Los activos¿Qué quieres decir?y los activos¿Qué quieres decir?Los medios de comunicación también están en contra de la ley.

  1. Fronteras eficacesEn el sistema de coordenadas riesgo-beneficio, el límite efectivo es el conjunto de portafolios que pueden ofrecer el máximo rendimiento esperado a un nivel de riesgo dado.

风险和回报的衡量——马科维茨理论介绍

El gráfico anterior es un diagrama de los límites efectivos, donde cada punto representa una cartera de inversiones con diferentes pesos, con las coordenadas horizontales de volatilidad o nivel de riesgo, y las coordenadas verticales de rendimiento. Obviamente, nos centramos en la parte superior del gráfico, que obtiene el mayor rendimiento con el mismo nivel de riesgo.

En la gestión de transacciones y portafolios cuantificados, la aplicación de estos principios requiere el análisis estadístico de datos históricos, el uso de modelos matemáticos para estimar las ganancias esperadas, los desviales estándar y los desviales correlativos de una variedad de activos; y luego, la aplicación de técnicas de optimización para encontrar la mejor reubicación de activos. Este proceso generalmente involucra complejas operaciones matemáticas y una gran cantidad de procesamiento por computadora, por lo que el análisis cuantitativo se ha vuelto tan importante en el campo financiero moderno.

Ejemplos de código de Python para obtener la combinación óptima con el método de simulación

El cálculo de la combinación óptima de Markowitz es un proceso de varios pasos, que involucra varios pasos clave, como la preparación de datos, la simulación de la cartera, el cálculo de indicadores y otros.https://plotly.com/python/v3/ipython-notebooks/markowitz-portfolio-optimization/

  1. Obtención de datos del mercado

    • Aprobadoget_dataFunción que obtiene datos de precios históricos de la moneda digital seleccionada. Estos son los datos necesarios para calcular el rendimiento y el riesgo, y se utilizan para construir portafolios y calcular el índice de Sharpe.
  2. Calcular los beneficios y riesgos

    • Usocalculate_returns_riskLa función calcula el rendimiento anualizado y el riesgo anualizado de cada moneda digital (desventaja estándar). Esto es para cuantificar el rendimiento histórico de cada activo para usarlo en la combinación óptima.
  3. Calcula la combinación óptima de Markowitz

    • Usocalculate_optimal_portfolioFunción que simula varios portafolios. En cada simulación, se generan pesos de activos al azar y se calcula el rendimiento y el riesgo esperados de la cartera en función de estos pesos.
    • Al generar al azar combinaciones de diferentes pesos, se pueden explorar varios portafolios posibles para encontrar la mejor combinación. Esta es una de las ideas centrales de la racionalidad de los grupos de inversión de Markowitz.

El objetivo de todo el proceso es encontrar una cartera que obtenga el mejor rendimiento esperado a un nivel de riesgo dado. Al simular varias combinaciones posibles, los inversores pueden comprender mejor el rendimiento de las diferentes configuraciones y elegir la combinación que mejor se adapte a sus objetivos de inversión y su capacidad de soportar el riesgo.

import numpy as np
import pandas as pd
import requests
import matplotlib.pyplot as plt

# 获取行情数据
def get_data(symbols):
    data = []
    for symbol in symbols:
        url = 'https://api.binance.com/api/v3/klines?symbol=%s&interval=%s&limit=1000'%(symbol,'1d')
        res = requests.get(url)
        data.append([float(line[4]) for line in res.json()])
    return data

def calculate_returns_risk(data):
    returns = []
    risks = []

    for d in data:
        daily_returns = np.diff(d) / d[:-1]
        annualized_return = np.mean(daily_returns) * 365
        annualized_volatility = np.std(daily_returns) * np.sqrt(365)

        returns.append(annualized_return)
        risks.append(annualized_volatility)

    return np.array(returns), np.array(risks)

# 计算马科维茨最优组合
def calculate_optimal_portfolio(returns, risks):
    n_assets = len(returns)
    num_portfolios = 3000

    results = np.zeros((4, num_portfolios), dtype=object) 


    for i in range(num_portfolios):
        weights = np.random.random(n_assets)
        weights /= np.sum(weights)

        portfolio_return = np.sum(returns * weights)
        portfolio_risk = np.sqrt(np.dot(weights.T, np.dot(np.cov(returns, rowvar=False), weights)))

        results[0, i] = portfolio_return
        results[1, i] = portfolio_risk
        results[2, i] = portfolio_return / portfolio_risk
        results[3, i] = list(weights) # 将权重转换为列表

    return results

symbols = ['BTCUSDT','ETHUSDT', 'BNBUSDT','LINKUSDT','BCHUSDT','LTCUSDT']
data = get_data(symbols)

returns, risks = calculate_returns_risk(data)
optimal_portfolios = calculate_optimal_portfolio(returns, risks)

max_sharpe_idx = np.argmax(optimal_portfolios[2])
optimal_return = optimal_portfolios[0, max_sharpe_idx]
optimal_risk = optimal_portfolios[1, max_sharpe_idx]
optimal_weights = optimal_portfolios[3, max_sharpe_idx]

# 输出结果
print("最优组合:")
for i in range(len(symbols)):
    print(f"{symbols[i]}权重: {optimal_weights[i]:.4f}")

print(f"预期收益率: {optimal_return:.4f}")
print(f"预期风险(标准差): {optimal_risk:.4f}")
print(f"夏普比率: {optimal_return / optimal_risk:.4f}")

# 可视化投资组合
plt.figure(figsize=(10, 5))
plt.scatter(optimal_portfolios[1], optimal_portfolios[0], c=optimal_portfolios[2], marker='o', s=3)
plt.title('portfolio')
plt.xlabel('std')
plt.ylabel('return')
plt.colorbar(label='sharp')
plt.show()

El resultado final es: La mejor combinación: El peso de BTCUSDT es de 0.0721 El peso de ETHUSDT es de 0.2704 BNBUSDT tiene un peso de 0.3646 LINKUSDT tiene un peso de 0.1892 El peso de BCHUSDT es de 0.0829 El peso de LTCUSDT es de 0.0209 El rendimiento esperado: 0.4195 El riesgo esperado (desvio estándar): 0.1219 El índice de Sharp: 3.4403风险和回报的衡量——马科维茨理论介绍


Más.