本实证数据以上证指数为实验对象,选择1999年1月27日至2009年10月14日共2581个交易日的历史数据进行实验。对这些数据进行预处理和反转点定义,对于第i天的交易数据,可以得到如下向量:xl:xil, xi2, xi3。xt:xti,xt2, xt3,分别表示该天是否为真实反转点、是否被MACD指标判断为反转点、是否被KDJ指标判断为反转点、是否被RSI指标判断为反转点。如果是反转点,则对应向量值为1,否则为0。
如果某一天的向量为xƒ:xƒl,xƒ2, xƒ3,若Xƒ1+xƒ2+xƒ3>0,则至少有一个技术指标表示该天为反转点。将所有具有该性质的向量抽取出来以供SVM训练和预测,共提取出284条向量。
将这284条向量中的212条作为训练集,72条作为测试集,使用Libsvm进行训练和测试。在对训练集进行交叉验证和网格搜索后,得到最佳的(C,γ)参数对为(2 -1,2 -1),并使用该参数对在测试集上测试,得到SVM预测值。
可以很容易地算得使用单一技术指标(MACD, KDJ,RSI),以及用SVM对这3个技术指标组合向量进行反转点预测实验的召回率(Recall Rate)、准确率(Precision Rate)和F-Measure,这3个衡量指标的计算公式如下:
其中,α表示该天是真实反转点,且被指标判断为反转点的样本天数总和;b表示该天被指标判断为反转点,但不是真实反转点的样本天数总和;c表示该天是真实反转点,但是没有被指标判断为反转点的样本天数总和。实验结果如表13-4所示。
表13-4 SVM趋势拐点预测结果
从实验结果可以看到,使用SVM进行反转点预测,较单一使用MACD, KDJ,RSI技术指标,召回率分别提高了35.42%, 43.75%, 22.91%;准确率分别提高了3.79%, 5.91%, 8.39%; F-Measure分别提高了20.82%, 27.57%, 15.22%。这说明使用SVM进行反转点预测较单一指标能够识别更多的反转点,并会对这些反转点给出较高的判断结论,以便于投资者进行投资决策。