分享

为什么回测效果非常好的策略实盘却不行?

 pgl147258 2015-04-09

【李腾的回答(27票)】:

原因1:用到了“未来信息”。回测时,很容易在每个投资时点用到其后的数据,这样会使策略回测表现虚高。实盘中会发现策略执行不了。

原因2:过度拟合。例如你用过去T日的平均收益率作为未来投资期收益率的预测,当选择不同的参数T时,有时回测效果优于基准,有时劣于基准,你选择其中回测效果最佳的那个T,自然会有尚佳的表现。如果你的策略带有不止一个参数,那么就能优化出效果更好的最优参数。可惜的是,最优参数拟合的通常是训练样本中的随机噪音,不是规律。所以一到样本外就失效了。

【杨改之的回答(33票)】:

本来只是看到 @清醒疯子 回答了这个问题,顺手抖个机灵,没准备把回答说明白,懒得很。但是想到之前作为某些方向的小白在知乎里也受益颇多,因此就多写一些吧,算是回馈社群,也算是领证结婚给大家发喜糖^_^。

我的建议是,依次了解并检验下面的内容,原因是在我的经验里,这些问题出现的概率是由高到低的:

1. 算错了。不是我乱回答好嘛,是血的教训啊。在我做量化测试的历史里,回测出现有显著盈利能力结果时,95%以上是这个原因导致的错误。例如,某个负号在计算时漏掉了、百分号忘记除了、不同语言下迭代0和1起始点的混淆,等等等等,往往会给出一个好到我觉得必将改变世界的结果。所以本人现在都养成了只要结果很好,一定先彻查是否算错的习惯。

顺便给个我用来判断结果是否过好的检测手段。鉴于我的交易策略跨度比较大,因此需要一个适用性广泛的手段,我的做法是用期望为0的正态分布模拟资产回报率,首先使用历史数据估计出标准差,然后模拟n段测试期等长的回报序列,从而得到n个交易策略盈亏结果,如果实测结果在这n个结果的尾部两端,就说明结果过好或过坏。这是单资产的交易策略,如果是多资产,融合相应的组合流程即可。当然也存在一些变种,例如求得概率结果而非直观的盈亏结果等进行判断。不过本人大部分时间都不会做的那么详细,受打击的次数多了,稍微看看都知道是不是有问题了。

2. 未来函数。其他答案中多次出现了这个提法了,说明确实是一个根本性问题。未来函数的杀伤力在于,它会出现的不知不觉。例如一个著名的分析师语言:“在熊市末期积极建仓,在牛市末期卖出股票”,我要是知道这是末期了,我还听你这些话干什么啊。还比如做量化的时候对曲线的平滑、整体模型的估计、统计特征的提取等等,都应该注意未来函数的出现。

要控制它的出现,唯一要做的就是小心,因为逻辑中的错误,比前面说的“算错了”更难以检查出来。我自己的经验是,在编制测试流程时严格按照时间顺序进行,样本内的计算就强迫自己彻底屏蔽样本外的数据。一句话,经验是财富。

3. 存活者偏差。这是“未来函数”族群中的王者,单独拿出来说。下面的内容来自维基百科:

幸存者偏差(英语:survivorship bias),另译为“生存者偏差 [1]”或“存活者偏差”。常用俗语“死人不会说话”来解释其成因。 意思是指,当取得资讯之管道,仅来自于幸存者时(因为无从由死者获得来源),此资讯可能会存在与实际情况不同之偏差。常见于财务金融领域之文章。

此情况常见于投资理财之节目或文章,例如当投资理财之电视节目仅邀请投资成功者上节目谈论其成功投资之经验,观众会将该成功投资者投资之方式,视为高成功率之投资方式,但观众并不会在电视节目看到以相同或类似投资方式,但最后失败的投资者,因而高估此投资方式之成功机率。

用指数或者全市场样本进行长期交易策略测试的同志们,请一定小心指数成分股的变更和股票退市对策略的影响!

4. 过拟合。先给定义,来自百度百科:

