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