为什么优矿的策略跑起来都很成功,是因为哪些因素没有考虑到?

论坛 期权论坛 期权     
潇湘uf   2018-10-13 00:23   16755   17
比方说量化学堂里最简单的策略都远远跑赢了基准收益率
随便一翻,策略似乎都非常成功。

所以请问这个基准收益率到底是在指什么基准?为什么这么简单的教学策略可以效果这么成功?(可能是没有考虑到手续费的原因,还有其他原因吗?)
谢谢大家!^_^
分享到 :
0 人收藏

17 个回复

正序浏览
17#
Trank  4级常客 | 2018-10-13 00:23:20
样本容量,滑点
16#
匿名用户   | 2018-10-13 00:23:19
提示: 作者被禁止或删除 内容自动屏蔽
15#
匿名用户   | 2018-10-13 00:23:18
提示: 作者被禁止或删除 内容自动屏蔽
14#
735325  3级会员 | 2018-10-13 00:23:17
(求指教,下面说的很可能都是错的)
有时候不是跑起来很成功啦,而是"看起来跑得很成功"。看起来很成功的策略,除开一些真的很成功意外,没有考虑到的因素可能有:

手续费、滑点、冲击成本等等,这些情况呢确实要考虑进去,一般来讲设置在某一范围内大概就差不多。然后剩下的,

1)统计指标。页面上不是有好几个指标么,但是这几个指标能反应的信息还不够多,有时候不足以判断是否成功,当然了就只凭这几个东东也是可以做一小套评估体系的,但实际上也是个产生更多指标的过程。
2)时间尺度。有时候一些策略会对某几类市场类型适应得很好,例如牛市的时候均线突破买入之类的策略肯定亚卡西啦。
3)回测标的。突然想起一句话,这世界上没有两片完全相同的叶子,但拿远了看它们都是相似的;然后反过来想,脑海中想象出一片叶子的大概纹理,然后画出来,不断地找总会找到片非常相似的,然而这只是千百片中的巧合而已。这也跟过度拟合有关。
4)回测时所用的成交价格。日线策略中,成交价应该用开盘价还是收盘价?(然而都不是),那小时线的又应该用哪个价?某种程度上来说,成交价格执行的事宜也会牵涉到未来函数,粗略的回测架构就不能很好地解决这个问题了,这也是上面有大侠说要搞Tick回测的原因之一吧。
但听说那些交易平台都是基于Tick回测,然而执行细节到底是怎样,不清楚。
5)【凑不够五个不罢休强迫症】 没有具体逻辑支撑,缺乏对市场的理解。好吧其实这不是量化平台考虑不考虑,而是关乎交易者、研究者本身。量化平台只是提供一个参考,一套模型;可能种种原因出来的一个策略“看起来跑得很成功”,假设还在实盘了,一开始就失效还好,最不好的就是一直以为有用,被拖入泥潭的纠结当中...不过话又说回来,谁知道明天这东西会不会失效呢,对吧?^_^
13#
牛奶  3级会员 | 2018-10-13 00:23:16
相比较优矿,可以看下GTA的quantrader平台,可以最大程度还原实盘跑出的绩效报告,题主可以试试看
12#
大飞在北京  4级常客 | 2018-10-13 00:23:15
特别欣赏题主探索的精神,作为一个交易者看到“优矿的策略跑起来“都”很成功”注意,是“都”。首先映入脑海的难道不是“妈蛋,什么狗屁回溯平台,是特么游戏机吧,每个策略都成功的跟特么闹着玩似的,果断弃之”的情景么。怎么还去去自身找原因了。可以说肥肠之不解了。
11#
马夹  2级吧友 | 2018-10-13 00:23:13
这两个图的基准应该是某个指数 比如上证、沪深300之类的大指数,具体你可以根据涨幅对照一下是哪个,我就不具体算了。

第一个图是扣了一段牛市的策略,牛市买小盘股,随便都可以做到图上的结果。
第二个图你看仔细一点,开头大盘下跌的时候,策略是空仓的,整体的超额收益绝大部分来自于空仓的时候大盘的下跌,后面的部分,策略并没有比大盘跑得好,差距在不断的缩小。