为了得到一致假设而使假设变得过度复杂称为过拟合。想像某种学习算法产生了一个过拟合的分类器,这个分类器能够百分之百的正确分类样本数据(即再拿样本中的文档来给它,它绝对不会分错),但也就为了能够对样本完全正确的分类,使得它的构造如此精细复杂,规则如此严格,以至于任何与样本数据稍有不同的文档它全都认为不属于这个类别。

标准定义:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比h’小,但在整个实例分布上h’比h的错误率小,那么就说假设h过度拟合训练数据。 ----《Machine Learning》Tom M.Mitchell

好吧,数据挖掘的人写的东西,看来国内搞金融的人都高端大气不愿意用百科,有空我把wiki的英文翻译过来好了。针对量化交易的小方向来说,就是说交易策略中参数用多了、或者交易流程设置过于复杂了,导致交易策略过度提取了样本数据中的某些显性信息,而误读了整体数据中的真实信息。如果你有较好的统计基础或者计量基础,你应该明白过拟合的含义,学界为了R方和结果显著性不顾一切乱来的太多了,负面例子不胜枚举,如果不太理解请补课。

5. 泛化能力。与“过拟合”关系密切,在绝大部分情况下就是“过拟合”问题导致的结果,不过含义是截然不同的,且存在例外,因此单列出来。最出名的例外就是现在红火到爆的Deep Learning了,实际上就是隐层数增加的人工神经网络,所以亦称Deep Neural Network,虽然由于隐层的问题,参数一度多到无法正确估计,但是有了Autoencoder之类的处理方法之后屌丝逆袭杀掉了SVM。最近去百度的吴恩达就是这方面的专家,更不用提Hinton他老人家,Google的科技吉祥物好嘛。扯远了,回来,下面的定义来自百度百科:

概括地说,所谓泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。
好吧,这还是搞数据挖掘的人写的东西。用我们这个方向上更易理解的话说就是:样本内的数据的某些特征规律,在样本外的数据中也存在,这种特征可以提取出具有盈利能力的交易策略。因此,这种存在性越强、或者说样本外盈利能力越强,泛化能力就越强。

在我个人的交易哲学中,已知数据全部都是样本内数据,人为划分样本内外的做法是学术术语,有可能会产生自欺欺人的后果。个人看法,仅供参考,而且为了交流方便我仍然会在下面使用这种学术说法。为了将这种泛化能力的欺骗性尽量降低,我的做法是在某一段样本期内划分样本内外,然后将这段样本期作为样本内,在另一段时期做样本外检验,依此迭代,能做几层做几层。抱歉我暂时没法把这个流程说清楚,有灵感了我来改答案。但是确实很有效,一般做两层,大部分好策略就不好了,根本不用实盘浪费时间浪费钱。

泛化能力是量化交易盈利的灵魂,涉及到哲学和技术两个层面。有空我会增加这部分的内容。

6. 真实交易环境限制。@Awing Xu 写的很好,请移步参考。

闪烁信号的问题主要出现在中长期交易中,大部分是使用日度数据进行回测造成的。解决方案包括设定一个与交易点差距的阈值,使得交易行为的到达条件不那么敏感;或者固定在一天的某个时间点监测并进行交易,忽略其他时段的价格变动,等等。

实际交易中不可能成交的价位。

使用市场单,价位变动,单个价位容量不能满足,市场剧烈波动影响成交价。

场内规制,庄家或报价商打止损。

这三个我统一归纳为交易中的摩擦,不知道有没有理解错,如有,致歉。第一个我展开说一下,由于下单环境的不同,单子到达交易所的时间也就不同,较大的时间差往往造成策略计算时的价位不可能成交的情况,波动大时尤甚。另一种情况则是流动性较低时,买卖单无法被对手及时匹配所导致的价位变动。这一问题可以通过提高议价能力、优化下单和计算环境等来缓解。第二个和第三个问题,主动的解决方案包括狭义的Algo Trading所代表的分单建仓等技术,以及对交易规则的合理应用等。这是另一个大的研究方向,不作展开。

