注意optimze.minimize 优化问题求解方法

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import minimize
import tushare as ts

pro = ts.pro_api(‘’)

stock1 = pro.daily(ts_code = ‘000001.SZ’,start_date = ‘2015-01-01’)
stock2 = pro.daily(ts_code = ‘603818.SH’,start_date = ‘2015-01-01’)
stock3 = pro.daily(ts_code = ‘600507.SH’,start_date = ‘2015-01-01’)
stock4 = pro.daily(ts_code = ‘601012.SH’,start_date = ‘2015-01-01’)
stock5 = pro.daily(ts_code = ‘601231.SH’,start_date = ‘2015-01-01’)
stock_list = [stock1,stock2,stock3,stock4,stock5]

for i in stock_list:
i.index = i[‘trade_date’]

stock = pd.concat([stock1[‘close’],stock2[‘close’],stock3[‘close’],stock4[‘close’],stock5[‘close’]],axis = 1)
stock.index = pd.date_range(start = ‘2015-01-01’,periods = 1152,freq = ‘D’)
df = pd.DataFrame(columns = [‘s1’,‘s2’,‘s3’,‘s4’,‘s5’],index = stock.index,data = stock.values)
df = df.dropna()

def to_return(x):
r = pd.DataFrame(index = x.index)
r = (x.shift(1) - x)/x
return r
ret = to_return(df)

def stat(x):
mu = np.mean(x,0)
cov = x.cov(0)
return mu,cov

mu,cov = stat(data.pct_change())

def fun(w):
import math
w = np.array(w)
w /=sum(w)
mean = w.T.dot(mu)
std = math.sqrt(w.T.dot(cov).dot(w))
return np.array([mean,std])

def minvar(w):
return fun(w)[1]

def port_opt(mu,cov,r):
from scipy.optimize import minimize
con = ({‘type’:‘eq’,‘fun’:lambda x: np.sum(x)-1},
{‘type’:‘eq’,‘fun’:lambda x :fun(x)[0]- r})
bnds = tuple((0,1) for i in range(5))
an = minimize(minvar,np.zeros(5),method=‘SLSQP’,bounds = bnds,constraints = con)
return an[‘x’].dot(mu),an[‘fun’]

for r in np.linspace(0,0.01,10):
port_mean = []
port_std = []
[mean,std] = port_opt(mu,cov,r)
port_mean.append(mean)
port_std.append(std)
port_mean = np.array(port_mean)
port_std = np.array(port_std)

risk_free = 0.03
plt.scatter(port_mean,port_std,c = (port_mean - risk_free)/port_std,marker = ‘o’)
plt.plot(port_mean,port_std,c = ‘r’)
plt.colorbar()


资产组合优化——python 有效前沿相关推荐

  1. rust python扩展_Rust语言优化Python性能案例

    原标题:Rust语言优化Python性能案例 导读:Python 被很多互联网系统广泛使用,但在另外一方面,它也存在一些性能问题,不过 Sentry 工程师分享的在关键模块上用另外一门语言 Rust ...

  2. python程序占用内存高_如何优化Python占用的内存,面试必学

    如果程序处理的数据比较多.比较复杂,那么在程序运行的时候,会占用大量的内存,当内存占用到达一定的数值,程序就有可能被操作系统终止,特别是在限制程序所使用的内存大小的场景,更容易发生问题.下面我就给出几 ...

  3. 什么是python编程例子_案例详解:优化Python编程的4个妙招

    全文共3510字,预计学习时长7分钟 作为数据科学家,敲出最优的Python代码非常非常重要.别无他法,杂乱低效的代码笔记本会消耗你的时间,也会浪费大量项目资金.经验丰富的数据科学家和专业人士都很清楚 ...

  4. python 速度 memmap_从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例

    <从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例>要点: 本文介绍了从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例,希望对您有用.如果有疑问,可 ...

  5. 什么叫python代码的优化_优化Python代码

    如果你的问题是关于优化python代码(我认为应该是这样),那么你可以做各种各样的intesting的事情,但是首先: 你可能不应该痴迷于优化python代码!如果您正在使用最快的算法来解决问题,并且 ...

  6. 转 从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例

    注: 转自 微信公众号"高可用架构":从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例 导读:Python 被很多互联网系统广泛使用,但在另外一方面,它也存在一 ...

  7. 优化Python代码的4种方法

    介绍 作为数据科学家,编写优化的Python代码非常非常重要.杂乱,效率低下的代码即浪费你的时间甚至浪费你项目的钱.经验丰富的数据科学家和专业人员都知道,当我们与客户合作时,杂乱的代码是不可接受的. ...

  8. python股票分析论文_股票分析与资产组合(python)

    本文利用python3.4进行分析,对财通福享,银华鑫盛和国金鑫新三支股票在2017的情况进行解读,并优化资产组合. 首先导入python相关的库,这里用tushare作为获取数据的入口. impor ...

  9. 最强python技术前沿!什么是python怎么学?通过这篇文字就知道了

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

最新文章

  1. Spring Boot集成kafka完整版
  2. xhtml和css概述
  3. html数据分析表格api_Python数据分析基本库——Matplotlib(一)
  4. 产品经理面试中那些不忍直视的奇葩题目,面试官你真是够了!
  5. 对话阿里巴巴贾扬清:如何成为一名优秀的 AI 架构师?
  6. 增强for循环、Map接口遍历、可变參数方法
  7. break VS continue
  8. 【VS 2017 C语言 汇编语言】如何使用VS 2017,通过反汇编查看C语言代码对应的32位x86汇编语言 VS 2017单步调试的使用
  9. python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建
  10. 您第一次上网的速度是多少?
  11. Servlet、Listener、Filter、JSP
  12. Linux查看vga分辨率,调整ubuntu启动界面vga分辨率的方法
  13. IDEA 设置类注释模板
  14. Android 11源码 修改系统App后进行编译
  15. 超威主板关闭超线程教程
  16. Linux实验操作之使用LAMP系统架设一个Discuz论坛
  17. 高级shell编程笔记(第十二章 外部过滤器,程序和命令)
  18. Error:NgdBuild:604解决方法
  19. 深夜,想到今天学的linux内容,太值了
  20. java 图片质量压缩_java图片高质量压缩

热门文章

  1. MPEG标准的音频部分
  2. NTFS学习笔记(1):DBR
  3. (转)HyperLedger Fabric协议规范
  4. 资金账号,手机号等中间添加*(星号),脱敏
  5. C字符串类型的 12345 转换为int类型的 12345
  6. 基于强化学习的期权量化交易回测系统5
  7. 文字识别OCR-SDK开发包技术简介
  8. Python使用Selenium实现淘宝网滑块登陆
  9. Javascript 机选双色球
  10. 多重判断条件IF优化