股票中的情侣配对交易

原 股票中的情侣——配对交易

什么是配对交易?

配对交易(Pairs Trading)是指八十年代中期华尔街著名投行Morgan Stanley的数量交易员Nunzio Tartaglia成立的一个数量分析团队提出的一种市场中性投资策略,,其成员主要是物理学家、数学家、以及计算机学家。

Ganapathy Vidyamurthy在《Pairs Trading: Quantitative Methods and Analysis》一书中定义配对交易为两种类型:一类是基于统计套利的配对交易,一类是基于风险套利的配对交易。

配对交易的原理

该策略监控两个历史相关证券的表现。 当两种证券之间的相关性暂时减弱时,即一只股票向上移动而另一只股票向下移动,对货币交易将做空缩短表现优异的股票并做多表现不佳的股票,并认为两者之间的“差价”最终趋同。 一对股票的价格的分歧可能是由于临时供需变化,一个股票的大单交易,一家公司出现重要新闻等等。

由于配对交易利用配对间的短期错误定价,通过持有相对低估,卖空相对高估,因此其本质上是一个反转投资策略,其核心是学术文献中的股票价格均值回复。尽管配对交易策略非常简单,但却被广泛应用,其之所以能被广泛应用的主要原因是:首先,配对交易的收益与市场相独立,即市场中性,也就是说它与市场的上涨或者下跌无关;其次,其收益的波动性相对较小;第三,其收益相对稳定。

配对交易特点

第一,配对交易利用了两个资产的短暂价格偏离的对称性,进行对冲以获取两个资产的Alpha收益,其核心假设是配对资产的价差具有均值回复性。而这种均值回复是以交易者的非理性行为相关的。因为当市场中存在大量这类想法的交易者时,股票价格会产生上升的惯性,但这种上升惯性仅仅由于这一个非理性因素所驱动,并没有具体实际的基本面因素支撑,因而股价很快会跌落。相反,股价下跌的股票也会产生下跌的惯性,当市场的理性因素占据主导时,价格又回复到原先的水平。而如果交易者能够采用配对交易策略,就可以获得这两项资产价格偏离的收益了。在实际操作中,其执行过程可以简单地描述为:投资者首先选择相互匹配的两个资产&#x

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配对交易,我们通常会选取两只具有相关性的股票进行交易,而计算它们的价格偏差平方SSD是一个重要的步骤。以下是一种计算方法: 1. 导入需要的库,例如`pandas`和`numpy`: ```python import pandas as pd import numpy as np ``` 2. 创建两只股票的价格DataFrame,例如`df1`和`df2`: ```python df1 = pd.DataFrame({'price1': [10, 12, 15, 18, 20]}) df2 = pd.DataFrame({'price2': [8, 11, 14, 17, 21]}) ``` 3. 将这两只股票的价格DataFrame合并为一个DataFrame: ```python df = pd.concat([df1, df2], axis=1) ``` 4. 计算它们的价格比率,即每个时间点上第一只股票价格除以第二只股票价格的比值: ```python df['ratio'] = df['price1'] / df['price2'] ``` 5. 计算价格比率的均值和标准差: ```python mean = df['ratio'].mean() std = df['ratio'].std() ``` 6. 计算偏差,即每个时间点上价格比率与均值的差: ```python df['diff'] = df['ratio'] - mean ``` 7. 计算偏差的平方: ```python df['diff_sq'] = np.square(df['diff']) ``` 8. 计算偏差平方的和,即为SSD: ```python ssd = df['diff_sq'].sum() ``` 完整的代码如下: ```python import pandas as pd import numpy as np df1 = pd.DataFrame({'price1': [10, 12, 15, 18, 20]}) df2 = pd.DataFrame({'price2': [8, 11, 14, 17, 21]}) df = pd.concat([df1, df2], axis=1) df['ratio'] = df['price1'] / df['price2'] mean = df['ratio'].mean() std = df['ratio'].std() df['diff'] = df['ratio'] - mean df['diff_sq'] = np.square(df['diff']) ssd = df['diff_sq'].sum() print('SSD =', ssd) ``` 运行结果为: ``` SSD = 0.1489 ``` 需要注意的是,这里的SSD是价格比率的偏差平方和,并不是价格本身的偏差平方和。在实际的配对交易,我们会使用价格本身的偏差进行交易

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值