交易策略的研发是一个相当复杂的过程,是以许多相关且独立的步骤所构成,认真落实好每个步骤才能有成功的交易策略,并且在开发过程中,还要善于利用下一个步骤所得到的资讯,来改进调整上一个步骤,如此才能得到一个完善的交易策略。
以下是开发步骤
1、交易策略的公式化。
2、转化具体规则为可定义格式。
3、进行初步测试。
4、交易策略的优化。
5、推进分析。
6、多周期多市场的测试。
7、模拟交易。
8、实盘交易。
9、评估实际交易绩效。
10、交易系统的改进和完善。
步骤1:首先,任何交易策略一开始都只是一个想法,当然想法可以有多种多样,没有做不到,只有想不到。不管你的想法怎样,你都要能够把它们清晰完整地表达出来,最好的方法是拿一张纸,把它们一点一点写下来,然后仔细读看它们是否有逻辑混乱、重复之处,最后得到的就是交易策略的规则,即初步的框架。如果你的规则不够明确,逻辑不连贯,缺乏关键因素,或者有错误,那接下来的步骤就会很辛苦。对新手而言,他们往往不能完整地列出所有的规则,导致后面的步骤无法进行下去。
步骤2:当你把所需要的规则都列出来后,就要把这些规则转变成你所使用的测试平台的计算机语言,软件平台也有很多种,像国内的有文华、金字塔、TB、MC、易盛等,国外的TS、MT、YT等,如果是计算机专业人员还可以通过基于CTP的平台自己开发,不用的平台都有不同的语言,优缺点各异,像TS的Easylanguage,是从程式语言PASCAL演变过来的,由于天然的易读性被交易员普遍接受,而MT则类似于C语言。在这一步,你所要做的就是选择一款实用、性价比高的平台去把你的规则转变成计算机语言。
步骤3:当策略中所有的程式码都能准确地编译后,就能看到初步的测试结果,在这一步,你可以看到你的策略是否会给你带来赢利,并且你要做的是观察信号图是否和你的想法一致,如果不一致,则证明策略原码出现了错误,返回步骤2进行修改,如果一致,接下来要做的是检验初步测试报表,了解策略的风险報酬比,交易次数等,这里最好多测试几个品种,不一定要求全部获利,但如果多数出现亏损,那你最好还是放弃这个策略。相反,如果结果看起来不错,那就是一个好的开始。
步骤4:策略的优化,这一步是最引人入胜的,因为很多的所谓圣杯都是在这里产生。最佳化策略就是要把策略的性能提高,让策略赚取更大的利润且风险控制在一定的水平。我们大多数的策略都会设有参数,而策略的优化就是参数的优化,不同的参数会产生不同的绩效,过度地增加参数进行限制会产生过度配适问题,过度限制过去的行情无异于减少未来行情重现的概率,这一点我们一定要把握适度,不能为了优化而优化,结果只会适得其反。
步骤5:当进行完优化后,我们要对其进行推进分析,这是开发交易策略中最严谨的步骤。这一步的核心是检验交易策略的稳健性,即是否存在过度配适的问题。那么我们如何来进行推进分析,简单来讲就是要进行一个对比,优化后的策略对以前的数据和之后的数据间的对比,那么我们就要分成样本内和样本外两种,通过测试得到不同的绩效,然后进行比较,衡量两者的报酬率,关于怎么选取数据这个问题就不详细讲了,如果两者之间存在很大差异,就证明策略稳健度不高,可能存在过度配适,这样就要回到步骤4再重新改善。
步骤6:当策略通过推进分析后,就说明策略具有一定的稳健度,接着进行多周期多市场的测试,进行这一步,并不是要找一个全能的策略,实际上能够在不同的周期、不同的市场都表现得很好的策略真的不常见,而且我认为也不需要在所有的市场都适用,因为每个市场都有自己的特性。进行测试得到的结果如果在大多数的情况下都能获得正期望,那么恭喜你,这个策略具有很好的适应性,因为不同市场不同的走势能让策略得到不同的表现。
步骤7:经过一系列的步骤,到了模拟交易,有的朋友想跳过这一步,直接实盘,其实这是有很大风险的,因为我们之前测试的都是基于静态数据而来的,我们不知道未来行情策略会表现如何,是否有信号消失、滑点大小等,这些都是不确定因素,所以我们先跑一段时间的模拟盘,看看是否存在什么未预料的情况,当然跑多久,这里建议最好6个月,但是我想要说,即使你能做好所有的准备工作,到真正实盘也还是会有新问题等着你,意外总会发生。
步骤8:好了,终于要实盘了,对于看信号手动的交易者,这一步就是要坚决执行每个信号,对程序化自动的交易者,只需完全让计算机运作。
步骤9:为了让交易系统能够成功运行,交易者必须持续监控实际交易绩效,了解其交易绩效是否和如同测试预期。很多交易员很快就放弃一些策略,因为策略出现了亏损,即使亏损频率和最大限度仍在策略报表所提供可容忍的范围内。导致该问题往往是对交易策略缺乏信心,或策略不适合自己,解决方法是对策略进行重新认识,认真做好交易记录,一段时间后对策略绩效进行一个总结。
步骤10:随着时间的推移,交易策略也有了一个大概的绩效评估,在市场的不同时期,绩效会有不同的表现,这是正常的,我们通过统计评估,可以发现策略的强度和弱点,然后增加策略的强度和减少不足。对于是否手动干预系统,我的看法是这样,系统就是你的好朋友,如果你对他非常了解和熟悉,当他出现某一种情况时,你会知道他是怎么想的,这时手动干预就可以补掉系统的不足,如果你对他不熟悉,那么手动干预只会弄巧成拙。
至此,开发一个交易策略就完成了。每一个交易员都应该开发属于自己的交易策略,如果你是一名交易员,你一定会从中得到乐趣、信心、成就。