程序员学炒股(2) 个股和大盘的关系

     买股票最先要看大盘,不过这大盘和个股之间的关联度到底有多大呢?这个问题值得考虑考虑。大家也都知道牛市的时候,所有的股票都上涨,买啥都赚钱,熊市的时候,几乎所有股票都下跌,不过到底哪些股票和大盘的关联性更强呢?很多人都说指数是可以造假的,到底指数能不能代表股市的总体趋势呢?这个问题肯定难不倒我们程序员,毕竟我们都是受过高等教育,学过概率论和数理统计的。我们先回顾一下,内容复制自山东    胡大波的《线性回归中的相关系数》一文。

对于我们来说,接下来就要计算各个股票和大盘的相关性了,按照这上面的说明,如果超过0.75则相关性很强。

不过在计算的时候,我们股票的数据需要修正一番,主要如下:

1) 股票需要考虑除权除息日的影响,因为我们计算的数据足够多,而在Daydata表中,除权除息日的股票名称都加了XD,我们很容易辨识,只要把这些数据剔除就可以了

2) 股票停牌的影响,在大盘剧烈波动的时候,很多股票停盘自救,而复盘以后,很可能会补涨或补跌,而股票每天的涨跌幅只有±10%,因此可能需要多日补涨或补跌,而这个天数如何确定。我自己观察了一下,为了简单起见,我个人认为统一按照停牌后前5天有影响,过了5天就没有影响了计算。

所需的理论知识都具备了,那剩下来就是计算了,大家看到这么复杂的公式,肯定头昏眼花了,不过好在第一我们有库,叫做Math.Net,API点击这里,第二我们有Excel,Excel有个函数CORREL,可以直接计算两个数列的相关性,说明点击这里

为了方便,我们先把数据复制到Excel中操作,在下一节中,再计算各个股票和各个指数的相关性。

获得数据对于我们来说很容易,一个SQL 语句就出来了,我们就先计算中石油和上证指数的关系吧,SQL语句如下:

select a.日期,a.涨跌幅 中石油涨跌,b.涨跌幅 大盘涨跌 from 
(
select 日期,涨跌幅 from dbo.DayData
where 股票代码='601857' AND 股票名称 not like 'XD%') a,
(select 日期,涨跌幅 from StockIndex 
where 股票代码='000001' ) b WHERE a.日期=b.日期

得到数据如下:

  代入EXCEL,直接用CORREL,得到相关系数为0.63,那看看工商银行呢,得到相关系数为0.65。可见大盘和个股关系还是比较大的。但是大盘和谁的关系更紧密一些呢?这个我们下一节再说。

 

posted @   小钊^^  阅读(1334)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示