与闪烁信号主要出现在长期策略不同,摩擦在高频交易中极为明显。高频中稀薄的盈利往往会被大量摩擦蚕食,进而导致理想环境下的盈利策略失去盈利能力。实践中,一个优秀的策略测试流程一定会考虑到摩擦因素,而针对套利类交易来说,对于摩擦损失的估计和预判甚至是整个策略的核心所在。

真实交易环境的限制涵盖很广。断电、断网、计算机故障等因素也是其中之一。肯定还有其他的问题限制,欢迎补充。集思广益,不甚感激。

7. 策略周期。策略是有周期的,站在风口上,猪都会飞。在趋势行情下,盘整策略会亏,在盘整行情下,趋势策略会亏。那我用技术手段,区分趋势行情和盘整行情呢?这是对未来行情的预测,提前固化的预测手段是具有时效性的,依然是一个大的周期问题。存不存在不会过期的盈利性策略呢,我认为有,具体的内容我会在后面混沌等内容中展开来讲,因为太哲学。目前而言,我寄希望于找到一个有效周期足够长的策略,我还没有找到,但会继续努力。

实际上,策略周期是“泛化能力”在时间上的着重体现,基于这个思路,我对这个性质的检测方式仍然是两层的样本内外检验,只不过会对样本期的长短、时段变化更为关注,研究这些变化带来的结果的变化。到了这里,我已经开始感到自身的软弱无力,交易是一个看天吃饭的活计,量化交易也不例外。

-----------------------

马上要写混沌、社会学、哲学的东西了,有点畏惧,歇一歇先。

混沌(不是挂羊头卖狗肉的那些东西,只是混沌的理念:长期不可预测)

心理史学(借用于科幻小说)下的多方博弈

本来想把哲学思维继续一下,但是考虑到那更偏向于另一个问题,市场为何会波动以及波动特性,算了。

【知乎用户的回答(16票)】:

谢邀,实盘不理想有以下几点

策略中使用了未来函数,实际交易中不可能成交的价位。

闪烁信号,回测没有闪烁的问题,实际交易中信号出现然后消失了,但仓位已建。

使用市场单,价位变动,单个价位容量不能满足,市场剧烈波动影响成交价。

手续费和价差没有包括在回测中,高频率交易尤其敏感。

使用某一时间段市场波动,不适合现市场波动,回测要检验多种市场状况。

还有因素如场内规制,庄家或报价商打止损。

长期策略问题较少,高频问题较多。

。。。。。。。。。。

看了大伙的回答,发现少了回答一个重大问题,数据拟合。 为什么遗漏了,是因本人觉得这是交易员和程序员开发策略的分别,国内怪圈是公司开发策略,编程员,数据发掘,交易都是同一人,不知各位情况是否一样,我是看各公司招聘条件是这样的。扯远回正题。

市场只是惊人相似,不是重复。混沌理论中分型指明这一点(混沌是物理理论,请参考物理学正解),所以策略开发时不应参数优化,这是本人理解,使用一个参数是有理由的,客观的。这里的客观是某些统计模型计算出的参数或不变的条件。就算主观的参数也比优化的好,思路出来的结果,不能使用优化去改变。尽可能使用相对不变的条件作为策略开发,如果使用的条件是不断变化的,怎么可能设计出有统计意义的策略?

不知理解正确与否,请指点。

【陈鹏举的回答(4票)】:

有可能是因爲過度優化。

規則越是簡單的策略,比如簡單的MACD策略,實盤的結果越容易接近於回測。

使用的時間間隔單位越大的策略,實盤和回測的效果也越接近。(因爲濾掉了很多“噪音”)

對參數設置很敏感的策略,稍微調高調低一下參數結果就大相徑庭的策略,也很難期望其在未來能執行得很好。

在對歷史數據回測時,如果使用了複雜的規則,加上各種奇奇怪怪的“常數”,加上反反覆覆地優化調整迴避了歷史數據中出現過的各種“陷阱”,那麼這樣優化出來的策略,很可能在實盤中會表現大大低於預期。因爲這種方式優化出來的策略只適用於特定的這個歷史時期。

