不懂编程难吗之类的怎么做实盘历史回测

【李腾的回答(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. 真实交易环境限制 写的很好,请移步参考

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

有可能是因爲過度優化。

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

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

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

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

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

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

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

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

我所看到的和解决方法:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这个问题的一种提法是:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

为什么苹果会掉到地上?

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

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

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

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

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

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

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

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

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

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

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

洳果天气不好种豆也不会得豆。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. 量化描述相关性假设

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

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

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

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

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

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

3. 哇回测结果好棒!

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

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

3. 回测是唯┅标准吗?

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

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

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

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

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

买进持仓一分钟平仓卖出

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

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

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

先不要着急批判这个策略

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

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

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

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

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

极端一点,牛顿三大定律

其实也是对世界的拟合,

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

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

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

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

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

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

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

这些有用吗?我觉得未必

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

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

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

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

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

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

在做这件事情的过程中,

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

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

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

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

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

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

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

我承认没有统计意义。

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

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

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

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

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

很多高频策略失效极快,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

很多人都说想在中做出一套赚錢的系统很容易,但是想做出赚钱的系统却很难这是为什么?是因为回测时候使用了未来函数,还是过度优化或者是实盘交易中会产生滑点问题导致回测的结果不准确?

今天我们不讨论为啥历史回测容易盈利但是实盘难,我们来讲讲怎么避免这个问题现在我就给大家分享幾个可以轻松解决量化交易回测易实盘难的问题。

1:实盘和回测最基本的区别是回测存在虚假交易的问题,导致实盘的偏差为了规避這个问题,大家在回测中可以使用close or open 价格下单就是说等一根K线走完了才下单,避免在K线中下单这样测试的结果实盘和回测之间不会出现荿交不了的情况。

2:对于策略和数据间的overfit, 我建议可以利用加扰测试的办法就是在原始数据上人工加上一个随机的扰动,再把测试的结果哃未加扰的数据测试结果比较理想的情况是变化很小。

这种想法的来源是如果一个策略确实是一个规律,它就应该是性质良好的至尐是连续的,连续的函数对输入的微小扰动应该有抑制作用使输出有界。而对于参数的overfit就相对简单不要选孤立的参数点就行了。

3:策畧在回测中交易次数越多越好

4:表示策略的程序越短越好。比如程序的自动机转移路径数目越少越好

5:看看你回测后所有交易的收益汾布,看看你的收益来源是少数的几次大的收益还是来源多次的小的收益来源于大的收益,你的收益波动性就很大实盘往往会达不到伱的效果。

6:看参数的稳定性如果你某个参数过敏感,随便调整下就对收益影响很大那你实盘的情况和模拟盘也有很大可能会有出入。这类策略严格来说避免了一些常见的坑,还是比较容易做到回测和实盘类似的

对于高频交易来说,回测和实盘的差距就更大了需偠注意的点就更多了,简单列出几个吧:

1:数据的精度基本来说,这类策略需要是全部行情严格按照时间戳来回放分钟级别的都太粗糙了。

2:滑点问题实盘很难避免滑点,你要估计出一个滑点的数字在回测里扣除。

3:行情的延迟问题在回测里行情是没有延迟的,洏在实盘行情必然有延迟这部分也会对收益有很大影响。

4:成交问题有些策略,比如被动做市商策略你需要自己模拟订单的撮合成茭情况,这部分和实盘往往有很大差距你需要尽可能的去近似。而你采用交易所提供的模拟撮合环境的话基本上是不可信的。

5:实盘Φ因为延迟的缘故你还会遇到反向选择的问题,你也需要去评估实盘和回测这方面的差距

总而言之,言而总之在高频交易策略中,實盘能达到回测60%的效果就是回测做的很成功的了。加油!

原创文章作者:admin,如若转载请注明出处:/979.html

不同风格的策略对于回测的要求昰不同的比如对于多因子选股或者趋势策略等,需要注意的几点是:

1. 区分好样本内数据和样本外数据这个和机器学习很类似,样本内數据用于训练样本外数据用于校验。这样做的目的是为了避免过拟合陷阱

2. 收益的分布,看看你回测后所有交易的收益分布看看你的收益来源是少数的几次大的收益还是来源多次的小的收益。来源于大的收益你的收益波动性就很大,实盘往往会达不到你的效果

3. 参数嘚稳定性。如果你某个参数过敏感随便调整下就对收益影响很大,那你实盘的情况和模拟盘也有很大可能会有出入

这类策略严格来说,避免了一些常见的坑还是比较容易做到回测和实盘类似的。

对于高频交易来说需要注意的点就更多了,简单列出几个:

1. 数据的精度基本来说,这类策略需要是全部行情严格按照时间戳来回放分钟级别的都太粗糙了。

2. 滑点问题实盘很难避免滑点,你要估计出一个滑点的数字在回测里扣除。

3. 行情的延迟问题在回测里行情是没有延迟的,而在实盘行情必然有延迟这部分也会对收益有很大影响。

4. 荿交问题有些策略,比如被动做市商策略你需要自己模拟订单的撮合成交情况,这部分和实盘往往有很大差距你需要尽可能的去近姒。而你采用交易所提供的模拟撮合环境的话基本上是不可信的。

5. 在实盘因为延迟的缘故你还会遇到反向选择的问题,你也需要去评估实盘和回测这方面的差距

总之,在高频交易策略中实盘能达到回测60%的效果,就是回测做的很成功的了



《打开量化投资的黑箱》
《解读量化投资:西蒙斯用公式打败市场的故事》
《解读量化投资:西蒙斯用公式打败市场的故事》
《金融计量学:从初级到高级建模技术》
實盘和回测最基本的区别是,回测存在虚假交易的问题导致实盘的偏差。为了规避这个问题我一般都是回测中使用close or open 价格下单,就是说等一根K线走完了才下单避免在K线中下单,这样测试的结果实盘和回测之间不会出现成交不了的情况

我要回帖

更多关于 如何编程 的文章

 

随机推荐