对于 Quant 来说, Financial Modeling 和传统的机器学习方法有什么联系和区别?

本文主要是介绍对于 Quant 来说, Financial Modeling 和传统的机器学习方法有什么联系和区别?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器学习理论是基于统计学的, 而诸如时间序列分析、Monte Carlo method之类的方法也离不开统计学和经济学。所以我在好奇是不是在掌握了ML的基本原理之后,再了解一些金融知识就可以尝试Quant?

================================================================================================================================

谢邀。年前太忙了,好不容易完成一个firmwide的大项目,赶回家过年,偷得半日闲,来回答马年的第一个问题。

首先要说明两点,一是我离开每天读paper的日子已经有些时间了,精准的旁征博引的能力急剧退化,所以引用的观点的来源,很可能出现谬误,请包涵;二是以下看法很多源自我自己的理解,因此很可能引起争议。

从Quantitative Modeling的角度来说,有两大主流的方向:Stochastic Calculus(随机微积分)和Statistical Learning(统计学习)。这两个主流方向基本涵盖了你所有可能用到的技术——随机微积分,或者说金融数学,提供了各种衍生产品的风险估计基础,也是处理新型资产定价的常用方式;而统计学习,则包罗计量经济学、时间序列分析和各种机器学习方法。我个人比较喜欢用Q measure世界和P measure世界来指代这两种方法,因为统计学习主要在真实概率空间进行分析,而随机微积分在基于无套利假定而设立的Q概率空间进行分析。

好吧,我相信你已经晕了——为什么在真实概率空间外,还会有一个Q概率空间,这不是一下子可以说清楚的问题,我就给一个简单的例子,剩下的如果你还有兴趣可以再自己研究:

假设现在只有两种资产,一种是股票,一种是债券,假设一年后这个世界只有两种情景,一种是好市场,一种是坏市场,各自出现的概率是60%和40%。我们画一个表格,就有:
t=0 | t=1 Good (60%) | t=1 Bad (40%)
Stock 1 | 1.2 | 0.8
Bond 1 | 1.1 | 1.1

表格里面的数字代表价格,比如第一行表示股票今天1元,一年后在好的情况下变成1.2元,而坏的情况下变成0.8元;第二行因为债券是固定收益,两种请都是10%的收益。

那么在P概率空间(真实概率空间),股票的Expected Return就是:
1.2\times 60\%+0.8\times 40\%=1.04

也就是4%,那么这不符合金融数学均衡思想,因为其期望收益和无风险回报不相等(10%)。所有Q measure下面的两种情况的概率应该是75%和25%,这样股票的回报就成了:
1.2\times 75\%+0.8\times 25\%=1.1

这样满足了理论微观经济学的各种假设,你就可以基于此概率去定价一个期权了,或者其它更加复杂的衍生产品。

这套体系由Arrow在1965年建立,之后他也成为了诺奖得主。而基于这一体系诞生了Black Scholes(1973)期权定价公式,在很长一段时间内被业界奉为圭臬。

但是这一体系太理论化了,在实际做交易的时候会缺少指导意义。就好比Wolf of Wall Street里面,Can you sell the pen now,那支笔有理论价值,比如市场同类的价格是多少,成本是多少,不能偏差太多,不然就有套利,但是你的交易价格可能远远偏离这个价格,因为这一单取决于购买者的现实需求,而这或许可以从历史交易数据中得出,这就是统计学习方法可以应用的场景。

在业界呆了一段时间后,我开始重新思考这个问题——为什么1960到2000年大量的金融研究在随机微积分领域开展,而2000年后,大量的金融研究开始应用越来越复杂的计量经济学和机器学习方法。我个人的看法是——早期数据的缺失,使得数学建模——随机微积分成为唯一可行的方法,而2000年后数据的蓬勃发展,使得统计学习成为可能。要知道Fama在1970写有效市场理论市场的数据是Dow Jones里面30支股票的10年日交易数据,这是当时的大数据,而现在,所有股票的每单级别的数据也不罕见了,数据——信息驱动研究的变化,在每个领域都是一样。这不难解释为什么机器学习逐渐主流了——30年前没有数据,何来金融统计分析?

这两种方法(Q世界与P世界)在一定假设下可以得到相同的结果,比如你设定同样的无套利、经济人理性等条件,随机微积分与统计学习可以得到非常接近的期权定价。但是统计学习的好处是,你知道这个世界的不完美,你可以随意放松无套利和理性交易这些太过严格的假设,依然获得鲁棒性不错的模型。

那么在今天的Quant世界,这两者的应用是怎样的呢?做风险和定价的Quant,还是采用传统的随机微积分为纲领,这种方法算出来的价格被交易员用来作为交易和对冲的指导,但是交易员的报价还是根据自己的判断来进行;在山的另一边,做程序化做市(Automatic Market Making)、资产配置或者高频交易的Quant,无一例外的活动在P世界——基于大数据和先进的机器学习来发现交易机会。

