您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[格林大华期货]:基于Barra因子的股指期货量化策略(三):仿真交易系统 - 发现报告
当前位置:首页/其他报告/报告详情/

基于Barra因子的股指期货量化策略(三):仿真交易系统

2022-08-19格林大华期货后***
基于Barra因子的股指期货量化策略(三):仿真交易系统

研究与投资咨询部 格林大华量化研究 联系电话:0371-56518942 专题报告 2022年8月19日 基于Barra因子的股指期货量化策略(三):仿真交易系统 摘要 构建股指期货交易策略,可以从宏观的角度,研究经济周期、货币政策、突发事件。本文从微观的角度,从指数样本股入手,通过个股因子合成指数因子,对个股因子的度量就像是对学生的评价,对指数因子和股指期货的度量就像对班级的评价。 上一篇专题报告中,我们已经得到了关于股票的因子数值,并对因子有效性做了评价和调优,本篇专题报告将介绍股指期货量化策略的流程。 第一步,合成指数因子。调整样本股权重,建立个股因子、指数因子、指数价格三者之间的联系。 第二步,设计交易策略。确定交易风格,定义波峰波谷,设置反转强度,测试买入权重,以及每个小步骤中可选的几种方案。 第三步,搭建回测框架。包括起始资金和保证金使用率、挂单交易及挂单让点参数、手续费、日线数据在盘中的止盈止损、换仓展期。 第四步,策略测试调优。每次测试记录的指标,从中找到改进的方向,更新测试基准。 第五步,合成二级因子。通过合成二级指数因子和合并三级因子账户两种方式,测试二级因子的收益率。 一.指数因子 1.调整样本股权重 原始权重(%) 股票数 权重比例 调整权重(%) 1-10 15 5 0.8897 0.6-1 20 4 0.7117 0.4-0.6 35 3 0.5338 0.2-0.4 72 2 0.3559 0-0.2 158 1 0.1779 可以使用样本股的原始权重,也可以调整原始权重。沪深300指数样本股中的每一只在市场中都很重要,而原始权重差距过于悬殊。例如最高的贵州茅台为6.0572%,最低的龙源电力为0.016%,仅贵州茅台一只股票的权重就大于权重最低的70只股票权重之和。 表1:权重调整后结果 因此考虑调整样本股权重,一方面减小头尾之间的差距,一方面保持原有的区分度。样本股权重分为5档,每档分界线为1/0.6/0.4/0.2,分界线为小数点后一位取整,避免过拟合,同时保持每档股票数仍然符合金字塔型结构。然后分级靠档,每档权重为5/4/3/2/1,最后权重归一化。 图1:原始权重和调整权重的指数走势对比 如图1所示,以最新指数样本股的原始权重和调整权重计算指数累计收益率,两者走势基本相同,说明调整后的权重没有改变原始权重的结构。另外,原始权重的收益率较高,主要得益于贵州茅台和宁德时代两只高权重股票的收益率高于指数收益率,而调整后的权重稀释了这两只股票的收益率。 2.合成指数因子 由样本股的因子数值和样本股的调整权重,两者做内积,即对应相乘后加总,可以得到关于指数的因子数值。 图2:指数因子和沪深300指数走势对比 计算指数因子与次日股指、股指期货、基差的相关性。如图2所示,2020年之前因子与指数呈现负相关,2020年后转变为正相关,走势趋于一致。 首先,原始权重是连接个股股价与指数价格的桥梁,合成指数因子是在个股因子、指数因子、指数价格三者之间牵线搭桥,最终希望后两者之间具有先导性和相关性,而个股因子和指数价格之间,并没有原始权重越高,相关性越高的规律。 其次,本文的交易策略是在市场出现趋势信号时,单边做多或做空股指期货,属于趋势型主动量化策略,并不需要像指数增强类策略在一定程度上跟踪指数,因此也不依赖原始权重。 基于以上两点考虑,对样本股的原始权重做出调整,希望通过样本股个股因子的整 体表现透视指数趋势信号。 3.指数因子变化率 计算因子数值当前交易日相较于前一交易日的变化率,变化率较大时作为市场变盘的信号。为了剔除短期趋势的噪声,也可以将因子数值先取5日均线,再计算变化率。 由于各因子自身的不同特性,变化率的波动幅度往往不同,例如股价有涨跌幅10%的限制,成交量变化率就要大一些。因此考虑对指数因子的变化率进行缩放,使缩放后最近一年指数因子变化率的标准差,等于最近一年指数变化率的标准差。 二.交易策略 1.交易风格 左侧交易者是在仍处于下跌过程中即买入,右侧交易者是在见底反弹后买入。对于相同的判断准确性,或者说在相同的价格买入,两者的成本是完全相同的,因此没有孰优孰劣之分,只是在交易风格上有所不同。 图3:波谷的左侧和右侧 如图3所示,左侧和右侧是相对于时间轴和波峰波谷而言的,左侧意味时间轴更早,因此还无法预见波谷,右侧意味着时间轴更晚,此时波谷已经出现。值得注意的是,图 3是我们站在当前,通过后视镜观察过去,过去的信息一目了然,处于全知视角。而在 做出交易决策时,只有交易时点之前的信息,无法得知交易时点之后的信息,因此图4 图5才是交易时的实际视角。 图4:左侧买入时未见波谷图5:右侧买入时波谷已现 左侧交易者更为激进,认为价格已经跌入谷底,买入后承担的是价格继续下跌的风险,这种风险发生在未来,且理论上是无限风险。一旦判断准确,风险没有发生,那么将不需要承担损失。从某种角度来说,左侧交易者更为自信,力求买入价格能够接近理论上的最低成本。 右侧交易者更为保守,只有在价格确定从低点开始反弹后才会买入,承担的是相对于谷底的损失,这种损失发生的过去,且现实中是有限损失,但是无需承担左侧交易者惯性下跌的风险。从某种角度来说,右侧交易者更为稳健,愿意以一定代价消除理论上的无限风险。 本文采用的反转交易,属于右侧交易者,进一步的实施细节包括波峰波谷的定义、反转强度的优化、买入权重的设置。 2.波峰波谷 判断反转最为简单的模式是看连续三个交易日的因子数值,即连续两个交易日的因子数值变化率,先涨后跌即波峰,先跌后涨即波谷。这种在日线级别下最为短期的模式,优点是较为敏感,可以捕捉细微的交易机会;缺点如出一辙,因为敏感难以抵御噪声的干扰,稳健的改进有以下两方面。 其一,可以先计算日线因子数值的若干日移动平均线,例如3日、5日、10日,利用平滑后的曲线监测波峰和波谷。 其二,可以扩大日线因子数值的观察窗口,将观察期分为两部分,分别计算两部分因子数值的回归曲线斜率,判断是否发生反转。这种反转发生在当前交易日的前几天,也符合右侧交易者的交易风格。 3.反转强度 判断反转发生后,以反转模式为连续两个交易日的因子数值变化率为例,定义反转强度为今日变化率的绝对值加上昨日变化率的绝对值。这种方法考虑了谷底左侧下跌前和谷底右侧上涨后,一方面,下跌的幅度越大,说明惯性越大,反转的发生越难得;另一方面,上涨的幅度越大,说明弹性越大,反转的意义越明确。 进一步,可以对下跌幅度和上涨幅度加权,即将下跌幅度和上涨幅度分别乘以一个系数,两者系数相加为1,可以调整两者的权重,还可以将下跌幅度的权重设为0,即包含只考虑上涨幅度作为特例。另一个可能但不建议的方法是将下跌幅度除以2,再加上涨幅度,这样虽然降低的下跌幅度的权重,但是同时也降低整体的幅度,因此采用权重之和为1较为合理。 4.买入权重 计算好反转强度后,需要将其与买入权重建立对应关系。简单明了的方法是建立线性关系,即反转强度除以一个系数得到买入权重,再对这个系数进行优化。 首先,个股因子数值大多是较长窗口期下计算的结果,少则一月,多则几年,因子个股因子数值的波动距离涨跌停板限制有较大差距。其次,指数因子数值是由个股因子数值加权合成,因此波动率不及个股因子数值。最后,三级因子的买入权重可设置的适当小一些,为合成二级因子留有空间,保证可以同时持有几个三级因子交易信号发出后的仓位。 在买入时,可以设置反转强度的下限,反转强度过低时不买入,下限参数为0时即为未设置下限。同理,还应设置反转强度的上限,反转强度过高时进行截尾处理,将超出的部分删除。如此掐头去尾之后,可以使买入权重处于一个合理的区间和分布。 三.回测框架 1.起始资金 回测中以2000万现金作为起始资金,采用无杠杆的交易方式,这与现实中的股指期货交易有所不同,主要考虑是测试中方便与因子收益作比较。本文是基于A股Barra因子在指数成分股中的表现,策略的收益与因子自身的有效性息息相关,期望于策略能够体现因子的有效性,且难以对负收益因子有化腐朽为神奇的作用,因此采用A股市场无杠杆的交易方式。另一方面,大多数管理期货的策略,保证金占比在20%-30%左右,相当于100万资金总额,用25万作为保证金去交易价值为200万左右的金融资产,剩 下的75万做现金管理。 2.挂单交易 指数成分股因子数值的计算在日线级别完成,交易信号在收盘后才能发出,因此无法采用当天的收盘价完成交易,只能以第二天开盘后的价格交易。为此设置挂单价格,并且设置挂单让点参数、即多仓以收盘价的1.01倍挂单,空仓以收盘价的0.99倍挂单,如果在开盘时挂单价能够成交,则以开盘价为买入价格,否则,需要比较日线中的最高价或最低价,看盘中是否出现挂单价能够成交的价格。并在回测中记录买入价格类型,收集更多信息方便调优。 挂单让点参数设置为10%或更高,即为强制以开盘价成交,涵盖上种情况。此外,挂单价需要以0.2取整,以符合股指期货的交易规则。 3.手续费 开仓时手续费扣除0.23%%,平仓时以持仓天数判断是否使用平今仓手续费3.45%%,对应当天买入后止盈止损情况。 回测中暂时未考虑冲击成本和滑点。冲击成本是指在交易迅速且大额买入或者卖出标的,使得价位偏离预定价位,从而多支付的成本。滑点是指下单的价位和最后成交的价位之间的差距。两者均与交易资金量和标的流动性相关。 4.止盈止损 在持仓过程中设置止盈和止损参数,以开仓价格的若干倍为止盈价格和止损价格,然后比较日线中的最高价或最低价是否触发止盈止损,若触发即以止盈价格或止损价格成交。并在回测中记录卖出理由类型,收集更多信息方便调优。 由于回测中使用日线级别数据,如果止盈和止损参数设置的过小,可能会出现盘中价格同时触发的情况,但是日线数据又无法判断两者孰先孰后,这是一个难以解决的问题。好在一般止盈止损参数为5%或10%,这样两者有10%到20%的间隔,对于大多数交易日是不会出现上述问题的。 5.换仓展期 前述交易策略的标的都是股指期货近月合约,在近月合约最后交易日前一个交易日换仓至新的近月合约。多仓比例较大时,还可以有一定的吃贴水收益。吃贴水是指股指期货价格会略低于指数价格,在临近交割日期时会逐渐收敛于指数价格,因此获得一小部分股指期货价格上升的收益。 四.策略调优 首先,考虑将可能优化的细节,例如,反转强度左侧右侧配比、反转强度下限、多仓空仓比例、止盈止损比例、买入权重调整系数、挂单价格让点等。其次,将这些测试项目参数化,尽量包含特殊情况,例如,止损设置为100%,效果等同于不止损。再次,遍历所有因子进行单因素变量测试,得到对于大多数因子较为普遍的规律,而不是对某一个因子测试,防止过拟合情况。最后,以直觉上各参数较为合理的数值确定测试基准,从最重要的改动开始测试,先测试交易策略相关的变量,后测试通用回测框架相关的变量,并根据测试结果不断更新测试基准。 在每次测试过程中,以不同维度记录测试结果,例如,持仓天数、买入手数、多仓空仓、不同因子的收益率分布情况,找到可能的改进方向。如图6所示,持股天数越长 收益率越高,说明短期噪声可能产生不利影响。如图7所示,买入手数越多收益率越高,可能需要提高反转强度下限,保留更多强反转和高权重的交易信号。最后,也是最容易 忽略的,对改进方向背后可解释性的思考,找到之所以成为改进的理由,而不是被数据 牵着鼻子走。 图6单次测试持股天数收益分布图7单次测试买入手数收益分布 在每轮多次测试时,也需要记录每次测试整体收益率的改进情况。如图8所示,无权重收益是质量,买入权重是数量,带权重收益受益于两者,但是带权重受益不等于两者乘积,还有一个收益和权重错配的问题,即亏钱的权重大,挣钱的权重小,可能导致无权重收益和买入权重同时增大但带权重收益反而减小的结果。如图9所示,除了关注收益率的改进,还需要警惕波动率的升高。 图8多次测试收益分析图