对于 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

相关文章

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

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

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

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

我们来说说Java LockSupport 的 park 和 unpark

《我们来说说JavaLockSupport的park和unpark》LockSupport是JDK底层线程阻塞工具,通过park/unpark实现线程阻塞与唤醒,避免死锁,与Object的w... 目录一、LockSupport1.1、LockSupport函数列表1.2、基本使用先 park 再 unpa

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at