python库标准差_Python 如何寻找组合收益率和标准差的极值问题

用组合标准差最小和组合收益率最大  分别求的不同的资金权重比例

import numpy as np #导入numpy库,是科学计算库

from sympy import * #导入解方程组的模块

def ZHbestrate(A,B): #设置函数

w=np.linspace(0,1,100) #w取值,0-1等分100个数值

r=w*np.mean(A)+(1-w)*np.mean(B) #组合收益率公式

std=(w**2*np.var(A)+(1-w)**2*np.var(B)+\

2*w*(1-w)*np.std(A)*np.std(B)*A.corr(B))**0.5 #组合标准差公式

return (std.min(),r.max()) #返回求组合标准差最小,组合收益率最大的值

print(ZHbestrate(jlr,aulr),'组合标准差最小','组合收益率最大')

stdmin=ZHbestrate(jlr,jmlr)[0] #取组合标准差最小的值

rmax=ZHbestrate(jlr,jmlr)[1] #取组合收益率最大的值

w_rmax=Symbol('w_rmax') #设置参数,组合收益率最大是的资金权重比例

print(solve(w_rmax*np.mean(jlr)+\

(1-w_rmax)*np.mean(jmlr)-rmax,w_rmax)) #解方程组(组合收益率最大时)

w_stdmin=Symbol('w_stdmin') #设置参数,组合标准差最小时的资金权重比例

print(solve((w_stdmin**2*np.var(jlr)+(1-w_stdmin)**2*np.var(jmlr)+\

2*w_stdmin*(1-w_stdmin)*jlr.corr(jmlr)*np.std(jlr)*np.std(jmlr))*0.05\

-stdmin,w_stdmin)) #解方程组(当组合标准差最小时)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值