jimjinyan / Go-Just-Go

A place to record Jim's study for data analysis
https://jimjinyan.github.io/Go-Just-Go/
0 stars 0 forks source link

第一章 量化交易基础:成对交易与优化 #27

Open jimjinyan opened 5 years ago

jimjinyan commented 5 years ago

1. 成对交易

涉及到的基础概念

  1. Timeseries-时间序列
    • 按时间发生先后顺序排列的数据点序列
    • 把一系列离散的和时间相关的一维数据转化为二维时间, x轴为(通常)时间间隔 y轴为数据。
  2. Stationary - 平稳过程 2.1 严格平稳(或强平稳)

    • 是一种特殊的随机过程: 当时间变化时, 无条件(意味着对起始时间点没有要求)的联合概率分布不发生变化。
      • 平均值、方差不随时间发生变化。 如白噪音
      • 联合概率分布之和时间差值有关, 和其它参数都无关。 2.2 N-th order Stationarity
    • N-th 意味这n个样本的随机过程和该样本平移时间n后的分布是一样的。

    2.3 弱或者广义平稳过程(WSS)

    • WSS只要求第一动量(如, 均值)和自相关系数不随时间变化而发生变化。 同时,第二动量(如方差)在所有时间内为有限的。
    • 这样,满足WSS的时间序列就是在希尔伯特空间里, 那么很多欧式空间里的方法就可以用在此时间序列中了。
  1. Order of Integration -单整阶数 (I(d))(https://en.wikipedia.org/wiki/Order_of_integration

    • 是时间序列的一个统计学的指标(总结), 它表明使一个时间序列为平稳过程(WSS)的最小的d阶差分。
    • 注意I(0)的定义为$$\sum_{i=0}^{\infinit}|a_i|^2<\infinit$$.这个定义, 相对于严格平稳来说, 是松的。 他是弱平稳。
  2. Correlation-相关

    • 显示两个随机变量之间线性关系的强度和方向
    • 计算方式就是标准化后的X和Y乘积的平均数。
  3. Cointergration-协整

    • Two or more series are individually integrated (in the time series sense) but some linear combination of them has a lower order of integration, then the series are said to be cointegrated (所以这两个量不能为I(0))
    • 一个常见的单位根检验方法是Dickey-Fuller test,大致思路如下:假设被检测的时间序列Yt满足自回归模型Yt=αYt−1+εt,其中α为回归系数,εt为噪声的随机变量。若经过检验,发现α<1,则可以肯定序列是平稳的
    • 如果为了排除扰动项的自相关可能, 就需要引入Y的高阶之后, 如Y(t-2), Y(t-3)...等。 这个时候就是ADF检验。

协整和相关的区别:

  1. Buy, Sell, Long, Short的意义

    • Long包含Buy同时还代表了买进之后的方向是多头部位。(做多, 现在手上没有股票)
    • Short包含Sell同时还代表了卖出之后的方向是空头部位。(做空, 现在手上没有股票)
  2. Hedging-对冲

    • An investment position intended to offset potential losses or gains that may be incurred by a companion investment
    • 对冲位置(Hedging Position)
    • 找到一对long/short的投资组合(股票)

成对交易-Pairs trading

  1. 找到有协整关系的两只股票: X, Y。 即找到了对冲位置
    • 注意这里的X, Y一般为I(1).
    • 找配对股票时, 切忌撒网扑鱼似的找, 应为当股票变多时, 会有概率是两只股票偶然发生协整。 所以,数据上的检验只是辅助手段。 需要做基本面判断和分析。
  2. 计算spread,从而确定波动区间
    • 根据定义, 应为X, Y是协整的, 所以存在一个关系$y_t-\betax_t = \mu_t$. 因为已知X, Y, 我们要算的就是$\beta$。 如何算呢?就是最小二乘法得到
  3. 等待, 当两只股票的价差过大时, 做多低价股票, 同时做空高价股票。 等价格回归后, 平仓。
    • 定义, 多大算大?可以对比不同边界下的盈利能力来得到最优边界。

具体代码,见jupyter文件

几个比较好的时间序列参考文章