我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

股票风向评估之前,需要先做两个准备工作:
一方面是抓取整理其中的几只数据,如下图所示:
我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

另一方面是需要将数据进行一次转换,即求得每个公司的每日股票变化情况(daily-return)。如下所示:

    #每日差距分析
    top_tech_dr = top_tech_df.pct_change()
    print top_tech_dr.head()

我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)
DataFrame结构的top_tech_dr变量就是我们准备的进行风险分析数据。

1、我们首先来看一下这两家公司的股票价格走势:

    top_tech_df.plot()
    plt.title(u"总体视图")
    plt.gcf().autofmt_xdate()  # 自动旋转日期标记
    plt.show()

其中,top_tech_df数据取自准备工作1的结果。效果图如下:
我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

从上图可以看出,goog的走势明显优于aapl,多只一起看可以进行梯队划分。

下面两只看着有点同梯队的感觉吧!
我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

2、我们可以通过散点图使用daily-return数据再次验证我们看出的这种现象:

我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

从上面的图可以看出,散点图相对于上图来说比较宽,如果我们从中画一条线的话,很明显是不经过原点的;可以多比较几家看看差异。比如相似度高的两家是啥情况呢,如下所示:
我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

3、使用seaborn库的pairplot()方法,从整体上看这2家公司的股票价格关系如下:

    sns.pairplot(top_tech_dr.dropna())
    plt.show()

我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)
另外两家:
我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

4、最后我们通过分位数的概念,来分析一下风险的情况。

    # 分位数,有95%的把握在这个区间里面,应用于风险评估
    print "quantile=" + str(top_tech_dr[comName[0]].quantile(0.05))

我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)
上图给quantile传入0.05,即我们有95%的信心对这只个股,我们买的话每天的亏损最大不超过2.5%。但是,这个值依赖于对周期的设定,比如1年、5年和10年的可能有所差异,仅供参考。

002238.SZ的分为数显示意思是说买的话每天的亏损最大不超过4.5%:
我的Python心路历程 第十期 (10.11 股票实战可视化风险评估操练)

以上仅供参考和练习之用途,请勿对号入座。

上一篇:indesign入门教程,如何在文档中添加交互性预览?


下一篇:Git进阶技巧------常用命令