总之呢,这两个策略的问题主要在于:
1. 区间太短,你拿个长一点的时间段来测啊,就测一年多有什么用,你知道下一年是牛市熊市么。
怎么着也得包括一轮牛市一轮熊市吧。
你拿一小段市场,很容易写出一个牛逼的策略来,但是有什么用呢,下一段市场和你这一段会一模一样么?不全面测试的策略谁敢投钱呢?偏傻子么?
2. 比较方法比较模糊,第一个图好说一点,因为差距在不断扩大,第二个图明显差距在缩小,所以看着整体有超额收益,实际上分段来看,后半段是没有超额收益的。
策略评价要多图标,多统计量进行评价的,只看一个图是做不出正确的评价的。
10#
Shu Black  1级新秀 | 2018-10-13 00:23:12
有些择时策略,选的时间短,单边或震荡市只包含了一种;有些选股策略没考虑幸存者偏差,或者PL只来自加杠杆,选的period有限都不看跌市的maximum drawdown;有些训练模型的时候过拟合,或者隐蔽用到了未来数据,比如标准化正态转换之类预处理时候把所有数据(包括out of sample用的)都放一起处理,比如有些用到前向后向算法的机器学习策略把回测序列一股脑丢进训练好的模型测也会有未来数据问题。延迟滑点手续费这些就不提了。发帖的人很多都是新手,理工科出身刚接触金融,人家自己也都一上来就承认了。anyway,新接触一个模型时候有个人家搭好的框架可以参考还是很省事省力的…即使知道上述问题存在我还是很想真心感谢发帖子的人。除了这些其他的肯定靠自己辨别筛选思考尝试改进啊,总不能指望你躺在那人家拿钱塞你口袋里吧……
9#
伽马交易员  4级常客 | 2018-10-13 00:23:11
找了个当年我在优矿上做的一个统计套利策略,年化1700%。。。


========看起来很成功的分割线========

之前15年优矿刚上线的时候就玩过一段时间,还算比较有发言权吧

其实国内米筐、优矿等这种类quantopian的平台都大同小异,他们确实也都考虑了停牌、滑点、手续费等问题,所以原因不在此

之所以在这类平台做的策略总是看起来特别成功,主要还是在于用历史数据不断优化策略的弊端:即产生了严重的过拟合。这导致了历史回测结果特别漂亮,但一旦实盘就会惨不忍睹。。。
8#
黑猫Q形态  6级职业 | 2018-10-13 00:23:10
首先你要tick级别的data,而且要亲自洗
其次你要大量验证思路可行性,一遍搞数据,一遍做数值验证,一遍做逻辑验证,一遍再配合市场消息和合理性检验(sanity check),不是一个矩阵选出前多少quantile那种
再次你要塔一套回测方法和框架,不是单纯的做几个统计检验

然后我们再来讨论策略好不好吧,我自己在quantopian上瞎玩都玩儿出过不加杠杆就400%的,然而我的第一反应是:哪会这么简单,还是学数学去吧……后来证明了前半句是对的,后半句……我也希望他是对的

执行的事我暂时没啥经验,就不说了

我和我老板有一点意见是一致的,就是我们要做到什么时候我们都不觉得我们是“猜”和“赌”了,再进行下一步
7#
陈颖  2级吧友 | 2018-10-13 00:23:07
题主说的量化学堂中的策略是一个小市值而且回测区间比较短,所以曲线看着还行,这个初衷是为了让矿友对因子选股有个概念,没有做更多精细的处理。

至于其他的疑问我简单的回答一下
上面有提到手续费和滑点等,优矿的回测框架中都是有考虑的。

[h2]交易税费 commission[/h2]含券商手续费和印花税,优矿回测框架默认采用买千分之一,卖千分之二的税费也可以自己设置更改。
券商手续费:券商收的下单手续费,中国A股市场目前为双边收费,每个券商的手续费不一而足
印花税:是国家强制征收的印花税,目前对卖方单边征收,对买方不再征收,目前为0.1%
默认为commission = Commission(buycost=0.001, sellcost=0.002, unit='perValue')

[h2]滑点 slippage[/h2]在真实的证券成交环境下,下单的点位和最终成交的点位往往有一定的偏差,订单下到市场后,往往会对市场的走向造成一定的影响。比如买单会提高市场价格,卖单会降低市场价格。
优矿为了更真实地模拟策略在真实市场的表现,增加了滑点模式,用于处理市场冲击问题。
默认为slippage = Slippage(value=0.0, unit='perValue')
在模拟交易中还考虑了交易撮合的问题,实时行情,最优五档即时成交

