ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【点宽专栏】SVM带你玩转期货品种

2020-12-31 16:58:12  阅读:187  来源: 互联网

标签:SVM 函数 回测 专栏 玩转 期货 优化 策略


图片

策略概要

SVM支持向量机

SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。

SVM支持向量机量化交易策略

根据MATLAB提供的机器学习SVM支持向量机系列工具包,根据预测标签0和1设计交易信号:信号为0表示做空;信号为1表示做多。在商品期货上,该SVM策略表现一般,在金融期货上,该策略表现各异。其中,在沪深股指上表现最好,年化收益率达24.65%,胜率达54.98%。

策略优化

仅仅使用SVM进行趋势预测得到的胜率或者收益都不是很理想,我们需要增加信号过滤条件来优化该策略,最简单的是增加双均线策略:当5日均线大于30日均线时,过滤做多信号;当5日均线小于30日均线时,过滤做空信号。对策略进行优化之后,策略回测表现有一定提高。其中,策略优化后在沪深股指上表现有:年化收益率为27.76%,胜率高达60%

策略研究

Logistic回归:一种广义线性回归模型

1.1 概念

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。

假设函数为:
在这里插入图片描述

其中x是n维特征向量,函数g就是logistic函数。则函数图像如下:

在这里插入图片描述
从而,当我们要判断一个新来的特征属于哪个类时,只需求h_θ (x)即可,若大于0.5,就是y=1的类,反之,属于y=0的类。

1.2 线性分类的一个例子

如下图:
在这里插入图片描述
在2维空间中找到一个分类超平面,将空间上的点分类。直线就是一个超平面,将不同类型的两种点分开。
在这里插入图片描述

超平面可以用分类函数f(x)=w^Tx+b表示:

当f(x)等于0的时候,x便是超平面上的点;

f(x)大于0的点对应y=1的数据点;

f(x)小于0的点对应y=-1的数据点。

而寻找最合适的超平面,就是使得这条直线离直线两边的数据的间隔最大 (虚线上的点称为支持向量)。

1.3 最大间隔分类器的定义

在这里插入图片描述

最大间隔分类器的目标函数可以定义为:max γ
根据间隔的定义有:
在这里插入图片描述

该目标函数可以转化为:
在这里插入图片描述

从线性可分到线性不可分

2.1 拉格朗日对偶性变换

对于之前的目标函数:
在这里插入图片描述

由于求1/ω 的最大值相当于求1/2|ω |^2的最小值,所以上述目标函数等价于:
在这里插入图片描述

这是一个凸二次规划问题。

可以通过拉格朗日对偶性变换到对偶变量的优化问题,即线性可分条件下支持向量机的对偶算法,这样做的优点是:一者对偶问题往往容易求解,二者可以自然的引入核函数,进而推广到非线性分类问题。

通过拉格朗日对偶性变换得到的目标函数为(若x_i是支持向量的话,红色部分为0):
在这里插入图片描述

2.2 特征空间的隐式映射:核函数

核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数的优点就是它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就是说避免了直接在高维空间中的复杂计算。
在这里插入图片描述

多项式核函数:
在这里插入图片描述

高斯核函数:
在这里插入图片描述

线性核函数:
在这里插入图片描述

SVM支持向量机

3.1 概念

支持向量机(support vector machine)是一种分类算法。它通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。

SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。

逻辑模式(logistic)以及决策树模式都是使用直线方法,SVM使用非线性方法。SVM结构流程图如下:
在这里插入图片描述

3.2 基于MATLAB的SVM交易策略

MATLAB函数:

SVMstruct=svmtrain(

trainData,

statesData,

‘kernel_function’,

‘rbf’

)

trainData:表示每行代表一个训练样本;

statesData:表示data中每个样本所属种类(只能有两个类);

‘kernel_function’:表示SVM的方法;

‘rbf’:表示’kernel_function’方法的具体实现。

y=svmclassify(

SVMstruct,

trainData(end-lags2+2:end,:)

)

y=1:上涨

y=0:下跌

SVM策略回测

4.1 回测设置

(1)品种设置:单品种交易。

(2)资金分配:固定手数,每次下单1手。

(3)回测时间:20150101- 20180101

(4)回测频率:60分钟

4.2 品种选择

点宽量化平台auto-trader(AT)是一个多品种量化交易平台,它支持期货标的品种交易。目前AT可以获取共48个商品期货品种,与国内市场上的商品期货数量吻合,这些商品期货分别是:上海期货交易所14种、大连商品交易所16种、郑州商品交易所18种。根据品种流动性,我们选择2017年成交量前10的商品期货进行回测。其流动性如下图所示:
在这里插入图片描述

如上图,成交量排名前10的有:螺纹钢、铁矿石、豆粕、甲醇、PTA、玉米、热轧卷板、天然橡胶、菜籽粕、镍。

而对于金融期货方面,中金所有5个品种的主力合约,分别为中证、沪深、上证、长债和国债。

4.3 策略信号

特征选择:以前一天的最高价、最低价收盘价为特征,预测当天的涨跌情况。

根据预测标签0和1设计交易信号:信号为0表示做空;信号为1表示做多。

4.4 回测结果

对前面选出的10个商品期货品种进行单品种回测,回测结果如下:
在这里插入图片描述

由表可知,总体来讲,该SVM策略在商品期货上表现都不理想。我们来看看SVM策略在金融期货上的表现。

对于金融期货,我们对5个金融期货主力合约进行单品种回测,回测结果如下:
在这里插入图片描述

由表可得,该SVM策略在金融期货表现各异,其中,在沪深股指上表现最好,年化收益率达24.65%,胜率达54.98%。

SVM在沪深股指(IF)回测的权益曲线如下:
在这里插入图片描述

策略优化

仅仅使用SVM进行趋势预测得到的胜率或者收益都不是很理想,我们需要增加信号过滤条件来优化该策略,最简单的是增加双均线策略。

双均线过滤信号如下:

1)当5日均线大于30日均线时,过滤做多信号。

2)当5日均线小于30日均线时,过滤做空信号。

回测结果如下

对于10个商品期货品种有:
在这里插入图片描述

对于5个金融期货品种有:
在这里插入图片描述

由上两表可得,对策略进行优化之后,策略回测表现有一定提高,但效果并不明显。

SVM优化后的沪深股指(IF)回测的权益曲线如下:
在这里插入图片描述

结论

1、该SVM策略在商品期货上表现一般,在金融期货上表现各异。

2、对策略进行优化时,增加双均线策略进行信号过滤,回测表现有一定提高。

3、该SVM的特征选择过于简单粗暴,并没有对更多特征进行统计分析和择优,这可能是策略表现不好的原因之一。

4、该SVM并没有进行参数优化操作,这也可能是该策略表现不好的原因之一。

5、SVM策略重点在于对特征的选择以及参数的优化步骤,而本文并没有对该步骤进行深入研究和统计分析。有兴趣的读者可以对这两步骤进行优化,或许会得到预想不到的结果呢!

标签:SVM,函数,回测,专栏,玩转,期货,优化,策略
来源: https://blog.csdn.net/Digquant/article/details/112027808

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有