关于构建策略和回测的几点思考

1、我们构建一个策略时,要清楚其背后的逻辑,即产生买卖信号的逻辑,这个逻辑是很重要的。因为只有我们知道背后的逻辑,才能对这个策略做出有效的评估,对一个策略的有效评估不能仅仅依赖于回测结果以及短时间的模拟或实盘的效果,因为未来很可能就不成立了,因此,还有很重要的一部分就是策略的逻辑,买卖逻辑才是让我们知道策略的上下边界的地方,毕竟是真金白银,一个黑箱子策略带来的风险太大。当然,由于市场的复杂性,最本质的逻辑,我们始终只能逼近,无法真正捕捉,所以,最终实际上就是看投资者对策略的黑箱部分包容有多大。

2、一个策略思想,会来源于两部分:变化的和不变的。其中变化的指的是那些比较表面的规律,这些可以从历史的价格形态规律和走势去挖掘,而不变的则是更加深层的东西,这些指的是人性、市场微结构、数学和统计原理等。变化的往往是短暂的,可能只会在市场上持续一小段时间,并且也没有什么说的太清的逻辑,而不变的则是持久的,很多变化的东西往往也衍生于这些不变的东西。因此,如果策略是独有的非公开的,此时市场有效性对这个策略就会失效,那么一个持久有效的策略往往就是更多的来源于这些不变的东西。当然,后者的策略往往也更复杂,因为从更本质的信号到产生买卖信号这个过程需要更多的判断条件和路径,这里的复杂和通常所说的参数太多的复杂性不一样,前者往往是逻辑复杂,但是逻辑正确且一体,这种复杂不会有什么问题,只要逻辑正确就行,而后者的复杂往往由多个逻辑组成,不是一体的,并且每个逻辑的有效性和时效性还不一样,对于这种多个逻辑并行组成的策略,比如多因子策略,就要谨慎,因为逻辑的有效性不能太弱,不能太浅,不然容易造成逻辑太多参数太多带来的优化过程中的过拟合问题。

3、我们用历史数据进行回测,其实一个隐含的前提预期就是历史会在未来继续上演,至少部分会,不然,我们回测就变得毫无意义了。因此,严谨的讲,我们回测的应该是策略里面我们相信会在未来继续上演的部分,而对于我们可能或者我们不确定是否会发生变化的部分,我们可以不进行回测,因为这反而会影响我们想对确定的部分收益。当然,这会面临两个问题,一是策略是否可以实现这种回测的拆分,这个大部分策略只要剔除在不确定是否变化的逻辑部分即可;二是实际上,我们其实很难判断哪些是会变化,哪些是不变的。当然我们会有自己的一个预期,如果没有预期的部分,我们甚至都不会写进策略里面,只要写进去,自然是有预期的。关键在于,这个预期是我们对未来市场的预期,这时候这部分预期逻辑就不用加到回测里去,因为这时候历史对预期没有意义。所以如果是基于市场预期构建适应风格的策略,那么回测的意义其实就不大,这是回测的局限性。当然除非找到和预期相一致的历史时期,这个操作性其实不是很强。

4、回测陷阱:

  • 数据透视偏差:即模型噪音参数太多造成的优化过拟合,要注意对于逻辑有效性太弱的参数就别引入,对于多逻辑并行的参数,并不是越多越好,除非是挖掘到更本质的参数;此外更重要的是要注意样本外检测
  • 未来函数:在策略中要注意避免引入未来函数或变量,不然实盘时,要对策略进行去未来化处理,比如变量滞后一阶,这样对策略的有效性会产生影响
  • 回测时要用近几年的数据:有时候市场的制度和人们的投资认知会随着时间发生变化,这样有些策略在以前适用,在近几年就不一定,同样的,以前不适用,也不代表近几年就不适用,要尽量适用近几年的数据回测,以减少时间风险
  • 生存者偏差:由于很多策略会用到低买高卖的方法,但是往往一些价格偏低的公司会面临破产退市风险,但是回测时的历史数据是不包括这些破产退市的公司的,而剩下的那些存活下来的公司都是最后都恢复健康价格回升的公司,这显然就是利用已经发生的历史事实来做投资,这个在实盘是不行的,因此用这些生存下来的公司做回测会夸大策略的效果。这个问题其实在A股市场不大,因为上市不容易,退市也不容易,所以其实退市的股票不是很多,欧美市场往往这个问题比较需要重视。

5、我们可以粗略的把价格走势分为趋势期和震荡期,而在这两个时期的策略也应该是不一样的。我们知道,有些策略是趋势跟随的,这些策略在震荡期的表现往往就很差,有些策略是均值回归的(当然均值回归不一定就是震荡期的,在趋势期也可以有均值回归,因为趋势期也会有偏离均值的波动),在震荡期的策略就往往在趋势时表现很差,为什么呢?因为不同时期的触发的买卖信号是相反的。因为在趋势期,会预期趋势继续,当然是跟着市场的价格走向买卖,而震荡期,因为预期会回归反转,所以当然是反着来,当价格升高,则不是买进,而是卖出。对于前者,比如有双均线策略,而后者,比如有RSI策略,两者是不一样的。因此,构建策略时,要注意策略适用的时期。

猜你喜欢

转载自blog.csdn.net/S_o_l_o_n/article/details/82937121
今日推荐