量价线性模型假设-基于Adaboost和线性回归弱分类器

     前两篇的文章中我演示了如何进行预测,但是预测的准确率一直停留在50%上下,好一点的有60%,IR就不用说了,有多有少,可操作性比较差。今天从另一个角度解释一下为什么这么难预测。先从一个有趣的题目来入手:任意打开一张图表,将价格走势图删掉一部分,但是不要删成交量的走势图,问题是,你能够根据下面的量猜出股价的走势吗?如果可以,你能以多大的概率猜准。 带着这个问题,我们进行如下的实验。为了方便叙述,价格我们用P来表示,成交量我们用V来表示


1.首先下载我们的源程序,然后在LinearRegression.cpp中选择线性拟合而不是线性分类,代码注释打开

2.使用成交量均量ma(vol,n)作为训练输入的X,这里n取1-21,使用涨跌幅作为输出Y,再输出一个Y作为我们的统计方便,这里直接给出数据生成公式

v1000:vol/1000;
vma1:ma(v1000,1);
vma2:ma(v1000,2);
vma3:ma(v1000,3);
vma4:ma(v1000,4);
vma5:ma(v1000,5);
vma6:ma(v1000,6);
vma7:ma(v1000,7);
vma8:ma(v1000,8);
vma9:ma(v1000,9);
vma10:ma(v1000,10);
vma11:ma(v1000,11);
vma12:ma(v1000,12);
vma13:ma(v1000,13);
vma14:ma(v1000,14);
vma15:ma(v1000,15);
vma16:ma(v1000,16);
vma17:ma(v1000,17);
vma18:ma(v1000,18);
vma19:ma(v1000,19);
vma20:ma(v1000,20);
vma21:ma(v1000,21);
RES:(c-ref(c,5))/ref(c,5);
ratesss:(c-ref(c,5))/ref(c,5);


3.编译并执行程序,我随便选择了一只取了数据,结果如下:

MODEL0: [20160707] [ OK  ]  BLF:  69.39    POINT=   0.14    IR0=   3.19
MODEL0: [20160708] [ OK  ]  BLF:  93.77    POINT=   0.15    IR0=   3.34
MODEL0: [20160711] [ OK  ]  BLF:  53.64    POINT=   0.10    IR0=   3.44
MODEL0: [20160712] [ OK  ]  BLF:  31.71    POINT=   0.03    IR0=   3.47
MODEL0: [20160713] [ OK  ]  BLF:   7.47    POINT=   0.06    IR0=   3.53
MODEL0: [20160726] [ OK  ]  BLF:  28.46    POINT=   0.07    IR0=   3.60
MODEL0: [20160727] [ OK  ]  BLF:  46.92    POINT=   0.06    IR0=   3.66
MODEL0: [20160728] [ OK  ]  BLF:  34.22    POINT=   0.09    IR0=   3.75
MODEL0: [20160729] [ OK  ]  BLF:  75.80    POINT=   0.12    IR0=   3.87
MODEL0: [20160801] [ OK  ]  BLF:  31.85    POINT=   0.09    IR0=   3.96
MODEL0: [20160802] [ OK  ]  BLF:   9.16    POINT=   0.04    IR0=   4.00
MODEL0: [20160804] [ OK  ]  BLF:   4.44    POINT=   0.00    IR0=   4.00


MODEL0: IR0=3.998000 ACCURACY=0.692308 SUMIRP=9.839000

MODEL1: IR1=-4.109000 ACCURACY=0.628931 SUMIRN=-9.950000

SUMIR:-0.111000


可见V和P存在一定的相关性,并且是线性的,但是又不完全准确,再看一下训练的精度

calculate trained model:E0=0.3154  E1=0.2875

这里我只迭代了100次,读者可以迭代更多次观察收敛的精度,不过大概也就是这个精度了。


细心的读者可能已经察觉到了,我们的训练数据含有未来V的数据,这才是我接下来要讨论的重点:V是如何影响P的。


我们的模型假设是Y=WX+B,我们有n多个弱学习器,最后线性组合,那么可以得出最终的分类器的形势应该是Y=W'X+B'


接着我们对这个最终的分类器进行展开,根据MA(V,n)的计算方法,我们最终一定可以得到一个等式


K0*V0+K1*V1..............................+Kn*Vn + d=S,   S是输出符号,d是拮据,这里提一下我们的编号,按照时序,发生的顺序,我们逆序编号

V21,v20................................v5,v4,v3,v2,v0 

我们还可以精简上述等式,即K0V0+........K5V5 + M = S,  这里M根据每天不同是个常量,可见预测期的输出符号和成交量是线性关系,这也符合我们的假设。


对于模型的解释,我们的预测准确率大概在70%左右,高一点的可以达到80%,在线性模型下,这个准确率是很高的,那么我们的市场是不是线性的呢?

可见P涨V曾 P跌V缩发生的频率占据了70%左右的概率,那么就是说,上涨大概率上需要量的配合,无量的上涨是值得怀疑的。放量的下跌也是值得注意的。







猜你喜欢

转载自blog.csdn.net/mtaxot/article/details/52150152