如果一定要用複雜的策略,那一個緩解這個問題的辦法,一是用更長時期的歷史數據回測,二是在其它品種上用同一策略回測。該策略必須在其它多種品種中表現都不會太差,具有一定的universal通用性,才能期望該策略在本品種的未來市場上同樣有效。

【刘沫沫的回答(2票)】:

未来函数

过度拟合

影响市场

这三点就不细说了。上面的回答非常好。说个观点供大家参考:

每个人只看得见自己想看的东西! 而这个并不是真相。

我所看到的和解决方法:

1.对于期望值为正的交易策略,做短线使用最近的交易周期找到参数。参数和品种和时间有重要的关系,样本选择很重要。同理,长线选择长的交易周期的参数。我觉得过度拟合的解决方法就是随市场变化而变化参数。

2.对于一种交易系统,多品种和多周期的使用能发挥出他的效果。一种品种的样本测试非常好,而市场变化该品种失去流动性了,长时间的震荡能把趋势追踪的追随者止损致死!

3.在交易策略中,没有融入资金管理的概念,就是策略没问题,但是过度的重仓或是长时间的不符合预期的行情把你的账户爆仓了,或者你没有执行下去的信心了,一波大行情浩浩荡荡让你不知所措。

暂时想到这些,以后补充吧..

【清醒疯子的回答(2票)】:

1?历史不会重复。前三年赚钱的品种,可能后三年亏钱。前三年的市场特征,可能跟后三年的市场特征不同。

2?实际操作环境会比测试时恶劣太多。

3?手贱影响不小。

【葛枰的回答(1票)】:

我在编策略时的一些思考,不是科班出身,想法可能跟他们不同:

1未来函数

2过度拟合造成的样本频率太低

这两个我不说了,也遇到过。

3瞬时波动造成的k线动作。如果你是低级别k线策略,在流动性不高的市场,遇到这种波动是无法交易的,因为容量低。如果是高流动性商品,但是打压严重,或者就是对倒的利益输送,在买单卖单上你介入不进去,除非你的是是自动下单而且通道好,打个时间差。

4如果短期策略必须对介入价格非常明确,这里不是说高频,不能存在人为的干预,这种买入卖出非常明确,是cross不是大于小于。

5如果是中长期策略,经典的问题就是人的问题,能坚持么?人对他的运行影响大不大,让一个什么都不懂的能参与么?回撤你应该是考虑了,也不说了。

6买卖价位上是否存在某周期内低点,或者某周期内高点的问题,这一定意义上也是未来时,我不知道你做的什么期货或者股票,股票的话这点尤其很严重,介入点选择为当日低点,这也是用未来时,用的话必须选择很大的滑点,或者采用分批进场。

我这个民间投资者就是想到这么多,给个建议,按收益排列交易数据后,按时间排列统计,你会有别的发现。最后预祝题主发大财!

【李承素的回答(3票)】:

先说一下对已有回答的不同意见:

1、过去不能代表未来。事实上我们做交易大部分流派的基石就是”已有的事后必再有,已行的事后必再行,日光下并无新事(《圣经.传道书》)“。只不过策略本身可能在过度拟合等方面犯了错误。

2、滑点。策略的周期越长,越偏向于高赔率低胜率的趋势系统,滑点的影响就越小。这个一般不是实盘出问题的主要原因。

3、流动性。这个一般在回测之前就要选好,如果是高频策略且准备大资金介入,就不要在半死不活的市场品种浪费时间。

再补充几个没提到的,都是实际经验,分享讨论一下:

1、回测周期匹配的问题。如果实测周期与回测不匹配,误差就会很大。回测较短周期的数据,常常因为事件的影响或短期内大趋势的影响等,导致“效果很好”;而回测十数年以上的大周期,实盘策略短时间内又看不出效果。这是假设你模型本身没问题,且具有长生命力。

