数据分析
维度初步整理好以后,可以尝试用R去做一些相关性分析,不过效果太差,因为实际情况中,线性回归的效果是很差的。
这里我定义了1个CHANCE的列(Factor),当买入天数(BuyRK)和卖出天数(SellRK)都存在时,则机会为1,否则为0。
当然,这是一个分类的问题,也就少不了用SVM和朴素贝叶斯尝试去做分类,不过效果都非常差(无法整体分类),所以都不展示了。如果第一篇所述,这里选择决策树来分析。
针对1万多条数据,统计的基本情况如下:
>round(prop.table(summary(dzjy$CHANCE)),3)
0 1
0.792 0.208
可以看到,只有21%的大宗交易是有机会的。之前看到有人分析,说大宗交易对于股价的影响为0(涨跌概率50%),这点算是符合的。机会远小于风险(指从逻辑上无法解释,不会产生机会的情况),其中有几类风险是要规避的:
1. 交易量不能超过流通股本的百分之二,这是因为这种行为不太可能是短期的,不符合假设;
2. 距离上一次大宗交易超过5个交易日,因为超频繁的大宗交易不符合假设;
3. 不存在同席位交易,同席位意味着大概率上是自导自演;
4. 近3日波动幅度低于15%,因为中间出现某只股票连续涨/跌停。
在过滤掉以上数据后,得到如下结果:
(b=rpart(CHANCE~Discount+BuyerCount+SellerCount+TradeToSelf+VolumeToCapital+LastDZJYDays+ClosedDays+ZSCloseToMA20+ZSCloseToMA5+CloseToMA20+CloseToMA5+FluctRange3, data=dzjy))
n= 3355
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 3355 736 0 (0.7806259 0.2193741) *
虽然有机会的概率只提高了1%,但去掉那些数据毫无疑问是必需的。
再来查看折扣率(存在2.17是因为复权),波动幅度等数据:
summary(dzjy$Discount)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.181000 -0.074000 -0.011000 0.004642 0.001500 2.172000
summary(dzjy$FluctRange3)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00470 0.03430 0.04990 0.05634 0.07220 0.14980
对这部分数据尝试用决策树求解,找到这样的叶节点:当折扣率介于 [-4%, 0.0%],3日内波动幅度>=3%,交易量占流通股本的比例超过0.013%,指数在其20日线之下11%时(大盘超跌):
rpart(CHANCE~Discount+BuyerCount+SellerCount+TradeToSelf+VolumeToCapital+LastDZJYDays+ClosedDays+ZSCloseToMA20+ZSCloseToMA5+CloseToMA20+CloseToMA5+FluctRange3, data=dzjy[ind1, ])
n= 12
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 12 1 1 (0.08333333 0.91666667) *
查看具体是哪几天:
> unique(dzjy[ind1, ]$TradeDate)
[1] "2017-04-25" "2017-11-03" "2017-12-11" "2017-11-30" "2017-10-19" "2017-04-20" "2017-05-09"
[8] "2017-05-26" "2017-06-01" "2017-06-06" "2017-11-29"
同样,按照这种方法,也找到另一些数据集,如:
rpart(CHANCE~Discount+BuyerCount+SellerCount+TradeToSelf+VolumeToCapital+LastDZJYDays+ClosedDays+ZSCloseToMA20+ZSCloseToMA5+CloseToMA20+CloseToMA5+FluctRange3, data=dzjy2)
n= 95
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 95 13 1 (0.13684211 0.86315789)
2) ZSCloseToMA20< 0.0015 42 9 1 (0.21428571 0.78571429)
4) ZSCloseToMA5>=-0.0033 25 8 1 (0.32000000 0.68000000)
8) VolumeToCapital>=0.00055 7 3 0 (0.57142857 0.42857143) *
9) VolumeToCapital< 0.00055 18 4 1 (0.22222222 0.77777778) *
5) ZSCloseToMA5< -0.0033 17 1 1 (0.05882353 0.94117647) *
3) ZSCloseToMA20>=0.0015 53 4 1 (0.07547170 0.92452830) *
综合几种情况后,就得到一些较高成功率的筛选规则,剩下的就是止损点的计算了,这是一个反复尝试的过程,估计出止损点是-7%,在买入后第5个交易日止损。