Efficient Frontier of Two Risky Assets(两种证券组合的有效边界)

初始条件:

资产 E ( r i ) E(r_i) σ i \sigma_i
1 8% 14%
2 12% 20%

计算公式:
σ p = w 1 2 σ 1 2 + w 2 2 σ 2 2 + 2 ρ w 1 w 2 σ 1 σ 2 \sigma_p=\sqrt{w_1^2\sigma_1^2+w_2^2\sigma_2^2+2\rho w_1w_2\sigma_1\sigma_2}

w 1 w_1 w 2 w_2 E ( r p ) E(r_p) σ p ρ = 0 \sigma_p\\\rho=0 σ p ρ = 0.5 \sigma_p\\\rho=0.5 σ p ρ = 1.0 \sigma_p\\\rho=1.0 σ p ρ = 0.5 \sigma_p\\\rho=-0.5 σ p ρ = 1.0 \sigma_p\\\rho=-1.0
0 1 0.12 0.2 0.2 0.2 0.2 0.2
0.1 0.9 0.116 0.180544 0.187393 0.194 0.173424 0.166
0.2 0.8 0.112 0.162432 0.175682 0.188 0.148 0.132
0.3 0.7 0.108 0.146164 0.165058 0.182 0.124435 0.098
0.4 0.6 0.104 0.132424 0.155743 0.176 0.104 0.064
0.5 0.5 0.1 0.122066 0.147986 0.17 0.088882 0.03
0.6 0.4 0.096 0.116 0.142042 0.164 0.082073 0.004
0.7 0.3 0.092 0.114909 0.138145 0.158 0.08558 0.038
0.8 0.2 0.088 0.118929 0.13647 0.152 0.098306 0.072
0.9 0.1 0.084 0.127577 0.137099 0.146 0.117286 0.106
1 0 0.08 0.14 0.14 0.14 0.14 0.14

Excel作图:
在这里插入图片描述

Python Code:

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

w_1=np.linspace(0,1,11)
w_2=1-w_1

E_r_1=0.08
E_r_2=0.12

sigma_1=0.14
sigma_2=0.2

rho_1=0
rho_2=0.5
rho_3=1
rho_4=-0.5
rho_5=-1

E_r_p=w_1*E_r_1+w_2*E_r_2

sigma2_p_1=w_1*w_1*sigma_1*sigma_1+w_2*w_2*sigma_2*sigma_2+2*rho_1*w_1*w_2*sigma_1*sigma_2
y1=[]
Y1=[]
for i in sigma2_p_1:
    y1=round(math.sqrt(i),4)
    Y1.append(y1)

sigma2_p_2=w_1*w_1*sigma_1*sigma_1+w_2*w_2*sigma_2*sigma_2+2*rho_2*w_1*w_2*sigma_1*sigma_2
y2=[]
Y2=[]
for i in sigma2_p_2:
    y2=round(math.sqrt(i),4)
    Y2.append(y2)

sigma2_p_3=w_1*w_1*sigma_1*sigma_1+w_2*w_2*sigma_2*sigma_2+2*rho_3*w_1*w_2*sigma_1*sigma_2
y3=[]
Y3=[]
for i in sigma2_p_3:
    y3=round(math.sqrt(i),4)
    Y3.append(y3)

sigma2_p_4=w_1*w_1*sigma_1*sigma_1+w_2*w_2*sigma_2*sigma_2+2*rho_4*w_1*w_2*sigma_1*sigma_2
y4=[]
Y4=[]
for i in sigma2_p_4:
    y4=round(math.sqrt(i),4)
    Y4.append(y4)

sigma2_p_5=w_1*w_1*sigma_1*sigma_1+w_2*w_2*sigma_2*sigma_2+2*rho_5*w_1*w_2*sigma_1*sigma_2
y5=[]
Y5=[]
for i in sigma2_p_5:
    y5=round(math.sqrt(i),4)
    Y5.append(y5)
    
%matplotlib auto
plt.figure()

plt.plot(Y1,E_r_p)
plt.plot(Y2,E_r_p)
plt.plot(Y3,E_r_p)
plt.plot(Y4,E_r_p)
plt.plot(Y5,E_r_p)
plt.title(r'$Efficient\ Frontier\ of\ Two\ Risky\ Assets$')
plt.xlabel(r'$\sigma_p$')
plt.ylabel(r'$E(r_p)$')

plt.legend(labels=[r'$\rho_1=0$',r'$\rho_2=0.5$',r'$\rho_3=1$',r'$\rho_4=-0.5$',r'$\rho_5=-1$'])

plt.show()

Result:
在这里插入图片描述

发布了56 篇原创文章 · 获赞 4 · 访问量 8324

猜你喜欢

转载自blog.csdn.net/qq_45669448/article/details/104578382
two
今日推荐