经常有人会问:“我的交易系统是不是有效的?”当然,得到的答案是“交易系统要经过测试”。问题的关键是如何测试呢?严格、科学的系统测试,可以让我们在执行交易系统的过程中信心十足。
但是,现在市面上写如何测试系统的材料,非常的少。
系统测试的问题
最大的问题是系统过拟合,也就是参数优化到极致,历史测试效果非常的好,但是投入实际交易,效果很差。
产生过拟合的原因,可能是在特定的重大损失之前止损,或者主要的反弹行情发生之后才新建仓位,特别是针对偶尔出现的行情,做特殊优化。
避免系统过拟合的思路有以下五种:
- 引入的交易规则越多,越不可靠。系统越简单,越可靠,至多可以有 2 ~ 5 个变量;
- 不要为每个市场量身定做一个系统。不同的市场之间,可以少量修改,但不能大幅度改变;
- 每个市场,交易的笔数不能低于30笔,同时市场必须包含上升、下降、震荡趋势;
- 系统不应该偏向任何一个方向;
- 五年的测试数据被认为是最小的周期;
交易品种的选择
我们在《构建期货交易系统(一):如何做分散化投资》已经做了阐述了,这里就不赘述了。
系统的评估标准
很多人单纯的以年度复合增长率做评估,这个是不对的。金融投资,需要同时考虑风险和回报。比如说资金最大回撤50%,但是年度复合增长率是10%,这个我相信谁都无法接受。
系统优化的目标是:在特定风险下赚尽可能多的钱,在特定期望回报的水平下受尽可能小的风险。
衡量风险和回报的综合指标
- 夏普比率:承担一块钱的风险,能够得到的收益值,越高越好。
- MAR比率:年度回报率/最大的衰弱幅度
回报量化
- 平均复合增长率
- 滚动平均一年期回报
- 平均月度回报率
- 净值曲线
- 月度回报分布状况的图表
风险量化指标
风险类型有很多种:
- 衰落:一连串损失使你的账户缩水
- 低回报:回报太低,赚到的钱微不足道
- 价格动荡:一个或多个市场出现价格的骤然变动,导致无可挽回的重达损失
- 系统死亡:市场状态改变,致使曾经有效的系统突然失效,原因大部分情况下都是由于不合理的测试导致的。
风险评估的指标:
- 最大衰落:最大资金回撤比例;
- 最长衰落期:从一个顶峰到另一个顶峰的最长周期;
系统的测试方法
合理的测试方法,能够相对比较客观系统的盈利能力。
简单测试方法
通过调整关键核心参数,看系统的表现。从中获取参数在系统中重要性。这个被认为是差的系统测试方法。很容易曲线拟合
累计前进测试方法
以5年测试数据为例。
- 第一步:先测试前三年的数据,获取一个系统;
- 第二步:接下来测试下一年的数据,获取测试结果;
- 第三步:如果结果是不好的,则回头重新设计系统;
- 第四步:如果结果是良好的,优化整个四年的数据,得到一个优化后的系统;
- 第五步:再测试第五年的结果;
- 如此反复;
简单前进测试
以5年测试数据为例。
- 第一步:基于前三年的数据开发交易系统
- 第二步:拿最后两年的数据做测试
- 第三步:如果结果不好,重新设计系统
前进测试被认为是最好的测试系统。如果系统没有通过前进测试,就可以直接抛弃。
进场信号测试
入市不是很重要,只需要比保本好点就行,退市才是最重要的。
测试方法
退场采用隔几天退出。
入市信号评估
- E - 比率,一段时间之内 MFE / MAEMAE:最大不利变动幅度MFE:最大有利变动幅度
步骤
- 为每个入市信号计算指定时间段内的MFE和MAF
- 标准化:将MFE和MAF分别除以入市时的ATR
- 分别对MFE和MAE求和
- MFE的和 和 MAE的和,分别除以信号的总次数,求均值
- 求平均的MFE除以调整后的平均MAF
评估标准
- 盈利比例要比随机入市好
- 盈利百分比应该超过55%
- 如果是顺势交易,随着退市时间的拉长,比率应该提升
出场信号测试
出场的测试方法,比进场难多了。主要是出场是跟进场策略相配合的。
测试方法
选择一个简单、通用的入市方法:比如说两条平均线,也可以采用随机入市。
退出信号评估
需要跟入市信号一起评估
评估指标
净收益和盈利百分比。
结论
- 退市对盈利结果影响巨大;
- 盈利百分比最大的未必是盈利最大的;
- 入市影响可盈利范围,退市影响盈利结果;
#文章首发挑战赛#