zoukankan      html  css  js  c++  java
  • 随机分析、随机控制等科目在量化投资、计算金融方向有哪些应用?

    https://www.zhihu.com/question/51506670/answer/127948559

    从去年入坑算法交易到现在也一年多了,这中间断断续续地自学随机控制,并且尝试性地把它带到研究里面来。可惜从学习到研究再到学习它,也没有研究出什么的成果,最近也没有再追踪学界在这方面的研究了。随机控制给我的感觉就是主线很清晰,但系统学习的话要学习很多定理,而掌握这些定理又直接决定你能不能自己把问题推导的下去。所以它还真是个不小的坑。我一身狼狈地从坑里爬出来,没挖到什么矿。所幸还有这么多还没下坑的工友,且听我把话拉。

    随机分析在金融数学(计算金融/数量金融/金融工程)里应用非常广泛,基础概念可以参考Shreve的Stochastic Calculus for Finance I & II。但随机分析的应用很难一下子列举得完,因为它其实不单是一门科目了,它更是研究金融问题的一种方法论。

    我这里单说随机控制和算法交易。先从随机过程开始吧。随机过程可以用来描述order book的各种动态变化,像Markov process,Poisson process都是常见常用的模型。离散的随机过程用的更多,连续的随机过程主要是为了analytically tractable(便于发论文)。举个以前提到过的例子就是Rama Cont的第二有名的论文:A stochastic model for order book dynamics(他最著名的应该还是stylized facts那篇,也推荐大家都去学习一个),他就是把order book上每个价位上的的order的数量X_t的变化规律看作一个birth-death process,也是Markov Chain的一种,其中每一个event(包括市价单、限价单和撤单指令)都是独立的泊松过程:

    X_{t+1}sim x_{t}+Dleft( x_{t}	heta (p)+mu 1_{p=p_{a}||p=p_{b} } 
ight)_{t+1}+B(lambda (p))_{t+1}

    其中D(cdot )为death process,x_t	heta (p)代表撤单的rate,mu 1_{p=p_{a}||p=p_{b} }代表市价单下达的rate,B(cdot )为birth process,lambda (p)代表限价单下达的rate,p代表order对应的价格,lambda (cdot )可以看作是一个关于某order对应价格到bid/ask的距离的函数。因为限价单是提供/增加流动性的,所以是birth process,而市价单和撤单都是吸收/减少流动性的,所以是death process。

    这个模型本身并不完美,但这是一个非常重要的发凡起例之作,很多应用的展开都可以依据此模型为起点,求解或者模拟出各种各样的概率,比如Rama Cont在论文里主要阐述的mid-price涨跌的概率会在做市策略或者高频趋势里用到(高频领域不是我专长,不再展开)。还有比如某个价位上的限价单被执行的概率,或者市价单以ask价买入或以bid价卖出可被执行的概率(说穿了也就是mid-price在此市价单下达之前不会发生变动的概率),有了这些执行概率,算法交易也就变得更加具体化,而不仅仅是几个通用算法了。

    如果你要优化一个目标函数(比如要收益最大/成本最小),而决定你收益/成本的策略是一个随机过程的话,你要做的就是随机最优控制来找到这个达到优化目标的策略。随机最优控制的应用还真就是算法交易方面比较多,也就是@雷骁 同学提到的optimal execution和optimal order placement。

    可是,想没想过为什么这么多人把随机控制的方法都集中在研究算法交易上?

    我想可以从经典的Merton problem上找原因,也就是如果你的投资组合(价值为X_t^{pi })包含一项风险资产(如股票,投资于该资产的金额为pi _t)和一项无风险资产(如现金),在连续时间内,如何使效用U(X_T^{pi *})最大化,也就是如何找到最优的投资策略pi ^*的问题。Merton problem就是个绕不过的随机最优控制的问题。

    在经典的Merton problem框架下,你的pi _t只影响你的X_t^{pi },而不会影响风险资产的价格变化;但当你要在很短的时间内频繁变动pi _t,且会大量买卖风险资产的时候,风险资产的价格S_t势必受到影响,也就进而影响了你的X_t^{pi },这时候风险资产的价格是个维纳过程,你的财富X_t^{pi }也是一个维纳过程。这然后才有了进一步的思考——pi _t是如何影响S_t的?

    直观来看,影响来自于两方面:一方面是可能不利的影响,即pi _t使得S_t向着于你不利的方向走,也就是各种冲击成本(temporary和permanent)。为了最大化我们的效用,我们就要控制这种不利影响——这就是optimal execution;另一方面是可能有利的影响,即把pi _t部署在一个有利的点位上,等着S_t向你走来,也就是设定限价买单指令价格(S_t-varrho_t ^{-})和限价卖单指令价格(S_t+varrho_t ^{+}),其中 varrho_{t}^{mp }  就是到mid-price的距离,为了最大化我们的效用,我们就要抓住这种有利影响,得到varrho_{t}^{mp } 的最优解 ——这就是optimal order placement。

    这基本上就是算法交易要解决的两大问题了。这两大问题下面也会细化为各种小问题,而且这两个问题也并不是完全并列的关系,常常会有覆盖和交叉。但它们的共同点都是要解决一个tradeoff:价格不确定性和时间不确定性,这两个不确定性无法同时解决。

    在optimal execution方面,我们要优化的对象无非两个:什么时间下单,每单下多大的量。算法交易的早期算法TWAP/VWAP之类,不就是这回事嘛。目前的研究主要就是尝试不断放宽各种条件,使其更接近真实的市场环境。这些条件通常包括:执行一个order是会造成当前可执行价格变动但不会影响mid-price(temporary impact)还是连同mid-price也一起变动(permanent impact)?impact是个关于时间和数量的线性还是非线性的函数?要不要加入一个关于inventory的惩罚函数(也就是是否允许以及多大程度允许指定数量的order到期时没有全部执行)?要不要设定一个价格阈值,超过多少钱我就不买,或者低于多少钱我就不卖?如果考虑到其他交易者造成的市场冲击呢?如果引入dark pool呢?

    但这些条件都只是适用于市价单,如果要引入限价单,就涉及到optimal order placement了。把限价单和市价单结合起来,同时放在上面各种限制条件之下求取的优化结果,可能才是一个完整的optimal execution。当然optimal order placement也被单独拿出来用于高频做市方面的研究。

    我相信肯定会有不少人质疑说这些东西是否实用。我本不想理会这些cynical的声音,但哪怕就放在一个实用的层面来看,随机控制也是真有用。它会为我们提供一种视角,一种世界观,可以使我们相信过去怀疑的东西,也可以使我们怀疑过去坚信的东西。所以如果把我们面对的问题比作一个苹果,我还没有能力咬破它的表皮。而随机控制就像是一把水果刀,就算你把表皮都削掉,我们还是要亲口把苹果咬下去。




    -----尾声-----

    最后说回到Merton problem,顺便爆一点自己三个月前研究留下的边角料。我的资金配置的问题,也就是上面提到的pi ,一直是拍脑袋处理的,就是预设我的持仓中最多有N个股票组合,那就把资金等分为N份,每当有出现交易信号,就把1/N的资金投进去,然后每次平仓之后再把资金做一次rebalance。这显然不是一个最优的配置,但我一直糊弄boss说这怎么着也算是个sub-optimal了,可是我自己都说服不了自己啊。所以我就拿出Merton problem的框架,假设每个协整组合的价差都服从OU过程,资金X_t^{pi }依然服从维纳过程,然后上HJB解偏微,我倒要看看这最优的pi 到底长啥样。(还有个边角料的边角料就是我把每一个协整组合的内部的资金配置Pi 也算过了,结论还真是协整系数的倍数呢。。。)

    这里顺带说一句,在买方做策略也好,做算法也好,并不是很多人想象的P宗的天下,你要真拿出一个P measure的方法,投决会的那些boss们会想尽办法打你的脸,如果你能拿出Q measure来证实你的想法,那你分分钟就可以打投决会的脸了。所以买方根本离不开Q宗,而且Q measure的部分既是重点也是难点(至少对我而言),但是解出来的结论哪怕是无堪大用的边角料,也是能供人咂摸赏玩的边角料。

    好了,说回到我的边角料:结论倒也(同样)没什么意外的,如果有N个协整组合,Pi 为T*N的矩阵,列均值向量与OU过程中的mu 向量成线性相关,而不是等权重。所以等权重的Pi 显然不是最优解。。。不过在实际操作中我们通常是会提前减掉协整系数的常数项,mu 都差不多大小,所以等权重的Pi 被说成是次优方案也未尝不可。

    铺垫了这么多,好玩的边角料终于要来了:在求解每一个协整组合的内部的资金配置Pi 的过程中,我得到了一个很漂亮的线性的PDE,从而顺利地求解得到pi ^*。然后发现这个线性的PDE可以再做一点文章。先引入协整组合的价差做一个change of measure,这个残差项可以看作是个鞅,然后看能变换成什么样的Q measure。在Q measure下股票价格也是鞅咯,同时服从布朗运动,然后我们把协整价差带入到股票价格的SDE里,得到的结果大致是这样:

    dvarepsilon _t = - frac{1}{2} \, {
m{Tr}} ({f{aOmega }})dt + {f{asigma}}d \, {f{W_t}}

    不去管这几个系数是什么,你看大致样子也知道它是布朗运动啊!这也就意味着,在真实世界的P measure里均值回归的协整组合,在Q measure又现出了布朗运动的原形。这既令人困惑,也令人忧惧——

    你说这真实概率空间里的所谓均值回归,会不会给人一种钦定的感觉呀?

    http://www.columbia.edu/~ww2040/orderbook.pdf

  • 相关阅读:
    Linux_磁盘管理
    Linux_安装软件包
    Linux_文件打包,压缩,解压
    Linux_系统管理命令(工作中经常使用到的)
    The method queryForMap(String, Object...) from the type JdbcTemplate refers to the missing type DataAccessException
    org.springframework.beans.factory.BeanDefinitionStoreException错误
    Java中动态代理工作流程
    Spring之<context:property-placeholder location="classpath:... "/>标签路径问题
    数据库连接问题之:Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
    java环境变量的配置
  • 原文地址:https://www.cnblogs.com/dhcn/p/14010019.html
Copyright © 2011-2022 走看看