量化投资以Python为工具

Part 3 金融理论、投资组合与量化选股

第18章 资产收益率和风险

收益率=\frac{投资收益}{投资成本}​​​​​​​

投资成本 = 资产单价 \times 资产数量

期末价格 - 期初价格称为资本利得

期间投资收益 = 期末价格 -期初价格 + 期间其他收益

其他收益:如房产租金、股票分红、债券利息等。

以上收益率并未考虑交易成本,现实中不同的资产会有不同的交易成本:如中介费(投资房地产)、申购费(认购开放式基金时支付的费用)、买卖股票时的手续费及印花税等。将买卖资产时的交易成本扣除的收益称为净收益

期间收益率 = \frac{期间投资收益}{期初价格}

期间净收益率 = \frac{期间收益率 - 卖出交易成本}{期初价格 + 买入交易成本}

投资人往往根据预期收益率(Expected Rate of Return)来决定是否要购入某资产。

18.1 单期与多期简单收益率

单期:收益率计算时间间隔为一期。

多期:时间跨度为2期及以上。

18.1.1 单期简单收益率

资产价格时间序列:P_1,P_2,...P_t ,假设投资者于t-1 时刻投入某资产,买入价格为P_{t-1} ,持有一期后卖出,卖出价格为P_t 。假设此期间无其他收益,也不考虑交易成本。则投资者的单期简单收益率(One Period Simple Return)R_t 的计算公式为:

R_t = \frac{P_t - P_{t-1}}{P_{t-1}} = \frac{P_t}{P_{t-1}}-1

简单毛收益率(Simple Gross Return):

R_t+1 =\frac{P_t}{P_{t-1}}

按此方法可以计算出收益率序列:R_2,R_3,...R_t

18.1.2 多期简单收益率

资产价格时间序列:P_1,P_2,...P_t ,假设投资者于t-k 期投入某资产,买入价格为P_{t-k} ,在第k 期卖出,卖出价格为P_t 。假设此期间无其他收益,也不考虑交易成本。则投资者的k​​​​​​​ 期简单收益率R_t(k) 的计算公式为:

R_t(k)=\frac{P_t-P_{t-k}}{P_t}=\frac{P_t}{P_{t-k}}-1

import pandas as pd
stock = pd.read_csv('stockszA.csv',index_col='Trddt')

#读取万科公司股票数据,股票代码“000002”,stockszA文件中将其存储为“2”
Vanke = stock[stock.Stkcd==2]

#获取万科股票的收盘价数据
close = Vanke.Clsprc
close.head()

#转化成带日期的格式,即时间序列
close.index = pd.to_datetime(close.index)
close.index.name = 'Date'
close.head()

#将收盘价格滞后一期
lagclose = close.shift(1)
lagclose.head()

#合并close,lagclose这两个收盘价数据
Calclose = pd.DataFrame({'close':close,'lagclose':lagclose})
Calclose.head()

#计算单期简单收益率
simpleret = (close-lagclose)/lagclose
simpleret.name = 'simpleret'
simpleret.head()
calret = pd.merge(Calclose,pd.DataFrame(simpleret),left_index=True
,right_index=True)
calret.head()

#计算2期简单收益率
simpleret2=(close-close.shift(2))/close.shift(2)
simpleret2.name='simpleret2'
calret['simpleret2']=simpleret2
calret.head()

#查看1月9日的数据
calret.iloc[5,:]
ffn.to_returns()函数
#ffn包中的to_returns()函数可以用来计算简单收益率
import ffn
ffnSimpleret=ffn.to_returns(close)
ffnSimpleret.name='ffnSimpleret'
ffnSimpleret.head()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值