2、模型本身的问题。参数越多的模型,死的越快,需要不断更新;而非常简单的策略,却可能是市场中的”永动机“,最多沉寂几年,便又再生。所以想要策略长生不老,需在优化和过度优化中做个选择,也可能是在收益率与策略生命中的选择。

3、资金管理的问题。回测只是解决了出入场信号的问题,要把仓位管理加入到回测当中。如果回测和实盘都使用同样的资金管理系统,偏差不会太大。

4、心理。大家都提了,但是再多的强调也不为过。如果纯自动交易,则不存在。

【杨影枫的回答(3票)】:

@杨改之在理论方面其实答得已经相当全面了,我就从实际交易经验来说说平时如何对策略进行回测和未来效果预估。

1

回测结果来看,首先如果你的策略超级赚钱,年化收益率/最大亏损值能达到20倍以上,每年获利都超过200-300%,那么最大的可能是——————你用到了未来函数。仔细检查流程,看是否在某个环节会用到了在实际情况中不可能得到的市场信息。比如在一分钟开始阶段就用到了本分钟的最高最低价,或忽略了K线内最高最低价产生的先后顺序。最好的杜绝未来函数的方法是在回测时编程采用流程控制,将行情数据每个tick推入,得到交易结果。

2

检查参数使用数目。很显然,参数使用越多,策略泛化能力的越差。就日内趋势类策略而言,在回测时需要遍历的参数最好不要超过三个。当然具体还是要视策略本身的构造和样本内外测试结果而定,不能一概而定。

3

交易频率判断,交易频率越低,策略的泛化能力越差。交易频率低,说明策略本身就是参数优化后找到的特例结果。

4

观察本身市场结构是否发生了变化,策略本身都有自己的适应点和不适应点,进入市场后很可能正好运气不好,赶上了不适应期。所以要对本身策略有一定的宏观理解,来判断当前行情是应该赚钱还是亏钱,判断如果亏钱是因为本身行情层面不给力还是策略层面出了问题。

5

其他交易细节,比如报单时延、期望成交价格拿到概率、平均滑点、其他交易规则限制等等等等就不一一列举。

【知乎用户的回答(3票)】:

先膜拜一下LZ,问了好多问题,好勤奋。

开始正题。

像未来数据,滑点等显而易见的原因我就不多说了,这些都很容易理解。

主观投资方法也不多说了,因为和主题无关。

其实一直困扰我的问题更有点像“哲学”问题:

这个问题的一种提法是:

我们能用数学模型预测未来吗?

换一种我认为更好的问题提法:

我们能用数学模型逼近乃至完全描述世界(金融产品)的运作规律吗?

第一种提法是第二种提法的必要非充分条件。

换句话说,

如果我们能用数学模型逼近世界(金融产品)的运作规律,

那我们就有了真实的预测能力。

简单一点,我用“模型对规律的逼近度”这个描述来替代上面的描述。

为了解释这个问题,要先阐述三个我自己的观点。

一、物理世界和人类社会的建模,就规律逼近度上讲,本质上没有区别,只是强弱的问题。

比如,物理模型的规律逼近度会很强 —— 牛顿三大定律那么好用;

经济学的规律逼近度就差很多,经济学的预测能力,大家都懂的。

所以简单说一个模型行不行,那是不科学的。

比如说牛顿三大定律就是真理,经济学就是狗屎,很不理性。

我们真的只能说(乐观估计):“这个模型有多行?”

二、模型的规律逼近度只是度量相关关系,而非因果关系

大部分人,包括我自己在内,未必真正理解什么叫做因果关系。

在经济学中,老师经常告诉大家,要先寻求经济意义,再进行建模。

相对层面上,这样看起来确实很有效。

但往深了想,我们所谓的“意义”,未必那么有意义。

举几个例子,也许会更容易理解。

为什么苹果会掉到地上?

牛顿说,是因为有地球引力。

爱因斯坦说,是因为地球附近的空间弯曲了。

我说,因为有一群无法看到的调皮神仙,会把每一个苹果按到地上。

