基于tushare数据构建最优投资组合

本文基于tushare数据构建最优投资组合以20个股票为例(个人的tushareID:498867)

# 导入tushare
import tushare as ts
import pandas as pd
dff=pd.DataFrame()
# 初始化pro接口
pro = ts.pro_api('你的token')
name=['600418.SH', '603355.SH', '002429.SZ', '002945.SZ', '002423.SZ',
       '300376.SZ', '000656.SZ', '600985.SH', '600392.SH', '002085.SZ',
       '601106.SH', '600188.SH', '002958.SZ', '601611.SH', '688321.SH',
       '300724.SZ', '603267.SH', '002152.SZ', '603056.SH', '600968.SH']
for i in name:
    # 导入tushare
    # 拉取数据
    try:
        df = pro.daily(**{
            "ts_code": i,
            "trade_date": "",
            "start_date": "20200101",
            "end_date": "20220101",
            "offset": "",
            "limit": ""
        }, fields=[
            "ts_code",
            "trade_date",
            "open",
            "high",
            "low",
            "close",
            "pre_close",
            "change",
            "pct_chg",
            "vol",
            "amount"
        ])
        dff[i]=df['pct_chg'].values
    except:
        pass

输出下图

dff['trade_date']=df['trade_date'].values
dff=dff.sort_values('trade_date')
dff=dff.set_index('trade_date')

# weight夏普比率最大的时候,根据Sharpe-ratio=(资产平均收益率-平均无风险收益率)/资产投资组合收益率标准差(无风险收益率取10期年国债的收益率1.25%)
weight=[10.842,9.93,0.828,0.976,0.485,4.533,5.273,0.515,10.226,0.002,1.443,9.171,4.566,5.115,0.318,9.814,8.419,11.068,3.413,3.064]

dff['best20']=(dff[dff.columns[0]]*weight[0]+dff[dff.columns[1]]*weight[1]+dff[dff.columns[2]]*weight[2]+dff[dff.columns[3]]*weight[3]+dff[dff.columns[4]]*weight[4]+dff[dff.columns[5]]*weight[5]+dff[dff.columns[6]]*weight[6]+dff[dff.columns[7]]*weight[7]+dff[dff.columns[8]]*weight[8]+dff[dff.columns[9]]*weight[9]+dff[dff.columns[10]]*weight[10]+dff[dff.columns[11]]*weight[11]+dff[dff.columns[12]]*weight[12]+dff[dff.columns[13]]*weight[13]+dff[dff.columns[14]]*weight[14]+dff[dff.columns[15]]*weight[15]+dff[dff.columns[16]]*weight[16]+dff[dff.columns[17]]*weight[17]+dff[dff.columns[18]]*weight[18]+dff[dff.columns[19]]*weight[19])/100

dff

输出如下,就可以得到最优投资组合的收益

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记忆手册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值