Python量化炒股的统计数据图
单只股票的收益统计图
查看单只股票的收盘价信息
单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境”命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python3文件,输入如下代码如下:
import pandas as pd
import seaborn as sns
df = get_price('002465.XSHE', start_date='2024-04-18', end_date='2024-04-26', frequency='daily', fields=['close'])
print(df)
首先导入Pandas包和Seaborn包,然后利用get_price()函数获取海格通信2024-04-18~2024-04-26的收盘价信息,最后显示出来。单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
利用pct_change()函数计算收益率情况
假如投资者在2024年4月26日收盘价买进海格通信,那么每天的收益率情况如何呢?要计算每天的收益率,需要使用Dataframe的pct_change()函数。该函数用来计算百分数变化,语法格式如下:
pct_change(periods=1, fill_method='pad', limit=None, **kwargs)
各参数意义如下:
periods:用来设置计算百分数变化的周期,默认为1,即计算当前元素与先前元素的相差百分比。
fill_method:用来设置填充空值的方法,默认为pad,即空值填充为NaN。
limit:用来设置默认值。
该函数的返回值是Series或Dataframe。
利用代码查看海格通信每天的收益率百分数变化,具体如下:
myr = df.pct_change()
print(myr)
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
由于这里pct_change()函数采用默认参数,所以计算的是每天的收益率百分数变化。需要注意的是,由于投资者在2024年4月18日以收盘价买进,所以这一天的收益是一个空值,默认填充为“NaN“。其后每个交易日的收益率百分数是如何计算的呢?(2024年4月19日的收盘价 - 2024年4月18日的收盘价)➗2024年4月18日的收盘价=(10.89-10.88)/10.89 = 0.0099999。
利用dropa()函数处理空值
在绘制收益统计图时,空值往往会导致绘制错误,所以在绘制之前,要进行处理。在这里利用dropna()函数来处理空值,即直接删除空值,具体代码如下:
myrs = df.dropna()
print(myr)
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
利用distplot()函数绘制收益统计图
distplot()函数时Seaborn包中的函数,绘制直方图。语法格式如下:
distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)
绘制海格通信每天的收益统计图,代码如下:
sns.distplot(myrs.iloc[:,0])
绘制收益统计图的数据是,所有行,列为第一列。
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
通过收益统计图,可以清楚的看到海格通信每天的收益率大数集中的范围。
编写代码,不显示直方图,只显示核密度估计,代码如下:
sns.distplot(myrs.iloc[:,0],hist=False,color='red')
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图:
编写代码,只显示直方图,不显示核密度估计,具体代码如下:
sns.distplot(myrs.iloc[:,0], kde=False, color='green')
单击工具栏运行按钮,快捷键(shift+enter),运行结果如下图: