幸存者偏差,是一种常见的逻辑谬误。指的是只能看到经过某种筛选而产生的结果,而没有意识到筛选的过程,当我们在构建程序化交易的模型时,有很多参数和交易规则的确定都会依据历史数据的运行结果,因此忽略了被筛选掉的关键信息。当然在程序化交易中也存在一定的幸存者偏差。今天西部汇市小编就和大家讨论一下程序化交易中的幸存者偏差的问题。
虽然从历史数据全集中挖掘出某些特征,但是这些特征是否稳定,我们无法判断。这恰恰是隐藏着危险的,因为一旦我们得到某个因子,或者价格的价格运行规律在未来无法持续了,就会导致模型性能衰退。
如何对抗这个幸存者偏差呢?具体来说可以依照经济学和行为金融学的原理来检验模型的假设是否成立。但这事说来容易,实际操作却是困难重重。举例来说,如果我们在中大周期模型上,给予不同的股票、期货品种,不同的模型参数,是个典型的比较危险的事情,因为参数的意义难以找到强有力解释,特别是均线类模型的周期参数,如果你针对历史样本拟合得到参数,任何目标函数都难以对抗过拟合。
在找到规律前,大样本是尽可能稳妥的建模统计回测方案
过了上两关,就是非模型正常交易利润了,它是典型的幸存者,会产生绩效偏差。如果价格因为基本面或交易规则突变等因素,出现有利于模型运行的状态,产生了一笔极大收益,我们通常要剔除这笔收益,千万不要抱着太过乐观的心理,这样你很可能只会收获一个漂亮的绩效报告。
一个常见的例子是,期货中频交易模型,在超过3天的长假前都应该平仓,节后还应该给市场一段适应的时间,过些天再重新恢复信号值和仓位,或者依据市场运行,重新开新仓位。只有长线交易模型,才可以不平仓。过节平仓是不能违背的铁律。
最后一关是有仓位调整模型的交易顺序,存在幸存者偏差。如果你的目标函数是净利润,那依照目前仓位计算动态开仓手数的模型,一定会产生偏差。因为未来数据的运行会导致未来每笔交易的出现次序不一样,如果连续出现了不利的交易,必然导致资金快速亏损,可用于开仓的头寸变小。
即使是等手数开仓的模型,也会存在偏差。因为,即使最终净利润相等,如果用夏普比率、收益风险比、Calmar比率、最大回撤等作为目标函数去优化模型,由于交易产生的次序不一致,一定会在这里发生极大偏差,要记住,幸存者偏差大概率都是负面的,会给我们的实盘带来不利的影响,即使出现有利偏差,也说明你的模型统计有问题。
解决上述偏差的方法就是做回测报告蒙特卡洛模拟,因为过去的交易结果会以某种不同的顺序来重现,所以通过不同的顺序来排列这些结果,就能生成多种完全不同的净值曲线。
今天提到的这些统计回测幸存者偏差和应对方法,希望大家回去能好好吸收,细化回测。避免这些偏差可以让自己的理论绩效与实盘绩效更接近,从而使自己的绩效更具说服力。
TB程序化交易如何导入交易开拓者TB交易开拓者是一款专业针对程序化交易用户设计的程序化交易软件,它具有非常高效的数据运算能力,能够实现各种交易策略的编写,并进行期货、外盘等各类交易品种程序化交易;由于交易开拓者功能强大,专业性强,比较适合有一定的编程或软件使用基....
如何减少程序化滑点对程序化交易影响本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.ksxb.net/tnews/4508.html