将技术分析进行到底
提供专业的程序化交易解决方案

除了价量时空之外,程序化还研究什么

本文探讨从换月跳空、交易控制、组合交易三个方面优化交易系统的思路。


一、换月跳空

主力换月是期货交易不得不面对的问题。

换月前后非常容易造成亏损。究其原因,一方面是源于行情,例如流动性降低,另一方面,则是换月跳空对数据连续性的影响。

一般来说,剔除换月跳空的影响,可以到更优的结果。

我们来看一个例子。

未剔除换月跳空的测试结果:

1004.1

剔除换月跳空的测试结果:

1004.2

虽然最终的收益有所减少,风险得到了一定控制。不仅回撤减少了,而且每手平均盈亏增加了。

那么如何对换月进行处理呢?这里提供几个思路:

  • 换月前后停止交易。简单粗暴。
  • 交易月份合约。研究时采用分段测试的方法。
  • 模型加载到指数合约出信号,映射到月份合约计算盈亏。文华提供的指数数据,配合TRADE_OTHER函数可以实现映射交易和回测。

 

二、交易控制

我曾经总结过:交易控制包括执行控制和信号控制两个方面。

执行控制是指,信号出现后,如何发委托。例如信号出现之后,可以立即发,也可以用自定义的规则延迟发,等。

信号控制是指,信号的过滤规则。属于资金管理的范畴。

我们来看一个例子。

2012年1月至2014年12月,采用第一种执行方案,得到的测试结果:

1004.3

1004.4

2012年1月至2014年12月,采用第二种执行方案,得到的测试结果:

1004.5

1004.6

虽然使用相同的交易条件,但是执行规则不同,最终得到了完全不同的结果。

那是不是就可以得出“第二种执行方案比第一种更优”的结论呢?

我们看一下后续的测试结果。

2015年1月到12月,采用第一种执行方案,得到的测试结果:

1004.7

1004.8

2015年1月到12月,采用第二种执行方案,得到的测试结果:

1004.9

1004.10

显然,第一种执行方案更适合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手,过滤模型,得到的测试结果:

1004.11

接下来面临一个问题,如何增加模型的资金容量。

简单的增加手数,得到的结果是:

1004.12

虽然相对风险没有变化,但是绝对风险增加了。

有没有一种更优的增加资金容量的方案呢?有,组合交易。

我使用A ⊕ B模式,得到了一个深度组合后的加仓模型。

同样条件下的测试结果:

1004.13

最终权益比固定2手下单少,但是风险却低了许多。

 

 

 

赞(0)
未经允许不得转载:文华程序化 » 除了价量时空之外,程序化还研究什么
分享到: (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    非常实用!谢谢分享!

    双鱼座守望者8个月前 (03-07)回复

横冲直撞 一直到最远方