这个例子告诉我们说,所谓因果关系,其实跟我们看问题的角度有关系,而这个角度是我们可以自己臆造的。用比较现代的语言来讲,可以弱弱理解为“假说”(并不准确)。

再举一个例子,“雄鸡一唱天下白”

这两者明显不是好的因果关系,

更好的(未必是真的因果)“因果关系”是,

太阳出来了,所以雄鸡叫了,所以天下白了。

这个例子告诉我们,很多有明显相关关系的事情,很可能并不具有我们想象的因果关系。

再举一个例子,“种豆得豆,种瓜得瓜”。

可是,种豆未必得豆,种瓜未必得瓜呀。

如果天气不好,种豆也不会得豆。

如果土壤很差,种豆也不会得豆。

如果没有水,种豆也不会得豆。

所以天气、土壤、水等等缺一不可。

那么凭什么说“种豆”跟“得豆”是因果关系呢?

我们甚至都不能赋予“种豆”这一因素更大的权重 —— 因为任何因素都是缺一不可的。

这个例子告诉我们,我们往往以为的主要原因,从绝对理性的角度讲,其实只是我们的“近视“和偏见。

所以因果其实是非常复杂的事情,用数学或者逻辑的方法实在是没办法搞清楚的。

然而,好消息是,对预测来说,我们也并不需要搞清楚因果关系才能赚钱。

我们只要知道雄鸡一叫,天就大概率要亮了,这样就已经足够赚钱了。

所以从内心深处上讲,我是比较反对花太多时间讲经济意义、逻辑道理的,又没用还特浪费时间。

(但是为了说服别人,我经常也装模作样地说一些道理和意义,还听起来都特别有道理,哈哈。)

三、假设的实证比推理过程更重要

学过经济学的都知道,所有的经济理论都是先有一系列的假设,再通过数学推理得到的。

在这里,很多人往往会有一种倾向,总觉的那一系列的高大上的推理是最重要的。

但在实际中,恰恰相反,假设的实证最为重要 —— 有多少人还记得每一个理论背后的假设?

问题的关键是,现实肯定不会完全满足假设条件。

那么这个差距究竟会对模型造成多大的影响?

这其实才是实际投资中的核心问题。

但这些问题在传统经济金融学中,往往涉及的非常少(也可能是我孤陋寡闻)。

综上所述,要进行量化投资建模,步骤其实是:

1. 建立相关性假设(不是因果关系),比如A -> B

2. 量化描述相关性假设

3. 实证(不是推理)假设的历史有效性

4. 判断假设的未来有效性

我们用一个简单的趋势跟踪策略来描述之:

1. 相关性假设是,如果出现了较大的趋势,那么趋势会大概率延续

这里有一个很大的陷阱是,老是想通过什么羊群效应或者高大上的行为金融学去找解释,找原因,不信的话,可以试试看,现实的耳光会无情地扇在你的脸上。

2. 我们简单一点,上穿均线买入,下穿均线卖出。

3. 哇,回测结果好棒!

4. 实盘亏死了T_T...

问题出在哪里?

1. 趋势会延续这个相关性假设真的很有“规律逼近度”吗?

2. 量化描述没有别的更好的方法吗?

3. 回测是唯一标准吗?

4. ......

其中第1,3点是最难的。2也不容易,但相对简单。

对1来说,用数学的方式没办法证明,最多证伪。

2是数学建模的内容,水平有限,也不多说了。

3是我想讲的重点。

先举一个极端变态的例子:

我们现在已经知道今天每一分钟的股指涨跌情况:

我写出以下策略:

if(time=9:15:00)

买进,持仓一分钟平仓卖出

if(time=9:16:00)

卖出,持仓一分钟平仓买进

if(time=9:17:00)

....

总共有270个。

然后根据每分钟的实际情况,把买进或者卖出,填上去就可以了。

如果你更勤奋一点,可以再加上日期,扩大样本,一直写下去:

if(time=20140611 - 9:16:00)

....

回测百战百胜呐!

