古期-如何判断程序化交易策略的时效性[古期心得]
[p=30, 2, left][b]问题[/b]「如何判断一个程序化策略失效还是正常失误,如果失效的话,如何判断是需要调整参数还是完全放弃策略?」[/p]
[p=30, 2, left]
回答
「此问题确实关键而难以抉择,可藉由实务界的经验规则,或学术界的量化检验。首先谈实务界的规则,在论坛中有篇探讨交易系统生命周期的文章( [url=http://www.cxh99.com/2012/09/19/7315.shtml]http://www.cxh99.com/2012/09/19/7315.shtml[/url] ),提到…[/p][p=30, 2, left]「… 根据Robert Pardo(在国外系统交易界还算有名的一个人)的建议是这样的,如果一个交易系统是经过良好的design,良好的最佳化,没有over-fitting的情形:[/p][p=30, 2, left]1.如果是用2年的历史数据来设计出来的系统,而且在这2年的历史数据都有不错的表现的话,应该会有6-12个月的生命周期。
2.如果是用5年的历史数据的设计出来的系统,而且在这5年的历史数据都有不错的表现的话,应该会有1-2年生命周期。」
这个答案可以参考,但我觉得时空背景不同,不能一概而论,且没有科学根据(在该篇文章的后续讨论串中,我也做了响应),但提供一个可以接受的观念,「回测期间与可用期间成正比」,一般做当冲、短线、高频交易,回测只需取前几天。即,你使用的周期越小,持仓的平均时间越短,那就可以用越短的数据来进行测试,这也是古期在培训课程中有讲过,日内交易的,一般测式一年的时间是够用的,但隔日的,就要两年或以上的原因。[/p][p=30, 2, left]
另一个较科学方法是使用统计检定,依据要检验的统计量,做均值、变异数与比例值的检定,用简单的话(不带学术术语)说,如果要确定该策略之「历史回测过程报酬率序列」(例如回测期间交易的报酬分别为10%, 14%, 8%, -3%, 5%, -7% ….),与「运用策略以后的报酬率序列」(-2%, 5%, -6%, 3%...)间有无「明显」变差(一般所谓明显通常意指95%的可能性),则做所谓的「均值检定」;均值检定如果样本数(即前述的报酬率值数目)小于30采取小样本,大于等于30采大样本检定,因为如果要等到策略运用过程收集到30个样本,恐怕亏损连连了,因此通常采取小样本。
再则,策略运用过程报酬是依序产生的,有2个报酬就可以作检定了(验证是否失效了),但此统计方法在样本不足时也不会遽下定论,因此只要顺着产生的报酬数据依序带入检定,检查是否碰到临界值(失效的界线)或P值(依然维持原有绩效的可能性),就可以决定是否放弃该交易模型了。(同理,也可以用变异数检定检定风险特性是否改变,用比例检定检定胜率是否改变)。[/p][p=30, 2, left]以上这种方法不太适用普通投资朋友,因为他的计算繁杂本身就是一个较大难 度。所以,对于策略的失效与否,不妨用实盘中的一些数据,如近一个月远差于策略以往测试,连续两个月远不如策略以往测试数据的话,就可以基本认为失效了。
[/p][p=30, 2, left]至于失效以后如何呢? 有些人认为,应该修改参数,有些人,认为应该放弃策略。我这人较中庸,古期认为,要按照你建立策略的思路来分析对待。这个范围太广了,这里不好讲。但我坚决反对,为了测试数据,胡乱用什么软件功能上的参数优化,那个得出的数据,很多会使得参数过从优化,而使得未来效用不大,甚至反效用。策略参数,思路的制定,我主张比历史经验,平常经验中提取。[/p][p=30, 2, left]
至于可否使用时间数列方法,我认为因为是非定频时序数据,除非这领域的方法有突破(而我不知道),否则用处不大」[/p]
页:
[1]