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