量化投资系统总失灵的渊源

2023-10-30 05:50

本文主要是介绍量化投资系统总失灵的渊源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文:Baijnath       来源:华尔街俱乐部

 

绝大多数量化系统的方法论犯了典型的以果证因的逻辑错误:高资本回报被当做优质业务的充分条件。

基金经理多米尼克·达索(Dominique Dassault)写给同事们的一封邮件中,谈到了一段他痴迷于量化黑盒子交易系统(quantitative black-box trading system)的往事。当他与一位顶尖的量化投资组合经理讨论量化系统时,该经理的一席话令达索大吃了一惊。他告诉达索,定量运算法可能管用一时,甚至可能管用很长一段时间,但最终是会失灵的。当被问到失灵的原因时,该经理解释说:

“尽管我们都愿意相信我们自己的才智是独一无二的,但实际上我们所有人做的事情相差无几。因此,我们自以为发现了一片投资新大陆,但事实上那里早已经人满为患……当所有人同时想着要(从同一笔交易中)撤出的时候,灾难就发生了。”

多米尼克对量化经理们的做法进行了精辟的总结,包括轻视回测波动率(back-test volatility)、提高杠杆率和增加资金集中风险。

量化经理们的操作方法听起来很有逻辑性,但如果继续深究下去,我们就会发现,他们的逻辑是经不起推敲的。

业务质量界定——量化的方法

绝大多数—如果不是全部的话—量化系统所包含的变量是经过两次过滤的:变量是从成功的投资/交易案例中挑选出来的,而成功的投资/交易案例又是从经过选择的回测期中挑选出来的。为了确定哪些变量与更好的投资收益有关,系统开发人员常常会挑选一组变量进行模拟。

为了进一步说明量化系统的设计过程,我们不妨看看下面的案例:业务质量是如何被纳入投资的优先考虑因素的?业务质量已经引起学术界和量化投资策略开发人员的广泛关注,是最近最受追捧的投资要素之一。

绝大多数宣称以业务质量作为优选因素的量化投资策略均是用资本回报率和类似的指标作为衡量业务质量的主要标准的,那是因为开发者们发现,资本回报率比较高的公司往往后续投资回报率亦比较高。当然,量化经理们为了尽量展示各自系统的优越性,他们绝大多数会往各自的模型里引入大量的变量,从而使得自己的量化系统看起来更复杂一些。 

优质业务会带来更高的资本回报亦早已成为一种常识。但是多高的回报率算高?比方说,所有业务的平均资本回报率是10%,那意味着你投入10万美元,你可以获得1万美元的预期收益。但是,如果你花10万美元投资的业务给你带来了1.5万美元的收益,结果会怎么样呢?按照绝大多数量化系统目前对业务质量的界定,它们会据此得出结论:我们手里已经握有一项优质业务。

以果证因——量化系统的逻辑错误

毫无疑问,一项能被视为优质的业务,理所当然应该能比普通业务给投资者带来更高的资本回报率。如果上述命题成立,那意味着所有的优质业务均可带来更高的资本回报率,但是它的逆命题——所有能带来高资本回报的业务全是优质业务——就未必成立了。而事实上,绝大多数量化系统恰恰就是以此立论的:因为每一项优质业务均隐含着高资本回报,所以每一项能带来超额资本回报的业务就是优质业务。量化系统的上述立论就好比说:因为我用的是威尔逊球拍,所以我就是罗杰·费德勒。

量化系统的立论方法犯了典型的逻辑颠倒错误,逻辑学上称之为“肯定后件”(affirming the consequent,又被译作“以果证因”)。我们可以简单看看下面的例子:

大前提:只要是狗,就有四条腿。

小前提:我发现有个东西有四条腿。

结论:那个东西一定是狗。

很明显,上述推理是不能成立的,因为并不是凡是有四条腿的东西就是狗。同样,并不是凡是能带来超出资本费用收益的公司就是优质业务。

高资本回报——必要条件而非充分条件

