Python金融大数据分析——第11章 统计学(2)投资组合优化 笔记

本文深入探讨了投资组合优化,基于均值-方差理论,讲解了数据处理、基本理论、投资组合优化、有效边界和资本市场线。通过实例分析不同资产的权重组合,展示了如何找到风险-收益均衡点,以及如何利用无风险资产增强投资机会。
摘要由CSDN通过智能技术生成

第11章 统计学

11.2 投资组合优化

现代 / 均值-方差投资组合理论(MPT)是金融理论的重要基础。正态分布收益率假设是该理论的基础:

只观察均值和方差, 我们必然假定没有必要用其他统计数字描述期末财富的分布。除非投资者有特殊的效用函数(二次效用函数), 否则有必要假设收益率呈正态分布, 用均值和方差就可以完整地描述。

11.2.1 数据

我们选择 5 种不同资产以提供分析:军工类股票 中国卫星 (600118)、中兵红箭 (000519) 、航天动力 (600343) ,以及浦发银行(600000 )和 中证500指数基金 500ETF (510500 )。

import numpy as np
import pandas as pd
import tushare as ts
import matplotlib.pyplot as plt

# 军工类股票 中国卫星 (600118)、中兵红箭 (000519) 、航天动力 (600343) ,
# 以及浦发银行(600000 )和 中证500指数基金 500ETF (510500 )
symbols = ['600118', '000519', '600343', '600000', '510500']

indexes = pd.date_range('2014-01-01', '2018-07-06')
# 为了保持和从toshare获取的时间序列类型一致,这里把时间类型转为字符串
indexes = indexes.map(lambda x: datetime.datetime.strftime(x, '%Y-%m-%d'))

data = pd.DataFrame(index=indexes)
for sym in symbols:
    k_d = ts.get_k_data(sym, '2014-01-01', ktype='D')
    # 如果上面的时间序列不转成字符串,这里就要转成时间序列,以保持index类型一致
    # k_d['date'] = k_d['date'].astype('datetime64[ns]')
    k_d.set_index('date', inplace=True)
    data[sym] = k_d['close']
data = data.dropna()

(data / data.ix[0] * 100).plot(figsize=(8, 5))

一段时间的股票价格走势
一段时间的股票价格走势

# 均值-方差指的是不同证券(对数)收益的均值和方差, 可以这样计算:
rets = np.log(data / data.shift(1))
# 在这些时间序列数据中, 可以看到年化收益表现的显著差异。
# 我们使用 252 个交易日,从每日收益得出年化收益:
rets.mean() * 252
# 600118    0.006067
# 000519   -0.038631
# 600343    0.068651
# 600000    0.140085
# 510500    0.428569
# dtype: float64

# 投资资产的协方差矩阵是整个投资组合选择过程的核心部分
rets.cov()*252
#           600118    000519    600343    600000    510500
# 600118  0.237557  0.107797  0.177612  0.017609  0.102007
# 000519  0.107797  0.209140  0.123730  0.012978  0.062838
# 600343  0.177612  0.123730  0.238805  0.013859  0.095337
# 600000  0.017609  0.012978  0.013859  0.064694  0.022098
# 510500  0.102007  0.062838  0.095337  0.022098  0.510833

11.2.2 基本理论

下面,我们假定投资者不允许在某种证券上建立空头头寸。 只允许多头头寸意味着投资者的财富将在可用资产中分配。所有头寸均为多头(正)头寸,且头寸的总和为 100%。例如, 可以在 5 种证券中投入相同的资金量(每种 20%)。

# 生成 5 个 0 到 1之间的随机数, 
# 然后对这些数值进行规范化,使所有值的总和为1
noa = 5
weights = np.random.random(noa)
weights /= np.sum(weights)
weights
# array([ 0.21076189,  0.23917961,  0.1825734 ,  0.03619006,  0.33129504])

现在可以检查资产权重综合确实为1 ;也就是说 Iwi=1 ∑ I w i = 1 , 其中 I 是资产的数量, wi0 w i ≥ 0 是资产的权重。 下面公式提供在给定单一证券权重情况下的预期投资组合收益。 这是假定历史平均表现是未来(预期)表现的最佳预测因素时的预期投资收益公式。公式中, ri r i 是状态相关未来收益(由假定为正态分布的收益值组成的向量), 而 μi μ i 是证券i的预期收益。 最后, WT W T 是权重向量的转置, μ μ 是预期证券收益的向量。
公式 预期收益一般公式

μp=E(Iwiri)=IwiE(ri)=Iw
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值