如何判断量化模型的优劣
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何判断量化模型的优劣
一、程序化的理解
程序化一般分为两类模型,一类是趋势模型,一类是震荡模型,如果你想两者结合起来就要看自己的本事了,程序化需要不停的去完善,但千万不能追求完美。
程序化是一种工具,帮助你积累财富的工具,却不是一种暴利的赚钱方式,程序化模型有好坏之分,程序化赚钱的前提是有好的模型,程序赚钱的关键是坚持的执行,程序赚钱的精髓就是在确定最终使用模型之后,彻底的放弃你对金融市场的一切理解和交易技能。就像武侠小说里说的,想练成最上层的功夫,就应该先废掉所有的武功。
二、程序化模型的选择与辨别
如果有人告诉你他的程序化能在不长的时间内,让你的资金翻几番,那你要为他的言语或者他的程序打个折扣,但是如果对方又能拿出不错的图形或者非常漂亮的收盘测试结果放在你的面前,你又当如何说服自己是相信还是不相信?以下内容就是帮助你如何辨别好坏模型。
1.测试时间:一个好的程序化必须经得起时间周期的测试,如果一个程序化,结果很漂亮,周期却只有一两个月,不可信;
2.使用资金:很多人贴出来的漂亮测试结果,使用资金常常是80%或者其它百分比,但这些都是不合理的选择,因为金融市场资金管理很重要,在行情好时候,资金使用越高,收益越大,行情不好时,资金使用越高亏损越大,但我们无法去判断接下来的行情会如何,所以,历史测试的结果使用百分比的开仓方式是不合理,这也就是为什么,有时候会出现,资金使用率为80%时,测试结果是亏损的,而使用率为40%时又是赢利的。总而言之,资金使用时应该选择固定的手数进行测试,不管他的行情如何,永不加仓或减仓,来测试一个模型更为合理;
3.测试方式:开盘价和收盘价测试均有其不合理性,趋势模型一般以趋势逆转点为开仓信号,故较为准确的是:出现指令的价位。
测试结果的分析:
a.指令总数:也就是信号数,过高,说明震荡行情过滤不好,过低,说明风险大;如何判断信号数是否合理呢?那就只有不同的模型在同样的周期下的一个对比了;还有一个最简单的方式就是将指令总数/有效交易天数,以日内短线为例,一般一个有效交易日的平均信号数在2-5之间(此数据仅供参考);
b.利润率:总利润不用看,只看扣出最大利润的结果,必须为正,而且测试周期越长利润率应该越大,很多模型,测近期不错,测远期就不行,所以测试时应该尽量的去测能测到的最长周期。(当然因为行情关系也可能出现,长期比短期利润率低,但总体而言,周期越长利润率越高,才是好的模型的测试结果)
c.正确率:其它条件都完全一样的情况下,正确率越高自然越好,但也不用为了看到一个高正确率的模型而心动,也不用因为你自己模型的正确率低而担心,一般的正确率能在45%
左右就不错了,因为程序化的本来意义就是赚大亏小,例如,趋势模型在震荡的时候正确率自然会低;
d.最大亏损率:如果你是选择的固定手数,比如10手进行测试,你的最大亏损率最大应该不能超过10%,当然,如果你选择的测试手数多,最大亏损率可能有所提高。如果你选择80%的资金使用率,可能亏损会更大,当然也会有亏损的不大的测试结果,这往往和你的测试周期中的行情的一定关系,所以不值得过于依赖;
e.空仓时间:以日短线为例,空仓时间不能太高,太高,必然会错过大行情,当然,这一项不是最重要的,如果你空仓时间长,利润也高,错过就错过吧,错过不是过错,没赚到也不存在亏损的风险。
小结:
测试结果分析不能只看某一个数据,需要结合起来一起分析:指令总数不能多也不能少,周期越长利润率应该越高,正确率45%以上就可以接受,最大亏损不能过大,空仓时间可以自行把握。
如果一个模型做到了以上几点是不是就算一个好的模型了呢,基本上可以算了,但最重要的是我们还需要结合信号图形(此点需要一定的程序化经验,并不一定看上去好的模型就是好,当然看上去好是前提,如果看上去都觉得一般了,那肯定是不行)来分析,此外,还要看到模型里是否有未来函数,如果是日内短线,信号就一定不能消失,每天的跳空缺口需要技术性的回补等等其它问题都是分析一个模型好坏的理由,但是,一个好的模型是不怕任何测试与分析的。
三、程序化交易的执行
这一点没什么好讲却又不得不讲,很多有多年经验的操盘手,甚至一些机构,常常会对程序化交易提出一定的质疑。比如有人认为程序化交易好,就准备了资金进行了程序化交易,结果使用该模型交易时,正好碰上持续亏损,结果很可能就是决定放弃程序化交易。
这就是一个典型的程序化执行的例子,程序没有人性,我们在使用时就更不应该加入人性,如果你决定使用程序化就给自己一个时间期限(不管是真钱也好,模拟也好),时间不能太短,如果短也可以,必须在这段时间中,你要自己能分析出,是不是都能遇上基本上所有可能的行情,比如,测试三十天,遇到过十天的震荡,也遇到了好几天的大行情,以此来分析程序的好坏;绝不能因为几次的使用结果不好而去否认程序化,也不能因为几次的使用成功而完全信任,必须要有一定时间的观察与模拟,然后再到真钱的尝试,时间长短是小事,关键是是否经历过大部分的行情,从而选择一个最适合而不是最完美的模型进行自己的程序化交易。
一旦执行,你就应该忘记所有的金融市场的条条框框,你就是一个傻瓜执行者,聪明人在金融市场上不一定能生存,傻子在金融市场也不一定被淘汰。总之,没有完美的程序化,不要怀有追求暴利的心态去使用程序化,做一个合理的模型,成为一个傻瓜执行者,你就能变成一个轻松的富翁。