诚如2002年诺贝尔经济学奖得主、美国普林斯顿大学教授丹尼尔·卡内曼(Daniel Kahneman)所言,只要我们拥有“充分”的信息,我们就能建立一个比绝大多数人表现更好的模型。但是,我们需要讨论的一个关键问题是:创造更高资本回报率的能力是构成一项优质业务的必要条件,但它是充分条件吗?

给出结论之前,我们想与读者诸君先分享一个故事,故事的主角是本文的作者之一百吉纳特·蓝莱卡(Baijnath Ramraika)的父亲。20世纪70年代,老蓝莱卡于印度北部的一个小城创办了一家销售服装的公司。最初,小城里只有几家专门销售服装的公司,因此老蓝莱卡很快就收回了投资成本而且开始盈利。高资本回报的必要条件满足了,但是老蓝莱卡的公司算得上是优质业务吗?

几年过后,小城里的服装销售业态发生了变化。老蓝莱卡等人的成功吸引了众多的效仿者,一些更有实力的企业亦纷纷投资服装销售行业,有的使用的是自有资本,有的则是借钱投资的。20世纪70年代,同一个小城,只有5加销售服装的公司,但是现在,销售服装的公司已经超过100家。几十年里,小城的服装消费群体规模扩大了约3倍,但竞争者数量却增加了20多倍!毫不奇怪,最终的结果是,每一家公司只能获得低于平均标准的利润。

几十年间究竟发生了什么?为什么竞争者数量会如雨后春笋般迅速冒出来?答案就在于,老蓝莱卡所投资的行业没有进入门槛,即便是有进入门槛,亦是很容易被逾越的。对别的投资人来说,进入他的行业根本无需付出多大的努力。随着新资本的不断涌入,资本回报率自然就会被不断摊薄。

很显然,老蓝莱卡的业务不能算是优质业务,而只能算是因为供需关系错配而暂时享有竞争优势的业务。一旦资本大举进入瓜分超额利润,局势就会快速扭转甚至矫枉过正。

避免逆命题错误——倒过来想,一定要倒过来想

需要特别指出的是,绝大多数量化系统所采用的变量是从产生过超额投资收益的交易/投资案例中挑选出来的。系统开发人员的做法明显忽视了德国数学家卡尔·雅可比(Carl Gustav Jacob Jacobi)的观察:“倒过来想,一定要倒过来想。”(Invert,Always Invert.)雅可比的警告对于理解那些具有相同特征但结果迥异的案例至少具有同样重要的价值,如果不是更重要的话。

仍然以老蓝莱卡的生意为例,只要稍加分析就会发现,缺乏行业进入门槛导致资本回报率降低的结局基本是注定的。据此我们可以得出结论,超额资本回报并不是优质业务的“充分”条件。因此,一项业务要想维持超额回报,就必须具备一定的进入门槛,而且门槛越高越好。

然而,我们仍然不能据此得出进入门槛是维持超额回报的充分条件的结论。就像认为资本回报是优质业务的充分条件一样,如果你认为进入门槛是是充分条件,那么你一样犯了以果证因的逻辑错误。如果进入门槛有了,但是仍然没能带来更高的资本回报率,那么此类业务仍然不能被称作优质业务。一项业务有没有进入门槛可以通过人工使用定性的方法进行判定,而资本回报率的高低则可以利用机器进行判断。

绝大多数量化投资和交易策略之所以会最终失灵,与变量如何确定有着直接的关系。那些接受了雅克比建议和建模时充分考虑到了条件充分性的量化系统,无疑可以大大降低失灵的风险。

拓展阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.市面上经典的量化交易策略都在这里了!(源码)

3.期货/股票数据大全查询(历史/实时/Tick/财务等)

4.干货| 量化金融经典理论、重要模型、发展简史大全

5.从量化到高频交易,不可不读的五本书

6.高频交易四大派系大揭秘

这篇关于量化投资系统总失灵的渊源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/305998

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序