专栏首页量化投资与机器学习基于Copula函数的配对交易

基于Copula函数的配对交易

配对交易

配对交易的概念非常直观,主要遵循两个步骤的过程。首先,找到两只历史上价格一起波动(相关性较大)的证券。然后,在随后的交易期内监测两者之间的价差。如果价格偏离,差价扩大,做空其中一只证券,买入另一只证券。两只证券配对交易的概念也可以被扩展到多只证券中:比如可以监测一只证券与另外一个证券组合之间的价差变化,也可以监测两个证券组合之间的价差变化,这就是广义的配对交易,即统计套利。

配对交易的第一步是判断证券之间价格的波动是不是存在相关性,以寻找合适的证券配对。Krauss (2016) 中整理了关于配对交易的相关方法及对应的论文,主要的方法有以下几种:距离(Distance)、协整、时间序列分析、 随机控制、 机器学习及copula。

基于Copula函数的配对交易

大部分寻找配对证券的方法,都会假设证券价格(收益率)服从假定的统计分布。例如,一般的会假设证券价格服从正态分布,两只证券的价格服从二元正态分布。但是,通常这种分布的假设会存在以下问题:

1、即使单只证券的边际分布服从正态分布,也并不意味着两个证券的价格一起会服从二元正态分布。

2、二元正态分布有很多假设条件,其中很大一部分是不切实际的。比如:两只证券之间的相关性是线性的,没有尾部依赖(尾部风险发生的概率极低),分布是对称的(价格上行和下行的可能性是一样的)。

但在真实的市场中,我们会发现很多时候,当价格波动较大,大幅上涨或下跌的时候,股票之间的相关性会比平稳市场中表现的更高,特别是市场恐慌的时候。有些股票,平时表现的相关性不高,一旦出现重大消息导致的大涨大跌时,会表现出更高的相关性。对于这些尾部依赖的问题,Copula函数就可以很好的解决。

直观的理解Copula

SKlar定理

Copula这个概念是Sklar在1959年提出的,理解Copula的前提是弄清楚SKlar定理:

任意两个随机变量分别服从连续边缘随机分布

,若 是 的二元联合分布函数,那么存在唯一的Copula函 ,使得 。反之如果 是一个Copula函数,而 是两个任意的概率分布函数,那么有上式定义的 函数一定是一个联合分布函数,且对应的边缘分布刚好就是 。

Sklar认为,对于N个随机变量的联合分布,可以将其分解为这N个变量各自的边缘分布和一个Copula函数,从而将变量的随机性和耦合性分离开来。其中,随机变量各自的随机性由边缘分布进行描述,随机变量之间的耦合特性由Copula函数进行描述。换句话说,一个联合分布关于相关性的性质,完全由其Copula函数决定。

仔细理解以下等式,等式左边变量是 分别是 的边缘分布函数,值域均为 ,右边 为 的联合分布函数,值域为 ,也就是说copula是两个随机变量边缘分布函数的函数,其结果与两个变量的联合分布函数一致。

C(F_1(s_1),F_2(s_2)) = H(s_1, s_2)

如果用 ,那么上式可以写成:

C(u,v) = H(F_1^{-1}(u), F_2^{-1}(v))

其中, 为反函数,可以看出,一个联合分布关于相关性的性质,完全由它的Copula函数决定,跟边缘分布没有任何关系。

正式定义

对于一个二元的copula函数 : ,只要满足以下条件:

  • 定义域为[0,1]X[0,1],值域为[0,1] , 即C:[0,1]X[0,1] -> [0,1 ]
  • C(u,0)=C(0,v) = 0; C(u,1)=u; C(1,v)=v
  • 0<=C对u的偏导<=1 ; 0<=C对v的偏导<=1

尾部依赖

Copula中有一个重要的概念,也是copula吸引我们最主要的原因:tail dependence(尾部依赖)。比如二元高斯分布中,描述的是两个变量整体的相关性,而真实的情况时,两个股票在大幅下跌时(或上涨时)更有相关性,尾部依赖的定义如下。