很变态吧,很无语吧。

先不要着急批判这个策略。

实际上,有时候很多策略看起来非常有逻辑道理,

但实际上已经掉到这个陷阱里面去了,还浑然不觉。

这个陷阱有一个很好听的名字,“过度拟合”。

如何避免过度拟合?

我的结论是,数学上,我们只能给出一些置信度什么的,

但真的没办法完全排除过度拟合的嫌疑。

极端一点,牛顿三大定律,

其实也是对世界的拟合,

只不过拟合的置信度很高 —— 卫星不都转得好好的吗?

但是到了微观世界或者光速世界,就又完全不一样了。

怎么办?

有人会说,那我分两组样本,一组建模,一组测试,不就好了。

可是,这也一种拟合,因为不好的策略在你测试的时候,也被扔掉了,所以本质上并无差别。

再高级一点,还有很多看似好用的标准:

参数优化的时,收益对参数变化不能太敏感。

收益在参数空间中的分布是比较连续的。

等等。

这些有用吗?我觉得未必。

另外,还有一个概念,很多人容易忽视:

为了解释这个概念,我们建立一个简单的模型:

假设我们只买入,一段时间后卖出。

我们的目的是为了挖掘A->B的模式,

其中A代表一种技术形态,B代表买入后收益的分布。

目标就是:在样本中找到尽可能多的A,让B对我们更有利。

在做这件事情的过程中,

很多人只关心如果出现A,再出现B的概率。

但事实上,有一件事情非常重要,

那就是A->B在整个样本中的概率有多少。

很多人死在这个上面了,特别是高频策略中。

为什么这么说?

先举一个简单的例子:

我们做一个策略:

在一分钟线上,如果股指一分钟上涨超过2%,我们马上卖出,持仓5分钟后卖掉。

这个估计只会交易一次,就是光大8.16事件那次。

然后赚钱了。

有人会说,不对呀,你的交易样本太少了,只有一个,没有统计意义。

我承认,没有统计意义。

但事实上,交易样本绝对数量是一个标准,还有一个标准是,交易样本占整个样本空间的比例。

比如如果,你有10亿的样本 ,

你找到了一个交易1000次的策略表现很好,

但由于1000次在10亿次当中的比例实在太小了,

我们完全有理由怀疑,这只是随机效应。

很多高频策略,失效极快,

未必是跟市场变得有效有关系,也许策略本来就无效。

这个判断标准在关联分析中叫做支持度,同样地,也有置信度。

当然,支持度,置信度也都是人为设定标准的。

那么什么标准最合适?谁都不知道,只能凭运气和经验。

总之,由于科学理论的只可证伪性,连牛顿三大定律都可以失效,

那么回测很好,实盘失效那实在是太正常不过了。

---------------------------

PS:

我本人是从相对精确的计算机科学走到量化投资这种模糊科学的,

以前习惯了用精确的形式去描述一件事情,当涉及到模糊描述时,

我内心其实也是有点挣扎,那种不能完全确信的感觉如同魅影。

这也直接导致了我在使用回测很好甚至实盘很好的策略的时候,

都战战兢兢,如履薄冰,总觉得不那么靠谱。

希望有高人能帮忙解惑,不胜感激。

【知乎用户的回答(1票)】:

too good to be true,这句话从来不会错,恩。谢邀。我记得相似的问题知乎已经有了,为什么又……回测只是交易策略开发的一小部分,大部分的回测都是不严谨的,要不然citadel花那么大血本存数据干嘛……况且市场变化那么快,去年能赚钱的策略今年不赚钱很正常

【知乎用户的回答(0票)】:

没有永动机

【兰色的回答(0票)】:

我必须认真回答一下这个问题,又要避免太长

首先, @清醒疯子 说的不对,历史会重复,这是我们进行技术分析的基础,专业的说法是“历史不会简单的重复”所谓简单,这里面学问大了,和社会主义初级阶段中的初级一样深不可测

你想弄明白为什么回测和实盘不一样,答案其实在回测和实盘的区别里

