數據分析
維度初步整理好以後,可以嘗試用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個交易日止損。