\begin{aligned} \lambda_{l}:=& \lim _{q \rightarrow 0^{+}} \mathbb{P}\left(U_{2} \leq q \mid U_{1} \leq q\right), \\ \lambda_{u}:=& \lim _{q \rightarrow 1^{-}} \mathbb{P}\left(U_{2}>q \mid U_{1}>q\right) . \end{aligned}

有哪些常用的Copula函数?

Copula函数主要分为两大类:Elliptical copulas和Archimedean copulas。其中Elliptical copulas是通过已知多元分布反推出来的,比如多元正态分布对应的Copula为高斯Copula,多元t分布对应的Copula为t-Copula。Archimedean copulas是人工构造出来的满足Copula定义的Copula函数。还有一种混合copula(Mixed copulas)结合了Ellipyical copula和Archimedean copulas,比如Clayton-Frank-Gumbel mixed copula:

C_{m i x}\left(u_{1}, u_{2} ; \boldsymbol{\theta}, \mathbf{w}\right):=w_{C} C_{C}\left(u_{1}, u_{2} ; \theta_{C}\right)+w_{F} C_{F}\left(u_{1}, u_{2} ; \theta_{F}\right)+w_{G} C_{G}\left(u_{1}, u_{2} ; \theta_{G}\right)

Archimedean copulas

Archimedean Copula 函数簇的分布函数有着统一的函数表达形式:

C\left(u_{1}, u_{2} ; \theta\right)=\phi^{[-1]}\left(\phi\left(u_{1} ; \theta\right)+\phi\left(u_{2} ; \theta\right)\right)

其中 称为Archimedean Copula函数的生成函数,生成函数需要满足以下条件:

条件1 :

\phi:[0,1] \times \Theta \rightarrow[0, \infty)

是一个连续 , 严格減函数和凸函数 , 且

\phi(1)=0

(

\phi(1 ; \theta)=0

)。

条件2 :

