这个过滤器怎么运作
把这套策略在每一个信号上本会产生的结果都记下来,不论是否真的交易了;这就是影子权益曲线。算它的一个移动平均,比如最近 20 笔交易的。只在影子曲线位于它的平均之上时才真正交易,否则就在模拟里交易。变体会改为减小规模,或者在一次达到设定深度的回撤之后暂停。
这个想法依赖一个假设:一套策略的结果是自相关的,所以糟糕的时期倾向于延续。如果结果彼此独立,这个过滤器就把好交易和坏交易一视同仁地拿掉,只是缩小了样本。
它能和不能做什么
- 如果亏损真的成簇出现,它可以在漫长的亏损状态里削减敞口。
- 它总会跳过一次复苏最开始的那几笔交易,因为曲线必须先爬回它的平均之上,交易才会恢复。
- 它造不出一个优势:一套期望值为零的策略,用它自己的曲线过滤之后,期望值仍然是零。
- 它添上参数——平均的长度和那条规则——而这些需要它们自己的样本外检验。
- 它要求跟踪每一个信号,包括那些没有交易的,而这在手工操作里很容易出错。
怎么诚实地检验它
在没有被用来挑选过滤器设置的数据上,比较有过滤和没过滤的两个版本,而且要看的不只是最大回撤:还有净结果、交易笔数和恢复所需的时间。一个在某一段期间改善了回撤、却在另一段吃掉大部分净结果的过滤器,不是一个改进。在动手搭这个过滤器之前,先检查交易结果的自相关,能显示出到底有没有什么东西可供它利用。
在 Senzoukria 里
应用没有内置的权益曲线过滤器。在自动回测里,策略的决策函数收到近期 K 线、它持有的头寸,以及一个由它掌管的状态对象,但收不到它已实现的盈亏;要复现一个过滤器,就意味着在脚本自己的状态里重新计算那些假设的交易结果,而引擎不会替你做这件事。结果面板的权益与水下图表,以及它 30 笔交易的滚动期望值,会显示一套策略糟糕的时期是否成簇到足以值得去检验一个过滤器。
相关内容
同一栏目
其他语言版本
常见问题
- 权益曲线交易能减小回撤吗?
- 有时候能,也就是当亏损按状态成簇出现时。它同时也延迟了一次回撤之后的重新入场,所以它可能降低总利润,而当曲线在它的平均附近来回锯动时,偶尔还会让回撤更深。唯一的判断办法是一次样本外的比较。
- 这个过滤器该用多长的移动平均?
- 没有标准值。短的平均反应快但会锯动;长的反应慢。这个长度是一个参数,应当在训练数据上挑选,并在它没见过的数据上评判。