是信息行业的发展重塑了整个金融研究,但这不意外——要知道数百年前就是提前获得的关于英法战争结果信息帮助了罗斯柴尔德家族成为欧洲金融霸主——信息一直就是金融中最关键的edge。

从Quant自身来说,我觉得P世界——统计学习方向是未来,随着数据越来越多,实证方法很有可能长期成为主流——甚至随机微积分的传统强势领域也可能为之侵蚀。但是随机微积分领域的很多理论与方法是古典经济学的集大成之作,如果你想获得更好的直觉,这些是必须深入研究的,不然你很可能沦为反复在同一数据上使用不同的统计包碰运气的data miner。

Quant其实只是一种绝对理性和数量化分析思想的践行者。也许今天我说的这些是Quant需要的技能,5年后或许又有了全新的一套体系。要做好一个Quant,唯一必须的就是对理性的信仰和Unquenchable Curiosity。

===============================================================================================================

被赞第一的答案写的很好 非常好
不过很有可能很多人是看不明白背后的逻辑的,比如说 为什么叫Q 为什么叫P
(其实就是两个二叉树的 概率,此处有人把上面那只写为q 下面的概率就是1-q了 当然也有人相反,我学这个的时候的老师 就是下面的是定义为q)

我本科生学计算数学的 我以一个数学的稍微形象一些的比喻来形容下
Stochastic Calculus 就好比是 求解析解
而Statistical Learning 就好比是求 数值解

你问为什么既要求解析解又要求数值解的 
因为 现在的金融体系的基础假设有一些时候是不一定成立的,比如最出名最经典的B-S model
假设波动率是固定的,事实的情况是 黑色星期一以后 波动率不固定了
出现隐含波动率了 原有的假设的根基就不存在了 怎么办?

求隐含波动率 用隐含波动率算局部波动率 然后再用局部波动率进行回推吧(这地方是derman的研究领域)具体的得参见他的东西,我就是随便那么一说 不严谨的。derman就是写宽客人生那位。

至于到底是因为什么 波动率微笑了 那就又得扯到行为金融学角度的东西了 跟本篇内容不大。

重点是 如何来衡量这种波动率微笑 这就得Statistical Learning这方面来做了。

也就是我说的类似于求数值解,并不一定需要精确的知道这个的原理是什么 而是需要知道我们通过什么样的方式能够求得近似的可用的解(可以理解为对asset定价),同时知道这种计算得到的解的精度是多少,在什么条件下可用。这就足够了。

同样我个人也同样第一的回答,认为未来是Statistical Learning 的这个方向。
这个上面说的很明白了,其实这种认识跟我很早之前怀疑过数学的往计算数学发展方向不对,后期又认为计算数学才是现今数学的发展主流一样。(最后这个仅个人观点)

最后我真不是第一楼的托 第一楼的答案确实很好。只是这种好更多的得业内接触这个领域的人才能理解吧,不太为知乎上的主流用户理解。

=================================================================================================================

不请自来,非从业人员简要说说,希望对楼主有帮助。
排名第一的答案已经说的很好了,二叉树的那个例子实际上是指两个不同的概率测度:真实概率测度和风险中性测度。你可能会有疑问,在风险中性测度下的定价在真实世界是否适用?正统的回答是两个测度是等价的,所以在一种概率测度下几乎必然有效的对冲,在另一种测度下也几乎必然有效。更学术的推导和论证推荐参考Shreve的《金融随机分析》。
楼主问“掌握了ML的基本原理之后,再了解一些金融知识就可以尝试Quant?”
呃,基本原理是远远不够的,起码编程要很强吧,C++/R/SAS至少精通一项吧,真刀真枪的去kaggle玩玩再说吧;了解一些金融知识也是远远不够的,金融工程的书单不啃掉一大半还是不要尝试什么quant了,另外彭博的终端用的熟么?
最后建议,数学和编程有一样不够出色的话就别当Quant了,何必自己找罪受。。

=================================================================================================================

这。。。
machine learning 和 financial modelling 完全不同的两块啊!
现在基本上很多人都只会做一边啊

financial modelling 就不说了,很多学的都是定价,monte carlo 只是其中的一种方法而已。

machine learning更多用于 data analysis, risk analysis.来预测Default,或者走势pattern
简单的说就是给你big training data, model, 然后sample data 出你要的数据,最简单的就是大家都学过的linear regression.

=================================================================================================================


这篇关于对于 Quant 来说, Financial Modeling 和传统的机器学习方法有什么联系和区别?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

SpringBoot中ResponseEntity的使用方法举例详解

《SpringBoot中ResponseEntity的使用方法举例详解》ResponseEntity是Spring的一个用于表示HTTP响应的全功能对象,它可以包含响应的状态码、头信息及响应体内容,下... 目录一、ResponseEntity概述基本特点:二、ResponseEntity的基本用法1. 创

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法