期货多因子策略开发 期货多因子策略开发研究
【点宽专栏】期货多因子(二)——各因子描述
一、报告简介
上期我们对于期货多因子的逻辑和用途进行了小结,我们构建期货多因子是为了刻画期货的特征,从而用于机器学习。上期我们探究了动量因子,本篇报告将把更多的因子特征呈现出来。
二、因子研究方法
上期我们对于因子溢价构建方法进行了简介,本文采用同样方法,每天换仓,构建因子多空誉戚组合。对于多空组合收益率,我们采用总收益、年化收益、年化波动、夏普比率、最大回撤、收益回撤比、Hurst指数、5,10,20,60,120日方差比率检验来庆弯陵衡量。
其中,Hurst指数(见中信建投Hurst报告)以及方差比率检验(Lo, MacKinley(1988)文章)是用于刻画因子是否具有趋势性。如果闹伏因子不是随机游走,具备短期趋势,那么我们可以根据这些特征来预测未来商品指数强弱,择时构建溢价。
因子溢价构建
function [p1,p2]= factorPremium(factorMat,retMat,order)
%%参数说明
% factorMat:因子矩阵
% retMat:收益率矩阵
% order:true/false,正序或反序
%返还30%多空和50%多空
%%
[tradeDate,~]= size(retMat);
p1= nan(tradeDate,1);
p2= nan(tradeDate,1);
for i=1:tradeDate
factor= factorMat(i,:);
ret= retMat(i,:);
d= quantile(factor,0.3);
u= quantile(factor,0.7);
short = mean(ret((factor<=d)&(~isnan(factor))));
long = mean(ret((factor>=u)&(~isnan(factor))));
if order
p1(i,1)
= long-short;
else
p1(i,1)= short-long;
end;
d= quantile(factor,0.5);
u= quantile(factor,0.5);
short = mean(ret((factor<=d)&(~isnan(factor))));
long = mean(ret((factor>=u)&(~isnan(factor))));
if order
p2(i,1)
= long-short;
else
p2(i,1)= short-long;
end
end
p1= ret2tick(p1);
p2= ret2tick(p2);
figure
plot([p1,p2])
legend('3-7','5-5')
xlim([1,tradeDate])
end
因子评价
function record= factorEvaluation(retIndex)
record= zeros(1,10);
n= length(retIndex);
retPer= tick2ret(retIndex);
record(1)= retIndex(end)-1;%总收益
record(2)= retIndex(end)^(252/n)-1;%年化收益
record(3)= std(retPer)*sqrt(252);%年化波动
record(4)= record(2)/record(3);%年化夏普
record(5)= mdd(retIndex);%最大回撤
record(6)= record(2)/record(5);%收益最大回撤比
mid= HurstCompute(retPer(2:end));% Hust指数
record(7)= mid(1);
[~,~,record(8)]= vrt_full(tick2ret(retIndex),5);%方差比率检验5日
[~,~,record(9)]= vrt_full(tick2ret(retIndex),10);%方差比率检验10日
[~,~,record(10)]= vrt_full(tick2ret(retIndex),20);%方差比率检验20日
[~,~,record(11)]= vrt_full(tick2ret(retIndex),60);%方差比率检验60日
[~,~,record(12)]= vrt_full(tick2ret(retIndex),120);%方差比率检验120日
end
三、各类因子评价
(1)动量因子
这里动量因子是衡量现在价格与均线价格偏离程度,即商品趋势性衡量,上期报告已有较为充分的描述,公式为:
图1:20日趋势动量因子
(2)时间序列动量因子
时间序列动量因子与动量因子稍有区别,为过去N日商品总收益率,其衡量的是总趋势性,而非短期偏离均线的趋势,运用也较多。当某些技术指标被广泛接受时,会产生自我实现的预期。表现较好的时间序列动量因子有60日和120日。
图2:60日时间序列动量因子
图3:120日时间序列动量因子
( 3)偏度因子
偏度因子能够衡量商品期货的强弱程度,因为大单拉动趋势,小单反向操作时,会产生较高的偏度,因此偏度能够较好的捕捉人们交易行为,此外,偏度因子还代表着商品期货的博彩性质,偏度大的商品期货吸引更多资金前来对赌。我们采用的是过去N日收益率偏度来衡量,其中表现较好的为10日、20日、60日偏度因子。
图4:10日偏度因子
图5:20日偏度因子
图6:60日偏度因子
(4)其他因子
我们还总结了其他一些因子,包括流动性因子、资金流向因子、振幅因子、基差因子。
图7:流动性因子
图8:资金流向因子
图9:振幅因子
图10:基差因子
四、综合评价
下面是各因子溢价的表现,同时我们还用Hurst指数和方差比率检验的t值来衡量因子趋势的筛检情况。大部分因子的短期趋势都较为明显,如果小资金操作,可以考虑每5天或者10天就重新学习一下特征,构建组合,从而降低回撤。
表1:各因子表现汇总
表2:因子趋势性衰减与Hurst指数
量化交易策略有哪些
一、交易策略
一个完整的交易策略一般包括交易标的的选择,进出场时机的选择,仓位和资金管理等几个方面。
按照人的主观决断和计算机算法执行在策略各方面的决策中的参与程度的不同,可以将交易策略分为主观策略和量化策略。
二、主观策略
主观策略主要依靠投资者的主观判断。
期货市场的投资者通过对产业上中下游、供需、宏观经济预期等的调查做出自己的判断。
类似的,股票市场的主观投资者通过深入研究行业的各个方面,调查行业内的上市公司,形成交易决策。
另外,无论是股票市场还是期货市场,大量的主观投资者是依赖技术分析做出决策的。
三、量化策略
量化策略主要依赖于计算机算法进行交易。
投资者将初步的交易逻辑输入计算机,并运用大量的历史数据做统计和回测,在此基础上做出适当的修改、扬弃,以形成可接受的交易策略。策略在形成后,往往各个决策条件就已经确定,实盘中按照既定的程序执行。
对比而言,部分主观策略在对单个标的的研究深度上有优势,可以通过深度研究提供专家级的意见。而量化策略由于运用计算机决策,可隐态帆以处理大量的数据,因此在广度上有优势。另外,量化策略在执行中不会受人的状态、情绪等不确定性的影响,因而执行更为严格和精确。
四、常见策闭运略
常见的量化交易策略可以大致分为趋势策略和市场中性策略,趋势策略常见的有双均线策略、布林带策略、海归交易法和多因子选股策略等。
常见的市场中性策略包括统计套利策略、Alpha对冲策略等,著名的网格交易法更多的是一种交易方法,可以用在不同类型的策略中。
下面我们对这几个常见策略做一个简单介绍,想深入了解某个策略的读者可以借助互联网获得更多资料。
(1)双均线策略
双均线策略在趋势交易中有广泛的应用。该策略根据长短两根不同周期的移动平均线的金叉和死叉来交易。在短周期均线上穿长周期均线(金叉)时做多,在短周期均线下穿长周期均线(死叉)时做空。双均线系统可以进一步扩充为多均线系统。
(2)布林带策略
布林带由三条线构成,其中的中线是一根移动平均线,上线是由中线加上n倍(如2倍)标准差构成,下线是中线减n倍标准差。当行情上穿上线时做多,下穿下线时做空。
(3)海归交易法
海归交易法由商品投机家理查德·丹尼斯的推广而闻名。该法则涵盖交易的进出场,资金和仓位管理的各各方面,是一套完整灶雹的交易系统。关于该策略的具体交易模式几个字不容易说清楚,详细的了解大家可以参考《海归交易法则》这本书,特别是后面的附录。
(4)多因子选股
多因子选股模型是股票交易中常见的策略。建立过程包括选取候选因子,在历史数据检验的基础上挑选有效因子并剔除冗余因子等几个过程,最后是根据因子选择要交易的股票,确定出入场时机。
(5)统计套利
统计套利可以用于期货市场的跨品种和跨期套利,也可以用于相关性高的股票之间的价差套利。它是利用相关性高的标的之间的价差或者价比回归的性质,在价差或价比偏离均衡位置时进场,在价差或价比回到均衡位置时出场。
(6) Alpha对冲策略
Alpha对冲策略同时持有方向相反的两种头寸对冲Beta风险。在国内市场常见的是持有股票多头的同时,持有股指期货空头,该策略是否能够获得超额收益依赖于选取的股票是否具有高的Alpha正值。
(7)网格交易法
网格交易法的核心是网格间距和中轴线的确定。我们以螺纹钢期货合约为例说明,目前螺纹价格3000,我们建立初始仓位,比如50%仓位。随后螺纹钢每涨50点卖出10%,每跌50点买入10%。这里的3000就是中轴,50点是网格宽度。该策略的收益波动很大