至于去除停牌股等,优矿的回测框架会对证券池进行涨跌停、停牌、未上市等情况进行预处理:

模拟投资中的账户,记录了整个回测过程中的信息,包括持仓信息、当前日期等不断变化的信息
  • 停牌:
      当天股票停牌、退市、未上市,则无法买入;
    • 您在handle_data函数中调用 account.universe参数,就能返回当天已经剔除了停牌、退市、未上市的股票列表。
  • 涨跌停:
    • 当天股票涨停则该股票无法买入,当天股票跌停则该股票无法卖出;
    • 调用 order 相关的下单函数后,回测框架会自动对涨跌停股票做不成交处理,订单成交结果可以在订单成交状态中查看。
  • [h2]拆分与股息:[/h2]
股票偶有发生分红、配股、拆分、合并等事件,此时股票价格和持仓数量会出现大幅的变动。
为了保障这些数据的连续性,优矿上已做前复权处理,在回测框架中使用回测框架提供的行情数据(比如 account.get_history)、回测框架在成交撮合时使用的行情数据,都已做前复权处理。

还有幸存者偏差、前视偏差、极端情况我们都提供了函数或者例子帮忙处理。

上面温如提到了数据的问题,我们公司专门有100多人的数据团队在进行数据的生产及清洗,这些数据在优矿上大多是免费提供给大家使用,也许我们不是最好,但我们一直在力求变的更好。

投资从来不是件容易的事,我们只希望通过自己的努力能帮助大家提升研究效率、降低运营成本,找寻alpha的路上能更加顺畅一些。

附上老大 @薛昆Kelvin 成立优矿之初的理念

优矿又名Mercury水星:创始之初,只有两样东西;“上帝的精神(Spirit of God) 和水 (waters)。”我们提供了水,有才能的人只要有上帝造世的精神就可以了。
6#
find goo  4级常客 | 2018-10-13 00:23:06
他们的数据似乎有问题,我用的工商银行,用后复权(光用后复权是不科学的,但比不复权科学),和同花顺的后复权跨几年后的价格不一样,差别很大,一年如果差3%,5年要差15%,可以让一个亏损的策略变成盈利。
5#
文兄  3级会员 | 2018-10-13 00:23:05
就算不考虑涨跌停无法交易、手续费和滑点等等因素,单纯就是优矿的数据我都是不信的。

还有,最关键的是优矿的默认回测时间段恰好是股市大好,躺着也赚钱的时候。如果你把时间段变为11年到现在,立马收益就大打折扣了。
4#
王一松  3级会员 | 2018-10-13 00:23:04
2017/1/20 在下面补充了几个回溯测试中的一点小经验,改了几个语病和言语不当之处。
——————————

优矿、米筐等回测平台已经尽可能保证数据真实以及交易成本真实,问题中列举的策略也确实可以取得这样的真实收益。

那么,陷阱存在在哪呢?

答案是: 隐形未来函数(过优化)陷阱。

图中的第一个策略,选取了2014年下半年的牛市部分,在这个时段,随便买大概都可以赚取指数相似的收益吧。因为牛市入市资金充足,庄家也乐于通过控盘手法做出漂亮的技术面,所以简单的技术面择时即可取得很高贝塔的收益。但是,如果该策略在熊市呢?很可能由于t+1和张跌停而亏地很惨。这就是你在回测时段选取上出现的“未来函数”。虽然策略没有用到未来数据,但你人为选取了牛市进行回测,本身就是人工未来函数。假如带着现有知识穿越时空回到2014年,您可能成为十分优秀的投资者。

问题中的图二,其实并没有很好的绝对收益。那么为什么看起来比指数优越很多?因为16年初是熊市,择时策略都不会有开仓信号,所以没有亏损。但是如果你把回测开始时间提前一点呢?你的持仓很可能因熔断造成的流动性危机而遭遇踩踏。那么这个回测的择时也体现了上述未来函数。

