Python画图实战之画沪深300的收益率

        对于广大股民来说,看图是最直观的,尤其是大家很关心的什么时候进场和离场,也就是常说的牛市和熊市什么时候来到,好提前做准备,那就需要用到一个指标:股债利差,这个指标也是所有基金公司都特别关注的重要指标,股债利差简单来说就是沪深300的收益率 - 十年国债的收益率,或者中证500也行,如果利差越大说明买股票的收益很高,那就可以进场买股票,利差越小,说明买国债更安全一点。【股市有风险,投资需谨慎】

由于国债的收益率比较稳定,基本在3%左右,所以我就直接画沪深300的收益率即可观察出哪些年是牛市与熊市了。其中需要说明的是收益率怎么计算,一般都使用对数收益率:LN(收盘价)-LN(上一次的收盘价) 或者 LN(收盘价/上一次的收盘价)

log_{e}(ClosePrice)-log_{e}(PreClosePrice)

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

data=pd.read_csv('399300.csv',encoding='gb2312')
data.rename(columns={'日期':'Date','开盘价':'Open','最高价':'High','最低价':'Low','收盘价':'Close','成交量':'Volume'},inplace=True)#把中文改英文
data=data[['Date','Close']]
data.sort_values(by=['Date'],inplace=True)#日期升序排序
date=data['Date']
date=list(map(lambda x1:x1.replace('/',''),date))
close=data['Close']

x=np.array(date)
y=np.array(np.log(close).shift(-1)-np.log(close))

plt.rcParams['font.family']=['STFangsong']
plt.rcParams['axes.unicode_minus'] = False
plt.title('Exponential Function(沪深300的收益率)')
bins=np.linspace(int(date[0]),int(date[999]),10)
plt.xticks(bins)
plt.plot(x,y,color='red')
plt.show()

Python画图实战之画沪深300的收益率_第1张图片

其中399300.csv是沪深300的历史数据,可以在网易财经免费下载 

沪深300http://quotes.money.163.com/trade/lsjysj_zhishu_399300.html

关于画图我的其余两篇文章,有兴趣的伙伴们可以看看

Python画图(直方图、多张子图、二维图形、三维图形以及图中图)https://blog.csdn.net/weixin_41896770/article/details/119798960https://blog.csdn.net/weixin_41896770/article/details/119798960

Python画图实战之画K线图【附带自动下载股票数据】https://blog.csdn.net/weixin_41896770/article/details/120634612https://blog.csdn.net/weixin_41896770/article/details/120634612

最后关于代码,map函数顺带讲解下

list(map(lambda x1:x1.replace('/',''),date))

因为日期中含有-或/,需要删除掉,那么直接替换肯定不行,date不是字符串型的,所以不能使用replace,那直接转换成字符串型呢,那也不好,转成字符串替换之后还需要转换成原来的数据类型,所以最好就是使用map函数,可以映射替换掉里面的每一行数据,其中的匿名函数也可以是自定义函数,我喜欢这样写,简洁! 

你可能感兴趣的:(Python,python)