程序化交易模型一般分为两类模型,一类是趋势模型,一类是震荡模型。程序化交易策略赚钱的前提是有好的模型 坚持的执行。
一、好模型的辨别
1.测试时间:
好的模型必须经得起时间周期的测试,如果一个程序化,结果很漂亮,周期却只有一两个月,不可信。
2.使用资金:
很多人贴出来的漂亮测试结果,使用资金常常是80%或者其它百分比,但这些都是不合理的选择。金融市场资金管理很重要,在行情好时候,资金使用越高,收益越大;行情不好时,资金使用越高亏损越大,资金使用时应该选择固定的手数进行测试。不管他的行情如何,永不加仓或减仓,来测试一个模型更为合理。
3.测试方式:
开盘价和收盘价测试均有其不合理性,趋势模型一般以趋势逆转点为开仓信号,故较为准确的是:出现指令的价位。
二、测试结果的分析
a.信号数:
信号数过高,说明震荡行情过滤不好;过低,说明风险大。如何判断信号数是否合理呢?那就只有不同的模型在同样的周期下的一个对比了。还有一个最简单的方式就是将指令总数/有效交易天数,以日内短线为例,一般一个有效交易日的平均信号数在2-5之间(此数据仅供参考)。
b.利润率:
测试周期越长利润率应该越大。很多模型,测近期不错,测远期就不行,所以测试时应该尽量的去测能测到的最长周期。
c.胜率:
胜率越高自然越好,但也不绝对,也不用因为模型的胜率低而担心。一般的胜率能在45%左右就不错了,因为程序化的本来意义就是赚大亏小。例如,趋势模型在震荡的时候胜率自然会低。
d.最大回撤率:
如果你是选择的固定手数,比如10手进行测试,你的最大回撤率应该不能超过10%。
e.空仓时间:
以日短线为例,空仓时间不能太高。太高,必然会错过大行情,当然,这一项不是最重要的。如果你空仓时间长,利润也高,错过就错过吧,错过不是过错,没赚到也不存在亏损的风险。
三、总结
测试结果分析不能只看某一个数据,需要结合起来一起分析:信号数不能多也不能少,周期越长利润率应该越高,盈利比率45%以上就可以接受,最大亏损不能过大,空仓时间可以自行把握。
如果一个程序化交易模型做到了以上几点是不是就算一个好的模型了呢?基本上可以算了,但最重要的是我们还需要结合信号图形(此点需要一定的程序化经验,并不一定看上去好的模型就是好,当然看上去好是前提,如果看上去都觉得一般了,那肯定是不行)来分析。
此外,还要看到模型里是否有未来函数。如果是日内短线,信号就一定不能消失,每天的跳空缺口需要技术性的回补等等其它问题都是分析一个模型好坏的理由,一个好的模型是不怕任何测试与分析的。