作为一个商业性质的平台,客户流量都是十分重要的。如果你给出的demo策略复杂而难以盈利,可能就会减少量化投资的吸引力从而减少流量。所以,各个平台都喜欢推出各种人为优化过的策略,甚至包括机器学习策略,吸引入门者。即使策略真的很难优化到完美收益,平台也可以通过大打学术噱头、精心设计文案却忽略可行性、多贴收益图和看起来“高大上”的分析图等方法来吸引入门者。比如Ricequant的介绍隐马尔可夫模型的文章,策略不仅不真正回测,参数有优化,而且他直接丧心病狂地采取样本内测试来展示出爆炸收益,最后轻描淡写一句虽然是样本内但是策略是很有价值的。
隐马(HMM)在股票上的简单应用 - 1

结果你发现,真正的干货都不给你贴,给的都是学术噱头和几个过于简单或实际不可行的策略。

在回溯测试中我有几点小建议:

1. 尽量使用成熟的完善的回测平台,米筐、优矿的回测机制已经较为贴合真实,如果没有保密顾虑或其他特殊要求(如Tick级别测试),在这些地方测试是比较可靠的。如果您要自己开发,建议在熟悉市场机制的基础上参考RQAlpha(Ricequant的简易开源回测平台,python)等源码。并且加入严苛的成交机制,比如 随机/有目的 地滑点、部分成交。当然,这些依靠于完整详实的历史数据,不仅仅是OHLCV,还要有tick级别的盘口限价单等数据。各个时间段退市、ST等处理也要做好。这些数据在中国股票市场并不是轻易拿到,tushare也有种种限制,所以优矿米筐的一大好处是提供了基础的和有保障的数据源和事件源。

2. 如果你要测试的是的是基于P-Quant的策略,一定要进行样本外测试。比如你观察到:在2014-2015用双均线的指标信号明显且噪声少,于是设计了一套双均线择时策略。回测时,一定要在你观察研究数据的时间段(2014-2015)之外进行测试!机器学习策略更不用说。

3. 不要总盯着净值曲线,不要总盯着净值曲线,不要总盯着净值曲线。
3#
汪雨哲  3级会员 | 2018-10-13 00:23:03
我仅就我所了解的多因子策略回答:
有一个很隐性的未来数据的问题,就是在构建策略的时候,我们是知道有哪些因子是有效的,但实际使用时可能已经失效了。最常见的就是小市值因子,社区当中包含小市值因子的策略的收益都很惊人,这是我们建立策略时已经知道了小市值因子在过去具有显著的正收益(虽然小市值在2016年依然有效)。
然后就是社区中几乎没有几个策略是做过业绩归因分析的,这样策略回测时具体是哪一个因子贡献了收益是说不清楚的,因子失效时不能及时发现,也不知道组合在各个因子上的暴露有多大。就我自己的归因分析结果来看(还有bug),小市值因子的收益是在2013年之后(大概是创业板牛市开始之后)才有持续性的正收益,而这之前的正收益实际上来源于流动性不好的股票(估计背后逻辑是流动性补偿,而且如果不对流动性因子做市值中性处理,原始因子数据和市值因子数据有较高的相关性)。然而要做业绩归因分析,工作量是很大的;而且有了因子收益,还需要做因子相关性矩阵,根据因子相关性矩阵做因子选取、风险调整以及最后的组合优化,这是一个人很难完成的,估计这是很少人做归因分析的原因。
最后,不要为了净值曲线好看而去过度的优化参数。如果选股有一定广度(不少于50只),不做止损(这部分工作应该在因子的选取和剔除中完成)的条件下长期相对于基准的超额收益能够达到名义GDP增长率的3倍以上或M2增速的2倍以上应该就是一个比较优秀的策略了。

      个人投资者要在量化上能完成以上的工作还真不如定投一只量化基金,毕竟不要管什么事情。
2#
木木  6级职业 | 2018-10-13 00:23:02
一开始写了一个回测特别好的策略很激动,以为要走向人生巅峰了。

后来都是凭逻辑写,回测验证有效性的时候再也不许调任何参数。回测发现很好又很激动,以为要走向人生巅峰了。

再后来写完回测发现结果很好的时候都是心里默念:妈卖批,肯定又哪里出问题了。调了参数依然表现惊人,以为要走向人生巅峰了。

后来发现回测的数据就不行,再后来发现回测这事儿就不行。 只能用来证伪,不能用来证明。
1#
成成Cc  3级会员 | 2018-10-13 00:23:01
未来函数,过拟合。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP