从大盘数据看A股是否为政策市

来源:互联网 发布:专业软件开发 编辑:程序博客网 时间:2024/04/30 06:11

我国股市一向有“政策市”、“消息市”的美誉。A股小道消息满天飞,各种概念层出不穷,只要站在消息、概念的台风口,落汤鸡也能变成金凤凰,即使是ST股也能连续拉升30多个涨停,还不带喘气的。如果我们能够在大盘趋势图或者个股趋势图上,标注出这些消息,来个众山一览小,是否能有助于我们把握大趋势,喝少少肉汤昵?

        证监会对于“政策市”的说法予以断然否认,称这只是与当前我国资本市场结构还不够合理、优化资源配置的功能没有充分发挥、市场约束机制不强、市场运行的体制和机制还存在一些问题有关。但股市的涨跌经常与政府出台政策相关联,因此,很多投资者会形成“证监会对股市涨跌负责”的印象。中国证监会指出,“股市有其内在的运行规律。作为监管部门,证监会的职责是维护市场公开、公平、公正原则,建立良好的竞争秩序。除了人民利益、国家利益、广大投资者的利益之外,证监会没有任何自己的利益。”

  事实上A股的部分涨跌情况也能证明前述情况,比如国有股减持、股权分置改革等,都曾引发市场的大涨或大跌。

  但A股市场也有不少政策失效的例子,比如证券交易印花税的调整,牛市提高印花税未能起到降温的作用,而熊市降低印花税也未能刺激股市上涨。

       那么A股到底是否为政策市?在通常情况下,股市调控传说中的有几大神器有:①宏观调控;②证券交易印花税;③存贷款利率以及存款准备金率。

       首先从宏观调控政策来看,如图1. 宏观调控政策对于A股的影响所示,1999年7月2日《证券法》实施,有了近两年的牛市表现,A股上证指数近乎翻了一倍还多;但从2001年7月26日以来,国有股开始减持,A股进入了三年半的漫漫熊途,达到历史最低点998.23点;2005年4月29日,股权分置改革正式拉开帷幕,开启了近两年半的牛气冲天,更是在2007年10月19日达到历史最高点6124.04点;2008年1年10日,次贷危机爆发,A股也未能独善其身,至今仍笼罩在其阴影中,楚楚可怜;2010年3月31日,试点融资融券,A股第一次引入了卖空机制,在次贷危机后稍有起色的股市应声而落,至今仍未能恢复元气。

图1. 宏观调控政策对于A股的影响 

         其次从股票交易印花税的历次调整来看,如图2. 证券交易印花税对历次调整对A股的影响,牛市提高印花税未能起到降温的作用,而熊市降低印花税也未能刺激股市上涨。但传说中的919行情又该怎么解读昵?2008919日,印花税调整为单边征收,A股大盘涨9.45%,近乎涨停!并从此又开始了一年多的小牛行情。

3.png

      对于存贷款利率以及存款准备金率的历次调整,或者我没有提到的传说中的股市调控神器,也可以采用上述方法,很形象的将调整时间在A股大盘上标注出来,从此一图在手,A股我有。由此,对证监会的“A股不是政策市”的表态,我们深表遗憾,并保留进一步数据分析的权力!

      那么分析A股神器的工具是什么昵?请看大屏幕!那就是大名鼎鼎的金融工具分析包quantmod,R中的战斗机!以及图形包ggplot2,R中的太极剑,招无定式、潜力无穷同时又容易学习!

分析A股大盘,标注关键事件,只需要做两件事:

1、收集关键事件,并整理到文本文件中,文件名称在这里命名为stock1.txt,结构如下:

date    keyevent
1999-07-02    证券法实施
2001-07-26    国有股减持
2005-04-29    股权分置改革
2008-01-10    次贷危机爆发
2010-03-31    融资融券试点


2、执行如下R代码:

stocktools<-function(datafile) {
    getSymbols('^SSEC',src='yahoo',from = '1997-01-01') 
    close <- (Cl(SSEC)) 
    time <- index(close) 
    value <- as.vector(close) 
    yrng <- range(value) 
    xrng <- range(time) 
    data <- data.frame(start=as.Date(c('1997-01-01','2003-01-01')),end=as.Date(c('2002-12-30','2012-09-21')),core=c('jiang','hu')) 
    stockevent=read.table(datafile,header=TRUE)
    stockevent2=stockevent[order(stockevent[,1]),]
    timepoint<-as.Date(stockevent2$date)

    n=length(timepoint)
    for ( xx in 1:n) {
    if (weekdays(timepoint[xx])=="星期六") timepoint[xx]<-timepoint[xx]-1
    else if (weekdays(timepoint[xx])=="星期日") timepoint[xx]<-timepoint[xx]-2

    timepoint[timepoint==as.Date('2008-09-15')]<-timepoint[xx]+1
    }

    #for (i in 1:n){print(value[time %in% timepoint])}

    events<-stockevent2$keyevent
    data2 <- data.frame(timepoint,events,stock=value[time %in% timepoint]) 

    p <- ggplot(data.frame(time,value),aes(time,value)) 
    p + geom_line(size=1,colour='turquoise4')+ 
    geom_rect(alpha=0.2,aes(NULL,NULL,xmin = start, xmax = end, fill = core),ymin = yrng[1],ymax=yrng[2],data = data)+ 
    scale_fill_manual(values = c('blue','red'))+ 
    geom_text(aes(timepoint, stock, label = events),data = data2,vjust = -2,size = 3)+ 
    geom_point(aes(timepoint, stock),data = data2,size = 5,colour = 'red',alpha=0.5) 
}

library(quantmod) 
library(ggplot2) 
stocktools('stock1.txt')


     另外还要注意,由于关键事件我们要与具体的A股点位对应,因此在代码中对于关键时间点做了处理,时间点是周末的,均将其前推到上个交易日。不过,对于农历的节假日还不支持,此类数据可以进行如下处理,执行如下代码:

for (i in 1:n){print(value[time %in% timepoint])}

如果某个时间未能取到正确的A股点位,那么该时间点不是A股的交易日,需要手工调整。

R代码中的关键技术如下:

1、  从网络获取股票数据

上证指数的符号是SSEC,获取上证指数的代码如下:

getSymbols("^SSEC")

上证指数的代码为000001.ss,其中.ss代表该指数从属于上交所:

getSymbols(“000001.ss”)

万科A股的代码为000002.sz,其中.sz代表该指数从属于深交所:

getSymbols(“000002.sz”)

提取收盘价:

Cl(x)

提取上交所A股上证指数自1997年1月1日的收盘价,数据源于yahoo,其代码如下:

       getSymbols('^SSEC',src='yahoo',from ='1997-01-01')

       close <- (Cl(SSEC))

2、  使用ggplot2绘制A股大盘折线图,同时在其上面标注关键事件:

ggplot 绘制散点图

geom_line 线段

geom_rect 绘制矩形区域

scale_fill_manual填充区域

geom_text 绘制文字描述

geom_point 点

详细用法可参照ggplot2相关文档,在此不在赘述。


用到的参考资料如下:
ggplot2 Elegant Graphics for Data Analysis (use R)
quantmod-R中的金融分析包

0 0