基于tushare数据构建等权重投资组合

1.获取数据

本文以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',
'603719.SH',
'000656.SZ',
'002500.SZ',
'600985.SH',
'600392.SH',
'002085.SZ',
'601106.SH',
'600188.SH',
'002958.SZ',
'601611.SH',
'688321.SH',
'300724.SZ',
'603267.SH',
'600466.SH'] #你自己定义你的20个股票代码

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['close'].values
    except:
        pass


这里我们可以输出dff看一下

已经看到20个股票的收盘价格已经出来了。

# 把日期加为1列
dff['trade_date']=df['trade_date'].values
dff=dff.sort_values('trade_date')
# 设置一下以日期为索引
dff=dff.set_index('trade_date')

# 把数据存到excel
dff.to_excel("xxx\中证500部分股票近两年数据.xlsx")

2.构建等权重投资组合

年化标准差=日收益标准差*sqrt (243)(每年按照243个交易日计算)

年化收益率=(投资内收益/本金)/(投资天数/365)×100%

# 计算等权重的收益率、标准差、
import pandas as pd
import numpy as np
df4 = pd.read_excel(
    io='xxx\中证500部分股票2020数据.xlsx',
    usecols=['trade_date','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']
)



df4=df4.set_index('trade_date')

df4.loc['returnlog']=np.log(df4.loc['20201231']/df4.loc['20200102'])

df4.loc['std']=df4.loc['20200102':'20201231'].std()*np.sqrt(243)
df4.loc['return']=df4.loc['20201231']/df4.loc['20200102']-1
df4

        这样就可以得到每个股票的年回报,如下图

接下来进行等权计算即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
投资组合权重优化算法是用于确定在给定一组资产的情况下,如何分配资金以最大化投资组合的预期回报或达到特定目标的方法。以下是几种常见的投资组合权重优化算法: 1. 均值-方差模型:这是最常见和经典的投资组合优化算法。它基于资产的预期收益率和协方差矩阵来计算投资组合的期望回报和风险。通过最小化方差或最大化夏普比率(期望收益率与风险之比)来确定最优权重。 2. 风险平价(Risk Parity)模型:该模型旨在平衡投资组合中各个资产的风险贡献。它通过将每个资产的波动率作为权重的函数,使得每个资产对总体风险的贡献相等。 3. 最小方差模型:该模型通过最小化投资组合的方差来确定最优权重。相比于均值-方差模型,它忽略了预期收益率,仅关注风险。 4. 最大多样化(Maximum Diversification)模型:该模型旨在最大化投资组合的多样性,从而降低整体风险。它通过最大化投资组合的多样性指标来确定最优权重。 5. 基于风险因子模型:除了考虑资产本身的特征,还考虑了整体市场和宏观经济指标等因素。通过对这些因子进行建模,可以确定最优权重以实现特定目标。 这些算法可以应用于不同的投资目标和约束条件,例如最大化收益、最小化风险、最大化多样性或遵循特定的资产配置策略。在实际应用中,选择适合特定情况的算法是非常重要的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

记忆手册

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

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

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

打赏作者

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

抵扣说明:

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

余额充值