1、实盘是盲人摸象,回测至少你大概知道之后的结果

2、实盘里你没有足够的耐心,因为回测你可以在几分钟内走完几年的k线,主要的差距在心理变化,而心理变化比技术重要得多

3、实盘你有真实仓位的心理压力,回测你也没有

4、如果你不是利用真正的回测来做单,而是打开k线,不做遮蔽,,看一下顶底,找一下顶底的特点,然后对自己说顶底都符合我的判断,我应该下单、平仓,等等,那之前的1-3你都不用看。

【Jameswang的回答(0票)】:

有的策略对盘口的micro structure要求很高.比如股指跨期.如果回测,很多单子都能成交.实盘的时候,大家都在抢啊.那回测的就肯定傻了啊.

【KaiserLi的回答(0票)】:

坚持的时间不够长,资金不够多。

【知乎用户的回答(0票)】:

引用 拉斯.特维德 的《金融心理学》:

现在,让我们总结时间和无知之神秘力量的四项基本原理

第一项原理:市场走在前面。目前所有的和潜在的投资者的中的看法通常不是某个人所能掌握的。也许“其他人”知道一些我们不知道的事情?我们永远不能确信。我们不得不承认,要走在市场惹事并且在价格上笑话此认识之前,是一项艰巨的任务。

第二项原理:市场是非理性的。市场可能对时间反应非常快,但这同样是主观的,感情的并且被狂想所控制,这种狂想又被变幻的趋势所左右。有时候,价格与投资者的经济情况和利率同步波动,在大众的疯狂和冷漠中摇摆不定,而不是由证券价值决定。每个投资者都试图理性,但实际上却表现出非理性行为。

第三项原理:环境是混沌的。宏观经济预测通常太不精确,对投资无任何帮助。尤其明显的是,由于经济间的相互关系常常受到小的,但非常关键的细节影响,这种细节可能改变一切,但无人可以预测到或猜测到。更糟糕的是:上述原理同样适用于金融市场。

只要市场存在一天,上述原理就一直适用。虽然不是所有人都明白其真正含义。

但是现在还有第四项原理,这是由于那些使用技术图形分析市场的技术分析师们创立的。这条原理是:图形是自我实现的。如果许多人在相同的图形上画出相同的线,并且输入到装有相同决策软件的计算机中,则其效果是自我强化的。因此这第四项原理是:

第四项原理:图形是自我实现的。如果许多人使用同样的图形系统,他们可能从中活力,而无论这些图形的实际含义是什么。

——————————————————————————————————————————

之前看过这本书,直接搬过来。

【知乎用户的回答(0票)】:

市场加速进化。两个意思,一,市场是进化的。二,进化是加速的。

【何子垠的回答(0票)】:

不邀自来

主要是我对程序化很感兴趣,现在一直在做。回测数据失真,最主要原因还是未来参数的影响,具体的,前面几位老师说的很详细了。

我想说说自己的体会,我不懂编程,都是写好策略,找期货公司里的程序员做。之前就知道未来参数的影响,不仅是优化回测数据,而且真正交易时,由于参数过多或是滞后,可能会带来交易次数的下降或是频繁止损。所以我尽量少用参数,多是用K棒组合配合均线来描述,能不用系统指标就不用,最后发现,有些可以用语言描述的,无法准确的反应到计算机程序中,想用计算机语言把各种K棒形态描述清楚,对我来说比较困难,现在依旧在努力中……

其实凡事易简不易繁,程序员给我做了个演示,就几句程序:30日均线上多,线下空,亏10%平,回撤30%止盈,用四年的豆粕数据回测,四年收益10倍多。我当时看完很震撼,其实就这么简单,可很少有人这么做,即便是主观长线趋势性交易,即便做对了,能拿的住的有几个。

程序化目的是求稳,绝对收益是次要的,只是大多数人都即要收益,又想省事,这是肯定不行的,不要奢求太多,几套策略跑,一年复合收益率超五成的,就是非常优秀的程序化交易了

原文地址:知乎

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多