\phi^{-1}(u ; \theta)=\left\{\begin{array}{l} \phi^{-1}(u ; \theta) \text { if } 0 \leq t \leq \phi(0 ; \theta) \\ 0 & \text { if } \phi(0 ; \theta) \leq u \leq \infty \end{array}\right.
并且要求 \phi^{-1} \text { 在 }[0, \infty)是

N

维单调的。

即:

\begin{array}{l} (-1)^{k} \phi^{-1,(k)}(u ; \theta) \geq 0, \text { 对任意的 } 0 \leq u \leq 1, k=0,1, \ldots, d-2 \text { 成立且 }\\ (-1)^{d-2} \phi^{-1,(d-2)}(u ; \theta) \text { 是一个非增凸函数。 } \end{array}

根据不同的生成元函数能够得到不同的阿基米德Copula函数,常见有:Frank Copula、Clayton Copula 及 Gumbel Copula。

  • Gumbel:
  • Frank:
  • Clayton:
  • Joe:
  • N13:
  • N14:

Gumbel Copula函数对上尾部的厚尾特性比较敏感,对下尾部的厚尾特性不敏感,因此适合于对上尾部厚尾特性明显而下尾部厚尾特性不明显的耦合结构建模;Clayton Copula 函数适合于对下尾部厚尾特性明显而上尾部厚尾特性不明显的耦合结构建模;FrankCopula 的密度分布呈“U”字形,适合于描述具有对称厚尾结构变量的耦合关系。

我们可以看到,以上所有的copula都只有一个参数 ,它决定了两个变量之间的紧密程度。我们在拟合数据时,也就是在拟合这个参数 。

如何选择Copula函数?

实际应用场景中,我们要根据具体的需求,结合各copula函数的性质,选取合适的copula函数,以下是几个需要注意的地方:

  • 上尾依赖(Upper tail dependence) 意味着两个随机变量可能同时出现非常大(分布的右侧)的值。例如,当处理收益序列时,上尾依赖意味着这两只股票很可能同时获得较大收益。
  • 下尾依赖(Lower tail dependence) 意味着两个随机变量可能同时出现非常小的值(分布的左侧)。这比上尾依赖更强,因为股票更有可能一起下跌而不是一起上涨。
  • Frank copula和Gaussian copula 根本没有尾部依赖关系。正是基于Gaussian copula为CDO定价,导致了2008年的金融危机。
  • 与Gaussian copula相比,Frank copula具有更强的中心依赖性。
  • 对于VaR的计算, Gaussian copula过于乐观,而Gumbel copula过于谨慎。
  • 具有上尾依赖性质的copula: Gumbel, Joe, N13, N14, Student-t.
  • 具有下尾依赖性质的copula: Clayton, N14 (weaker than upper tail), Student-t.
  • 没有尾部依赖性质的copula: Gaussian, Frank.

数据拟合

基于已知的数据拟合copula函数主要分为两个步骤:将数据转换为对应的分位数或概率值(0-1区间),对概率值进行拟合。常用的方法主要基于极大似然估计和经验分布,Python中有现成的工具包可以方便的完成这些工作:

Python Copula工具包:https://github.com/sdv-dev/Copulas

主要支持以下copula的拟合:

基于Copula的交易策略

接下来,我们基于过去的文献对于Copula应用在配对交易的实际策略做一个汇总。

核心逻辑:条件概率

基于copula的配对交易策略,条件概率一直是核心逻辑,如果两个证券 的copula函数为 ,则其条件概率的可以如下表示:

P\left(U_{1} \leq u_{1} \mid U_{2}=u_{2}\right):=\frac{\partial C\left(u_{1}, u_{2}\right)}{\partial u_{2}}, P\left(U_{2} \leq u_{2} \mid U_{1}= u_{1}\right):=\frac{\partial C\left(u_{1}, u_{2}\right)}{\partial u_{1}}

条件概率怎么应用到策略中呢?比如:

  • 当 ,就意味着 被低估(Undervalued),就可以做多 做空 。
  • 当 ,就意味着 被低估(Undervalued),就可以做多 做空 。

以上只是一个简单的示例。真实策略开发的流程涉及到模型训练测试等,可以参考以下流程:

策略1:基于一定阈值的价格条件

具体可参考:[Liew et al. 2013] [Botha et al. 2013]

  • 进场规则:
    • 就意味着 被低估(Undervalued)且 高估(Undervalued),就可以做多 做空 。
    • 就意味着 被低估(Undervalued)且 高估(Undervalued),就可以做多 做空 。

出场规则:只要任何一种情况的概率突破0.5,就离场。比如进场规则1中,某个时刻 超过了0.5,就触发了出场规则。

策略2:基于一定阈值的价格条件

策略1是基于价格触发的进出场规则,其实基于收益率的交易规则在copula的应用中更为常见,很多多品种的统计套利多基于收益率。具体可参考:[Xie et al. 2014] [Stübinger et al. 2016] [Rad et al. 2016] [da Silva et al. 2017].

错误定价指数(Mispricing Index, MPI)

以下是基于条件概率,对于证券数学公式: 的错误定价指数的定义:

其中 分别为 在t期间的收益率。

累积错误定价指数(Cumulative Mispricing Index, CMPI)

把过去一段时间的MPI(减去0.5)相加,就是累积错误定价指数:

进场规则

  • 大于等于 时,做 且做多
  • 小于等于 时,做空 且做多
  • 大于等于 时,做空 且做多
  • 小于等于 时,做空 且做多

出场规则

  • 如果进场规则是 ,那么当 回到0或者触发止损后出场
  • 如果进场规则是 ,那么当 回到0或者触发止损后出场
  • 出场后, 均重置为0

总结

当然以上的逻辑都是基于已经选好的配对,那在配对确定的逻辑上,我们可以根据相关系数Kendall's tau系数等指标,也可以根据基本面的业务逻辑,比如根据公司的细分行业分类,主营业务是否一致等逻辑。Copula本身只是用来对两个或多个变量之间的依赖关系进行建模的数学工具,当我们把它应用在交易策略的逻辑中时,还有很多现实的问题需要细化,本文从copula的理解,数据的拟合到策略的逻辑,给大家做了一个比较完整的介绍,希望能给大家带来一些启发。

参考文献

1、Krauss, Christopher. “Statistical Arbitrage Pairs Trading Strategies: Review And Outlook.” Journal of Economic Surveys, vol. 31, no. 2, 2016, pp. 513–545., doi:10.1111/joes.12153.

2、Pei, Hansen. “Copula for Pairs Trading: A Detailed, But Practical Introduction.” Hudson & Thames, 20 Jan. 2021, hudsonthames.org/copula-for-pairs-trading-introduction/.

3、Pei, Hansen. “Copula for Pairs Trading: Sampling and Fitting to Data.” Hudson & Thames, 4 Feb. 2021, hudsonthames.org/copula-for-pairs-trading-sampling-and-fitting/.

4、Pei, Hansen. “Copula for Pairs Trading: A Unified Overview of Common Strategies.” Hudson & Thames, 17 Feb. 2021, hudsonthames.org/copula-for-pairs-trading-overview-of-common-strategies/.

5、B Sabino da Silva, F., Ziegelman, F. and Caldeira, J., 2017. Mixed Copula Pairs Trading Strategy on the S&P 500. Flávio and Caldeira, João, Mixed Copula Pairs Trading Strategy on the S&P, 500.

6、Liew, R.Q. and Wu, Y., 2013. Pairs trading: A copula approach. Journal of Derivatives & Hedge Funds, 19(1), pp.12-30.

7、Patton, A.J., 2012. A review of copula models for economic time series. Journal of Multivariate Analysis, 110, pp.4-18.

8、Patton, A.J., 2009. Copula–based models for financial time series. In Handbook of financial time series (pp. 767-785). Springer, Berlin, Heidelberg.

9、Rad, H., Low, R.K.Y. and Faff, R., 2016. The profitability of pairs trading strategies: distance, cointegration and copula methods. Quantitative Finance, 16(10), pp.1541-1558.

10、Stander, Y., Marais, D. and Botha, I., 2013. Trading strategies with copulas. Journal of Economic and Financial Sciences, 6(1), pp.83-107.

11、Stübinger, J., Mangold, B. and Krauss, C., 2018. Statistical arbitrage with vine copulas. Quantitative Finance, 18(11), pp.1831-1849.

12、Vidyamurthy, G., 2004. Pairs Trading: quantitative methods and analysis (Vol. 217). John Wiley & Sons.

13、Xie, W., Liew, R.Q., Wu, Y. and Zou, X., 2016. Pairs trading with copulas. The Journal of Trading, 11(3), pp.41-52.

本文分享自微信公众号 - 量化投资与机器学习(Lhtz_Jqxx),作者:全网Quant都在看

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • matlab使用Copula仿真优化市场风险数据VaR分析

    鉴于违约风险敞口,违约概率和违约信息损失,估计交易对手组合的潜在损失。一个Copula对象用于每个债务人的信用与潜在变量模型。潜在变量由一系列加权潜在信用因子以...

    拓端
  • VaR系列(五):Copula模型估计组合VaR

    之前总结的大部分模型都是基于正态性的假设,但实际上,正态性假设并不非常符合金融时间序列的特征。如果从其他分布假设出发,对于单个资产来说,已经有t-garch等模...

    量化小白
  • R语言实现 Copula 算法建模依赖性案例分析报告

    copula是将多变量分布函数与其边际分布函数耦合的函数,通常称为边缘。Copula是建模和模拟相关随机变量的绝佳工具。Copula的主要吸引力在于,通过使用它...

    拓端
  • R语言Copula函数股市相关性建模:模拟Random Walk(随机游走)

    在引入copula时,大家普遍认为copula很有趣,因为它们允许分别对边缘分布和相依结构进行建模。

    拓端
  • R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

    在对诊断测试准确性的系统评价中,统计分析部分旨在估计测试的平均(跨研究)敏感性和特异性及其变异性以及其他测量。灵敏度和特异性之间往往存在负相关,这表明需要相关数...

    拓端
  • TensorFlow团队:TensorFlow Probability的简单介绍

    在2018年TensorFlow开发者峰会上,我们(TensorFlow团队)宣布发布TensorFlow Probability:一种使机器学习研究人员及相关...

    AiTechYun
  • 所有模型都是错的,但其中有些是有用的!

    2008年的金融危机以惊人的方式向世界揭示了金融模型的脆弱性。自金融危机以来,有一 个词一再出现:模型风险(model risk)。

    量化投资与机器学习微信公众号
  • R语言ARMA-GARCH-COPULA模型和金融时间序列案例

    最近我被要求撰写关于金融时间序列的copulas的调查。从读取数据中获得各种模型的描述,包括一些图形和统计输出。 > oil = read.xlsx(temp...

    拓端
  • 统计学学术速递[8.23]

    【1】 A New Asymmetric Copula with Reversible Correlations and Its Application to...

    公众号-arXiv每日学术速递
  • 资源 | 概率编程工具:TensorFlow Probability官方简介

    选自Medium 作者:Josh Dillon、Mike Shwe、Dustin Tran 机器之心编译 参与:白妤昕、李泽南 在 2018 年 TensorF...

    机器之心
  • R语言多元统计包简介:各种假设检验 统计方法 聚类分析 数据处理

    基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面做个简要的综述。多元统计的特殊应用在CRNA的其它任务列表(...

    机器学习AI算法工程
  • R语言使用HAR-RV预测实际波动率Realized Volatility案例

    在建议用于预测已实现波动率的模型中,Corsi的HAR-RV在性能和简便性方面均脱颖而出。 “ HAR-RV”代表已实现波动性的异质自回归模型,并且基于所谓的“...

    拓端
  • R语言︱常用统计方法包+机器学习包(名称、简介)

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! htt...

    素质
  • 基于R语言股票市场收益的统计可视化分析

    金融市场上最重要的任务之一就是分析各种投资的历史收益。要执行此分析,我们需要资产的历史数据。数据提供者很多,有些是免费的,大多数是付费的。在本文中,我们将使用Y...

    拓端
  • 摩根纽约总部量化女神手把手教你学Python机器学习与量化交易

    “量化投资”是指投资者使用数理分析、计算机编程技术、金融工程建模等方式,通过对样本数据进行集中比对处理,找到数据之间的关系,制定量化策略,并使用编写的软件程序来...

    Python中文社区
  • WINBUGS对随机波动率模型进行贝叶斯估计与比较

    现有的有关财务模型的大多数文献都假设资产的波动性是恒定的。然而,这种假设忽略了波动聚类,高峰,厚尾,波动性和均值回复的实际市场回报的特点,不能用恒定的波动模型。...

    拓端
  • 金融/语音/音频处理学术速递[7.5]

    【1】 Temporal Analysis of Worldwide War 标题:世界大战的时序分析

    公众号-arXiv每日学术速递
  • 配对交易千千万,强化学习最NB!(附文档+代码讲解)

    本推文会介绍如何在利用股票分钟数据,基于强化学习来做配对交易。包括基本概念和具体实现;这里采用的强化学习方法,是类似多臂老虎机(N-armed bandit)问...

    量化投资与机器学习微信公众号
  • VaR系列(三):DCC模型估计组合VaR

    需要说明的一点是,如果我们假设所有的单个资产收益率都服从正态分布,资产组合的收益率是单个资产收益率的加权和,也服从正态分布,这种情况下,计算VaR只需要对组合的...

    量化小白

扫码关注云+社区

领取腾讯云代金券