前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是股票的收益率

什么是股票的收益率

作者头像
润森
发布2019-10-30 14:47:23
4080
发布2019-10-30 14:47:23
举报
文章被收录于专栏:毛利学Python

学习一时爽,一直学习一直爽,学完再复习下更爽

Hello,大家好,我是 もうり,一个从无到有的技术+语言小白

学完再复习下更爽

什么是股票的收益率

股票收益率是反映股票收益水平的指标。投资者购买股票或债券最关心的是能获得多少收益,衡量一项证券投资收益大小以收益率来表示。反映股票收益率的高低,一般有三个指标

  • 本期股利收益率。是以现行价格购买股票的预期收益率。
  • 持有期收益率。股票没有到期,投资者持有股票的时间有长有短,股票在持有期间的收益率为持有期收益率。
  • 折股后的持有期收益率。股份公司进行折股后,出现股份增加和股价下降的情况。
因此,折股后股票的价格必须调整,所以计算股票的收益率对于金融来说,非常的重要
代码语言:javascript
复制
# 案例使用微软的股票
import numpy as np
from pandas_datareader import data as wb
import pandas as pd
代码语言:javascript
复制
MSFT = wb.DataReader('MSFT', data_source='iex', start='2015-1-1')#使用iex接口
# 微软
MSFT.head()

open

high

low

close

volume

date

2015-01-02

42.3280

43.0174

42.2191

42.4187

27913852

2015-01-05

42.0649

42.3915

41.9560

42.0241

39673865

2015-01-06

42.0740

42.4087

41.3120

41.4118

36447854

2015-01-07

41.7111

42.1466

41.2666

41.9379

29114061

2015-01-08

42.4096

43.3167

42.3824

43.1716

29645202

代码语言:javascript
复制
MSFT.head()

open

high

low

close

volume

date

2015-01-02

42.3280

43.0174

42.2191

42.4187

27913852

2015-01-05

42.0649

42.3915

41.9560

42.0241

39673865

2015-01-06

42.0740

42.4087

41.3120

41.4118

36447854

2015-01-07

41.7111

42.1466

41.2666

41.9379

29114061

2015-01-08

42.4096

43.3167

42.3824

43.1716

29645202

代码语言:javascript
复制
MSFT.tail()

open

high

low

close

volume

date

2019-05-03

127.36

129.43

127.25

128.90

24911126

2019-05-06

126.39

128.56

126.11

128.15

24239464

2019-05-07

126.46

127.18

124.22

125.52

36017661

2019-05-08

125.44

126.37

124.75

125.51

28418996

2019-05-09

124.29

125.79

123.57

125.50

27235835

计算证券的收益率

简单收益率

用上一天的收盘价减去今天的收盘价在除以上一天的收盘价

代码语言:javascript
复制
MSFT['simple_return'] = (MSFT['close'] / MSFT['close'].shift(1)) - 1
MSFT.head()

open

high

low

close

volume

simple_return

date

2015-01-02

42.3280

43.0174

42.2191

42.4187

27913852

NaN

2015-01-05

42.0649

42.3915

41.9560

42.0241

39673865

-0.009303

2015-01-06

42.0740

42.4087

41.3120

41.4118

36447854

-0.014570

2015-01-07

41.7111

42.1466

41.2666

41.9379

29114061

0.012704

2015-01-08

42.4096

43.3167

42.3824

43.1716

29645202

0.029417

代码语言:javascript
复制
import matplotlib.pyplot as plt
MSFT['simple_return'].plot(figsize=(8, 5))
plt.show()

在这里插入图片描述

代码语言:javascript
复制
# 平均收益率
sim_return_d = MSFT['simple_return'].mean()
sim_return_d
代码语言:javascript
复制
0.0011047908541084086
代码语言:javascript
复制
# 对于一天的平均收益率小太的 来计算一年的
# 一年有大约250交易日,去除周末和节假日
sim_return_y = MSFT['log_return'].mean() * 250
print (str(round(sim_return_y, 5) * 100) + ' %')
代码语言:javascript
复制
24.788 %
也就是买微软的股票一年可以获利本金的24.788%
对数收益率(除了简单收益率,还有对数收益率)
代码语言:javascript
复制
MSFT['log_return'] = np.log(MSFT['close'] / MSFT['close'].shift(1))
MSFT.head()

open

high

low

close

volume

simple_return

log_return

date

2015-01-02

42.3280

43.0174

42.2191

42.4187

27913852

NaN

NaN

2015-01-05

42.0649

42.3915

41.9560

42.0241

39673865

-0.009303

-0.009346

2015-01-06

42.0740

42.4087

41.3120

41.4118

36447854

-0.014570

-0.014677

2015-01-07

41.7111

42.1466

41.2666

41.9379

29114061

0.012704

0.012624

2015-01-08

42.4096

43.3167

42.3824

43.1716

29645202

0.029417

0.028993

代码语言:javascript
复制
MSFT['log_return'].plot(figsize=(8, 5))
plt.show()

在这里插入图片描述

代码语言:javascript
复制
log_return_d = MSFT['log_return'].mean()
log_return_d
代码语言:javascript
复制
0.0009915141278122766
代码语言:javascript
复制
log_return_y = MSFT['log_return'].mean() * 250
log_return_y
代码语言:javascript
复制
0.24787853195306914
代码语言:javascript
复制
print (str(round(log_return_y, 5) * 100) + ' %')
代码语言:javascript
复制
24.788 %

有时这两个收益率比较的接近

对于大多数人不可能只买一只股票,下面来计算多支股票

代码语言:javascript
复制
# 英国石油公司(BP) 福特汽车公司(F) 埃克森美孚公司(XOM) 有限责任公司(LNC)苹果(AAPL)
tickers = ['BP', 'F', 'XOM', 'LNC', 'AAPL']
mydata = pd.DataFrame()
for t in tickers:
    mydata[t] = wb.DataReader(t, data_source='iex', start='2015-1-1')['close']
代码语言:javascript
复制
mydata.head()

BP

F

XOM

LNC

AAPL

date

2015-01-02

29.0451

11.7974

77.6966

52.6303

101.1385

2015-01-05

27.5060

11.3366

75.5707

51.0080

98.2893

2015-01-06

27.3003

11.2291

75.1689

49.3764

98.2985

2015-01-07

27.3688

11.5517

75.9306

50.0639

99.6769

2015-01-08

27.9860

11.8435

77.1944

51.2138

103.5067

代码语言:javascript
复制
mydata.iloc[0]
代码语言:javascript
复制
BP       29.0451
F        11.7974
XOM      77.6966
LNC      52.6303
AAPL    101.1385
Name: 2015-01-02, dtype: float64

由于第一行完全不一样,对于有经验的人会将第一行全部变为同一个数

mydata / mydata.iloc[0] * 100 将所有数据除以第一个数据乘以100

代码语言:javascript
复制
(mydata / mydata.iloc[0] * 100).plot(figsize = (15, 6));
plt.show()

个人觉得波动挺大的,果然股票有风险 苹果在2018下半年股票暴跌

投资需谨慎

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是股票的收益率
  • 计算证券的收益率
  • 有时这两个收益率比较的接近
  • 投资需谨慎
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档