本文探讨从换月跳空、交易控制、组合交易三个方面优化交易系统的思路。
一、换月跳空
主力换月是期货交易不得不面对的问题。
换月前后非常容易造成亏损。究其原因,一方面是源于行情,例如流动性降低,另一方面,则是换月跳空对数据连续性的影响。
一般来说,剔除换月跳空的影响,可以到更优的结果。
我们来看一个例子。
未剔除换月跳空的测试结果:
剔除换月跳空的测试结果:
虽然最终的收益有所减少,风险得到了一定控制。不仅回撤减少了,而且每手平均盈亏增加了。
那么如何对换月进行处理呢?这里提供几个思路:
- 换月前后停止交易。简单粗暴。
- 交易月份合约。研究时采用分段测试的方法。
- 模型加载到指数合约出信号,映射到月份合约计算盈亏。文华提供的指数数据,配合TRADE_OTHER函数可以实现映射交易和回测。
二、交易控制
我曾经总结过:交易控制包括执行控制和信号控制两个方面。
执行控制是指,信号出现后,如何发委托。例如信号出现之后,可以立即发,也可以用自定义的规则延迟发,等。
信号控制是指,信号的过滤规则。属于资金管理的范畴。
我们来看一个例子。
2012年1月至2014年12月,采用第一种执行方案,得到的测试结果:
2012年1月至2014年12月,采用第二种执行方案,得到的测试结果:
虽然使用相同的交易条件,但是执行规则不同,最终得到了完全不同的结果。
那是不是就可以得出“第二种执行方案比第一种更优”的结论呢?
我们看一下后续的测试结果。
2015年1月到12月,采用第一种执行方案,得到的测试结果:
2015年1月到12月,采用第二种执行方案,得到的测试结果:
显然,第一种执行方案更适合2015年的行情。
通过哪些方式可以实现对交易执行的控制呢?
- 执行方式的控制可以通过系统函数MULTSIG和CHECKSIG实现。可以参考这个链接http://cxh.wenhua.com.cn/download.asp?pid=5
- 信号控制主要通过编写实现。可以参考这个链接http://help.shwebstock.com.cn/dispbbs.asp?boardid=14&Id=465219&page=4
- 文华财经赢智程序化平台的一个特色函数IDLE。本文没有涉及,以后有机会再讲。有兴趣的朋友,可以参考这个链接http://cxh.wenhua.com.cn/download.asp?pid=5
三、组合交易
本文不讨论理论,只研究实现方案。
假设A与B是两个交易系统,有三种方案可以实现组合交易。
- A + B:A与B独立运行,独立核算,之间互不干扰。
- A || B:A与B互为过滤条件。也就是说A开仓后,过滤掉B的信号,或者B开仓后,过滤掉A的信号。麦语言模型,可以使用分组功能实现这种方案。
- A ⊕ B:符号⊕仅是为了与+区分。与前两种组合泾渭分明的特点不同,这是一种深度的组合。例如,A系统只保留开仓条件,B只负责加仓,平仓条件同时作用于A和B的开仓条件。
我们来看一个例子。
固定1手,过滤模型,得到的测试结果:
接下来面临一个问题,如何增加模型的资金容量。
简单的增加手数,得到的结果是:
虽然相对风险没有变化,但是绝对风险增加了。
有没有一种更优的增加资金容量的方案呢?有,组合交易。
我使用A ⊕ B模式,得到了一个深度组合后的加仓模型。
同样条件下的测试结果:
最终权益比固定2手下单少,但是风险却低了许多。
非常实用!谢谢分享!