当前位置: 首页 > news >正文

量化交易四大邪术之三:春去花还在

网络相传亚洲有四大邪术,日本化妆,韩国整容,泰国变X,Z国PS。

图片

这些都是让人在颜值上看起来很美,类似地,在量化交易领域,也有四大邪术能让净值曲线看起来很美,之前已经说了“般若波罗蜜(未来函数)”和“霸王硬上弓(强制成交)”,今儿个就继续来说这量化四大邪术当中的第三个,也就是“春去花还在”,春天已然过去,但迎春花依然开放,这是艺术画作当中的神奇景象,却是量化策略里面的致命幻想。

先端上一个猫腻策略,让大伙儿感受一下。这当中的回测,是已经开启了防未来函数功能,且取数日期是上一个交易日,并且确认已经关闭强制撮合功能,也就是说,已经排除之前咱说的那两个未来函数和强制成交的bug。

图片

回测绩效和收益曲线看起来不错吧,策略近五年的累计收益是1922.20%,年化收益是77.35%,最大回撤是22.02%,夏普率是2.956,收益最大回撤比是3.51,看上去就是“别人家孩子”般的策略,年化收益也不是一个很离谱的水平(跟前两期比起来)。

但咱要说这是一个小市值策略,估计会有不少小伙伴快速反应过来,觉得这收益曲线极其不正常,因为做过的小伙伴都清楚,今年上半年1月份和4月份,小市值跌得连妈都不认识了,这个策略的收益曲线还稳如老狗,并且最大回撤还是出现在2020年底。

为什么会这个样子呢?遍览策略源码,发现猫腻出现在选股模块中的这一段。

no_trading_signal = today_is_between('01-10', '02-10') or today_is_between('04-08', '04-30')if no_trading_signal:stocks_list = []return stocks_list

你瞧,如果今天是在1月10日~2月10日之间,或是在4月8日~4月30日之间,就不开仓,这期间一直保持空仓状态,这样就不会出现大跌了,收益曲线上的走平的地方就是这么来的。

即使好日子过去,黑天鹅发生,依然可以保住利润,春去花还在,这就属于『过度拟合』或『过拟合』了。简单来说,过拟合就是在样本内数据上表现良好,但在样本外数据上表现较差的现象。

为了让收益曲线长得漂亮,有些居心叵测卖策略的骗子,就会在策略当中加入大量日期判断的IF语句,类似于today=='2024-07-03'、today=='2024-09-02',today=='2024-09-09',blalala~~~用来过滤掉明显亏损的交易或交易日期,只留下盈利的单子和微亏的单子,这样只是让回测好看一些,但实盘上很难复现得了,特别是用来欺骗看不懂策略源码或懒得看的韭菜。

说回刚才的那个小市值策略,肯定是因为今年1月和4月小市值大跌才加入这样的日期过滤,曲线昂首向上才有好卖相嘛,但去年底还不知道这种情况,不加日期过滤跑到现在的话,就是下面这个鬼样子,累计亏损19.25%,最大亏损46.11%。

图片

就算策略开发者就是单纯地认为,以后的1月和4月就是小市值要下跌不开仓,但市场行情是多人博弈,人的认知也是会进化的。

假设大家都发现了这条规律,比方说有人比较鸡贼,或者自己规模太大,就会抢跑提前卖出,那小市值就会提前下跌,基于日期的过滤就会逐渐失效,变成一厢情愿的日期拟合,这也是日历效应会漂移的原因。

过拟合的原因有很多,而且还有主观层面的善恶。刚才说的,就属于比较明显的恶意,为了策略卖相好看割韭菜。其他的一些原因就是纯粹的技术原因,没有主观层面的恶意,比如说样本数据少、样本数据噪声太大、样本内外特征分布不一致、参数过多、模型太过复杂等等。

图片

长久的实践中悲伤地发现,恶意的过拟合可以避免,但善意的过拟合只能尽量减弱,很难完全避免,就如同黄金纯度也没有百分之一百的。

因为归纳和演绎是人类认知活动中常用的方法,拟合其实就是一种归纳,从现象中总结出规律,开发策略无论如何都是要“拟合”的,归纳差一点点就是欠拟合,想得多了一点点就是过拟合,刚好拟合是一种非常完美的状态,很难100%达到,就如同机器学习/深度学习领域,过拟合问题如影随形,想了交叉验证、正则化、Dropout等多种方法,测试集不如训练集是常态,量化实盘不如回测也是如此。

人生在世,可要长点儿心呐,别中了这种邪,上了这种恶当!


http://www.mrgr.cn/news/36323.html

相关文章:

  • 《动手学深度学习》笔记2.2——神经网络从基础→进阶 (参数管理-每层的权重/偏置)
  • docker中搭建nacos并将springboot项目的配置文件转移到nacos中
  • Proto3 深度解读:Protobuf 的用法与实例分析(C++)
  • Springboot jPA+thymeleaf实现增删改查
  • 第二十八篇——用间篇:使用间谍,先学习花钱的价值观
  • Volume数据管理
  • 前缀和(3)_寻找数组的中心下标
  • 【Java】注解与单元测试的使用【主线学习笔记】
  • 给自己的笔记本加一个公网IP
  • YOLOv5白皮书-第Y2周:训练自己的数据集(云jupyter运行版 )
  • 求二叉树的高度(递归和非递归)
  • JDK1.8与JDK17相互切换
  • 市面第一款 C++ 版本的U盘装机软件(即将上线)
  • 自然场景文本定位系统源码分享
  • 影刀RPA实战:网页爬虫之天猫商品数据
  • 大四党必备!推荐6款ai写作免费一键生成器在线网站
  • 掌握信息安全的钥匙:CISSP官方学习指南(OSG)第9版中文版
  • 降准降息一揽子措施点燃 A 股激情,4% 大涨之后趋势深度剖析
  • Codeforces Round 971 (Div. 4)A-G1题解
  • Redis缓存技术 基础第一篇(快速入门与安装部署)