前后复权

看了篇前后复权的问答,链接如下
作者:邵洛克
链接:https://www.zhihu.com/question/31004373/answer/242862540

思考:股价对标的是单位股本的权益价值,所持权益价值=持股数量*单位股本的权益价值,所持权益价值本身应是一条连续的曲线,不复权图表上出现的缺口前后,所持权益价值并未发生改变,实际往往是缺口后持股数量↑,单位股本的权益价值↓。
前后复权_第1张图片
故前复权即以除权日的总股本数量为基准,对除权日以前的单位股本的权益价值进行修正,
后复权即以除权日之前的总股本数量为基准,对除权日以后的单位股本的权益价值进行修正。

知乎有人这样举例,你手里有1块钱,你爸说,这一块钱在我那时候,一分钱都不如。这是前复权。
你爷爷听到了,感慨的说,我那时候一块钱,到你们这时候,起码值100块。这是后复权。
你很无感,走出家门,踏上公交车,投币,一元。这是不复权。

给了我启发,货币政策中,货币投放就是比持币人权益的稀释,如果将手中持有的单位币值当做股价,我们就可以对它进行复权观察。
收集1978-2020年的M0数据,如下图所示。
前后复权_第2张图片

import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
sns.set_style()

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号


#读取data数据
df_data = pd.read_excel (r'./Desktop/货币供应量(1978.1-2020.3)_宏观数据_新浪财经.xlsx', sheet_name=0, header=2,index_col=None, na_values = [ 'NA' ])
mo=df_data.iloc[:,5]
time=df_data.统计时间

fig = plt.figure()
ax =plt.axes()
ax.xaxis.set_major_locator(ticker.MultipleLocator(5))
sns.lineplot(time,mo)
plt.savefig('hah.png',bbox_inches='tight',dpi=fig.dpi,pad_inches=0.0)
plt.show()

对数坐标下的K线图则是。
前后复权_第3张图片

# -*- coding: utf-8 -*-
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import matplotlib.ticker as ticker
import mpl_finance as mpf
import numpy as np
sns.set_style()

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

data=pd.read_csv(u'.n/Desktop/M0_data.csv',usecols=['date','open','close','high','low','volume'])
data[data['volume']==0]=np.nan


# 生成横轴的刻度名字
date_tickers=data.date.values

weekday_quotes=[tuple([i]+list(quote[1:])) for i,quote in enumerate(data.values)]
# print weekday_quotes

fig,ax=plt.subplots()
ax.invert_xaxis()
ax.set_yscale("log")
plt.xticks(rotation=30)
plt.xlabel(u'统计时间')
plt.ylabel(u'流通中现金(M0)(亿元)统计时间')


def format_date(x,pos=None):
    if x<0 or x>len(date_tickers)-1:
        return ''
    return date_tickers[int(x)]

ax.xaxis.set_major_locator(ticker.MultipleLocator(5))
ax.xaxis.set_major_formatter(ticker.FuncFormatter(format_date))
ax.grid(True)

# fig.autofmt_xdate()

mpf.candlestick_ochl(ax,weekday_quotes,colordown='#53c156', colorup='#ff1717',width=0.2)
plt.show()

如果将2019年1月作为基准年,假设货币总权益价值不变的条件下,对1万块单位货币进行前复权,我们可以看到在过去近40年间,与基准年单位货币实际权益相当的货币价格。到1978年大概对应币值是30块钱。
前后复权_第4张图片
然后再将1978年1月作为基准年,假设货币总权益价值不变的条件下,对1万块单位货币进行后复权,我们同样可以看到在过去近40年间,与基准年单位货币实际权益相当的货币价格。到2020年大概对应币值是350万。
前后复权_第5张图片

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