成文日期:2022年12月02日
1.阐述了多技术指标打分策略的思想起源、设计初衷、各技术指标功能简介和策略搭建逻辑。
2.展示了部分策略代码。
3.使用策略进行历史数据回测,分析回测结果。并对部分参数进行寻优,借用热力图对可能存在的参数高原进行可视化分析。
4.总结策略效果,并分析了策略优势和不足点。
风险提示:谨防单边趋势行情,规避波动剧烈合约等
1.单指标策略弊端
当下基础程序化策略市场多为单技术指标策略,其在使用时有较多局限性。如策略信号在设计时为了匹配品种走势形态,存在严重的过拟合现象,因此在应用到实盘后,很难达到预期的效果。同时,商品期货合约价格在短周期上的行为金融属性,致使盘面走势出现大量扰动信号,如诱多、诱空等虚假信号,因此如果通过单一技术指标进行判断,会使策略正确率不及预期。而市面上多技术指标同时运用的程序化策略研究较少,因此本报告考虑对各技术指标进行整合使用,以谋求适当规避单技术指标策略在使用时的诸多弊端。
2.区间震荡行情抓取
追涨杀跌是交易市场的通病,大级别趋势行情似乎满足了交易者这种情绪的天然释放。然而,区间震荡才是市场的常态。经粗略统计,商品市场中区间震荡行情约占80%,尤其一些农产品类合约占比更高。因此,学会如何把握震荡行情是每个合格交易者的必修课。
3.量化评估K线
主观交易时经常会参考众多技术指标,在同一根K线上通过综合评估各个技术指标是否达到可交易阈值,从而决定是否执行交易。而在瞬息万变的二级市场上同时观察并评估多个技术指标,随后立刻做出决策是否下单,在操作上往往很难兼顾全局。因此,在同一根K线上将各指标量化打分,通过程序化交易,可以适当解决上述问题。同时也可避免主观情绪的偏差对指标误判,杜绝交易执行的不坚定。
综上,本报告通过多技术指标的混合运用,以区间震荡为底层设计逻辑,最终的交易决策取决于多技术指标共同作用下的K线总分值而非单独某一指标。该策略可在一定程度上解决上述执行效率低、过拟合、虚假信号和追涨杀跌等问题。通过综合使用MACD、KDJ、BOLL和连阳(阴)数四个技术指标,实时对每一根K线进行打分,依据K线分值辅导交易决策的制定,决定是否建仓。
MACD即异同移动平均线,通过计算快慢均线的离散与聚合程度来反应当前市场的买卖趋势;KDJ即随机指标,融合了移动平均、动量、超买超卖概念,可以快速反应中短期市场的买卖趋势;BOLL指标由上、中、下三条轨道组成,反应股价的运行趋势。一定程度上可规避盘面诱多、诱空和洗盘的风险。同样,历史数据显示,连阳(阴)数在达到一定数值后,大概率也存在阶段回调的可能。因此综合利用这些技术指标,在同一根K线上形成一个合计分值,可作为盘面交易决策的参考依据。
以日线为交易周期,某一K线总分值达到±open_mark(该参数后期会进行寻优)开始建仓。一根K线最多开仓1手,同一头寸达到5手停止开仓。平仓信号由两种情况触发,一种是当第一笔建仓头寸浮亏达到stop_point(该参数后期会进行寻优),头寸全部止损清仓。另一种是当出现反向开仓信号时,原有头寸全部清仓。
表1为各技术指标阈值打分情况,后期投资者可根据自身交易习惯修改、添减指标并设置对应分值:
表1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
数据来源:徽商期货研究所 |
策略打分效果如图1所示:
加载策略后的合约品种每根日K线上都会依据上表设定量化打分,当总分值达到开仓分数(open_mark)时,会触发交易信号。根据图1显示,标注位置的K线MACD得分-2,J值(KDJ)得分-10,BOLL得分-8,连阳得分-1分,合计-21分,达到open_mark设定值,因此触发开仓信号。
策略图层展示如下图2所示:
通过豆粕主力连续合约图层显示,该策略基本能稳定抓取区间震荡行情中的交易机会,且在该类行情中无论多空,信号都较为稳定。但在出现趋势行情后,策略会出现一定程度的判断错误。为此,本策略通过两种途径以缓解出现大级别趋势行情时对账户收益的回撤影响。第一,策略添加固定止损点(stop_point),当头寸浮亏达到该值会强制平仓,以规避损失扩大;第二,通过对BOLL的带宽与过往一定周期的均值做算术处理后求二阶标准差。通过该值(std_diff_diff)的异动一定程度上预警、过滤掉部分大级别趋势行情。
依据前述策略框架,借助开拓者量化平台编写了策略代码,下图3-4展示了部分代码:
周期:2019年11月1日--2022年10月31日(日 K线)
回测品种:豆粕、菜粕、甲醇、PTA、燃油、沥青、螺纹钢、铁矿石、苹果、纸浆、玻璃、纯碱累计12个主力连续合约
初始资金权益:单品种15万元,账户最大保证金占用约30%以内
滑点:1跳
手续费:按各品种交易所标准收取
本策略主要面对市场中小投资者,单合约最大开仓手数基本维持在5手以内,后期可根据交易者自身风险容忍度,适当调整开仓手数,以最大限度提高资金使用率。考虑到交易滑点和保证金占用两个层面,将策略应用到交易活跃度较高、持仓成本较便宜的豆粕、菜粕、甲醇、PTA、燃油、沥青、螺纹钢、铁矿石、苹果、纸浆、玻璃、纯碱上。可有效降低交易滑点,价格便宜适合中小投资者且能有效控制账户资金安全。考虑到策略为区间震荡模型,且设有固定止损,开仓最大合约价值平均在35万左右,故单品种使用15万初始权益资金,能使账户最大保证金占用控制在30%左右。考虑到持仓周期多为中长期,因此指标周期使用日K线。回测周期取各品种主力连续合约近三年历史数据。
策略中各技术指标在设计交易规则时主要以区间震荡理念为底层逻辑,故整体策略效果应主要偏向震荡行情。可通过上述策略图层显示、后续回测的账户权益曲线分析以及品种参数寻优热力图分别印证该推论。考虑到部分品种价格形态并不一定适合上述设计的交易形态,因此通过历史数据回测进行了策略普适性检验,并筛选出适合的标的品种。下图5-16显示了在不同止损点(stop_point)情况下,通过调整开仓分数(open_mark),策略应用在不同商品合约的年化收益率点阵图:
综上可见,在回测的12个品种中,沥青、玻璃、郑醇和苹果的年化收益率点阵图基本分布在零轴以下,收益情况整体表现较差,回顾图层纠其原因主要是其近年价格形态与策略交易部分设计逻辑不匹配。而其它8个品种部分年化收益率分布在零轴以上,存在一定收益空间。若投资者后期资金规模允许,风险容忍度提升,预期做全品种投资,可针对上述问题微调策略交易逻辑部分以吻合不同类品种特有的价格形态,再构成组合投资,本报告将不对该部分做过多赘述。
根据上述筛选,将剩余适合品种构建策略投资组合。并对组合内各品种进行参数寻优。本策略参数较多,主要为形成各技术指标的内部参数,因此该部分参数不建议随意调整。而开仓分数(open_mark)和止损点(stop_point)分别为策略开仓信号和止损信号的触发点,没有约定俗成的固定值,因此将其判定为可调整参数。通过对以上两个参数寻优使策略适应不同品种,从而发挥其最大价值。本报告同时对open_mark和stop_point两个参数进行了枚举寻优(open_mark最小值为1,最大值为35,步长为1,计35组;stop_point最小值为10,最大值为500,步长为10,计50组),单品种合计枚举1750组结果。考虑到策略参数优化可能存在过拟合现象,导致策略回测结果虚高。因此对各品种枚举结果进行可视化处理,形成二维热力图,以年化收益率、累计最大回撤率两个参考指标进行展示,以探究在不同品种上这两个参数是否存在共同参数高原。图17-32为组合投资各品种参数寻优结果。
燃油主力连续合约年化收益率、累计最大回撤二维热力图如图17-18所示:
结合燃油主力连续合约的年化收益和累积回撤热力图,发现其存在显著参数高原现象,当open_mark取4至9,stop_point取70至400之间,该单品种的年化收益和累积回撤可维持在偏优水平。
豆粕主力连续合约年化收益率、累计最大回撤二维热力图如图19-20所示:
结合豆粕主力连续合约的年化收益和累积回撤热力图,发现其存在显著参数高原现象,当open_mark取2至12,stop_point取130至400之间,该单品种的年化收益和累积回撤可维持在偏优水平。
螺纹钢主力连续合约年化收益率、累计最大回撤二维热力图如图21-22所示:
结合螺纹钢主力连续合约的年化收益和累积回撤热力图,发现其存在轻微参数高原现象,当open_mark取17至25,stop_point取130至260之间,该单品种的年化收益和累积回撤可维持在相对较好水平。菜粕主力连续合约年化收益率、累计最大回撤二维热力图如图23-24所示:
结合菜粕主力连续合约的年化收益和累积回撤热力图,发现其存在轻微参数高原现象,当open_mark取3至11,stop_point取110至230之间,该单品种的年化收益和累积回撤可维持在相对较好水平。
纯碱主力连续合约年化收益率、累计最大回撤二维热力图如图25-26所示:
结合纯碱主力连续合约的年化收益和累积回撤热力图,发现其存在显著参数高原现象,当open_mark取18至25,stop_point取280至500之间,该单品种的年化收益和累积回撤可维持在偏优水平。
纸浆主力连续合约年化收益率、累计最大回撤二维热力图如图27-28所示:
结合纸浆主力连续合约的年化收益和累积回撤热力图,发现其存在轻微参数高原现象,当open_mark取16至26,stop_point取310至500之间,该单品种的年化收益和累积回撤可维持在相对较好水平。
PTA主力连续合约年化收益率、累计最大回撤二维热力图如图29-30所示:
结合PTA主力连续合约的年化收益和累积回撤热力图,发现其存在轻微参数高原现象,当open_mark取6至13,stop_point取10至180之间,该单品种的年化收益和累积回撤可维持在相对较好水平。
铁矿石主力连续合约年化收益率、累计最大回撤二维热力图如图31-32所示:
结合铁矿石主力连续合约的年化收益和累积回撤热力图,发现其存在显著参数高原现象,当open_mark取13以下,stop_point取140以下,该单品种的年化收益和累积回撤可维持在偏优水平。
综上,对存在显著参数高原的品种选择其区间参数加载策略,存在轻微参数高原的品种不建议进行过度参数寻优。图33-34为适当参数优化后的多品种策略组合投资情况和对应的账户净值曲线。
通过上图可见,该策略组合投资近三年累计交易1113次,胜率51.12%,年化收益20.53%,累计最大回撤7.95%。对账户整体净值曲线分析发现,在区间震荡行情时,策略收益可以稳定攀升,曲线良好。但在部分年月,当标的商品合约出现大方向单边趋势行情时策略很难获取利润,且会出现一定回撤。综上可见,该策略回测效果符合设计初衷。即主要应对震荡行情,但在趋势行情上具有一定劣势。因此后期在修正和使用上应着重关注这一方面。
本报告主要阐述了多指标打分模型的思想逻辑、代码实现和回测优化,并对回测数据进行了可视化处理,通过参数高原确定参数优化的合理性。在指标分值设置时,主要以震荡行情为底层逻辑。将策略加载至图层证实了该策略在震荡行情中具有良好的收益表现,但在趋势行情中会出现些许回撤。且账户净值收益曲线进一步证实了该效果。
后期在策略优化方面,可能会考虑优化止损方式以期更好的控制账户资金损失,从而减少累计回撤率,使策略整体收益重心稳步上移。在策略使用上也应注意选择一些偏震荡合约品种,使之更好的适配策略设计初衷。投资者也可根据自身需要,通过修改、添减各技术指标,调整阈值分数设定,匹配出更适合自己的策略。
徽商期货有限责任公司
投资咨询业务资格:
皖证监函字【2013】280号
徽商期货研究所
程序化部门程序化团队
汪婷 程序化研究员
从业资格号:F3078953
投资咨询号:Z0015876
王辉 程序化研究员
从业资格号:F03101542
0strip comment