支持向量机 |
作者:徐迅 发表时间:2023-03-22 阅读次数:362 |
1.SVM简介 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的线性分类器。二分类问题是指数据集中的数据点有两类,需要找到一个超平面将不同类的点划分到超平面的两侧。超平面是划分数据的决策边界。离这个超平面最近的点就是“支持向量”,这点到超平面的距离叫做间隔。SVM的目标就是最大化支持向量与超平面的间隔,可形式化为一个求解凸二次规划的问题。原始问题可以通过拉格朗日对偶性(Lagrange Duality)变换到对偶变量 (dual variable) 的优化问题,即通过求解与原问题等价的对偶问题(dual problem)得到原始问题的最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:第一,对偶问题往往更容易求解;第二,可以自然地引入核函数,进而推广到非线性分类问题。 2.SVM算法出发点 以二维空间为例,此时的超平面是一条直线。图中的四条线都能将两类点分开,但是红色实线和蓝色虚线与某类样本距离太近,如果测试数据有噪声的话很有可能出现错误,被划分到相反地一类中。 SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。如下图所示, 黑色实线为超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。 3.基于SVM模型的多头交易策略 3.1特征变量的选择 首先考虑基础行情指标:开盘价、最高价、最低价、收盘价、结算价、成交额、成交量和持仓量。对这八个变量使用主成分分析法进行特征降维,简化数据以提升分析的便利性。以方差贡献度超过99%作为主成分因子数量的选择标准,最终确定了三个指标:开盘价、最高价以及最低价。 3.2SVM多头交易策略流程 首先将最先30日的沪深300股指期货主力合约历史数据输入价格预测模型,将会所输出的结果来开展交易,如果其输出的结果是1,那么就意味着预测未来价格将上涨,若模型输出价格为-1,则表明预测未来价格将会下跌。得到交易信号后对目前的持仓状态进行判断,决定是否开仓或平仓。 详细的流程图如下所示: (1)在某一T日沪深300股指期货收盘之后,以目标日之前30个交易日的历史数据作为输入向量,输入SVM价格预测模型以对T+1日的价格涨跌进行分析预测,得到模型的输出结果y; (2)如果模型的输出结果y的值是1,则表明未来价格上涨。如果y值为-1,表明未来价格下跌,仅在y值输出1时进行开仓,作为多头信号。 (3)在得到多头交易信号后,开仓并记录当前的开仓价格和持仓量后续持续关注合约价格,等待价格达到合适位置。设置5%的止盈和2%止损率。 (4)当价格达到止盈或止损率时,以当日价格平仓,并重新关注预测结果y,等待y输出值为1时,进行新一轮开仓。 交易策略的详细流程如图所示: 3.3回测结果 采用沪深300股指期货的主力合约IF2112自2010年4月至2021年11月的历史数据进行回测。利用SVM价格预测模型输出相应的交易信号,按照上文的交易策略进行交易,最后分析策略的回测表现。 上图是基于基础行情指标的支持向量机多头交易回测图结果。可以发现,在此过程中,采用该策略完成了的交易共计285次,其中胜手115次,败手次数170次,综合胜率40.35%。整阶段盈利总额约为6080万元。其总收益率达到了202.67%,经过分析可知具有11.71%的年化收益率,此外该策略的总体回撤率为27.5% 参考文献: [1]丁雨青. 基于GA-SVM模型的股指期货交易策略研究[D].东华大学,2022.DOI:10.27012/d.cnki.gdhuu.2022.001563. |