配对交易-低风险统计套利量化交易 Python 实战 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
1722332572
V2EX    Python

配对交易-低风险统计套利量化交易 Python 实战

  •  
  •   1722332572 2020-04-14 22:03:03 +08:00 3990 次点击
    这是一个创建于 2059 天前的主题,其中的信息可能已经有所发展或是发生改变。

    配对交易简介

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

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

    基于统计套利的配对交易策略是一种市场中性策略,具体的说,是指从市场上找出历史股价走势相近的股票进行配对,当配对的股票价格差( Spreads )偏离历史均值时,则做空股价较高的股票同时买进股价较低的股票,等待他们回归到长期均衡关系,由此赚取两股票价格收敛的报酬。

    数据分析

    数据来自交易所:币安,数据下载:http://www.tf86.com/binance/

    数据包括几种常见数据货币每个小时的价格,每一种数字火币的交易记录有 20000 条。 如下图所示:

    具体的数据如下图所示:

    数据处理

    因为每种数字货币的价格不一样,为了体现出他们的关联性,首先要进行归一化操作,将价格归一化处理。这里采用的是 sklearn 中的 MinMaxScaler 。

    ## 节选代码 from sklearn.preprocessing import MinMaxScaler min_max_scaler = MinMaxScaler() np_list=np.asarray(data_items).reshape(-1,1) X_train_minmax = min_max_scaler.fit_transform(np_list) 

    归一化之后,基于 matplotlib 进行可视化

    肉眼可见,最上面两个曲线之间有一定的关联性,两者在分离之后多次汇合,接下来借助协方差来评估二者之间的关联度。

    模型实现

    协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

    采用 numpy 中的 cov 函数来实现协方差的计算。

    import numpy as np np.cov(x,y) 

    输出样例:

    [[ 9.44749900e-09 -4.05910662e-09] [-4.05910662e-09 3.38730102e-08]] 

    效果评估

    4 个数字货币的交易记录 其中 0,1 之间有很高的关联度

    可以在两个价格分离的时候,买入低价的 A,卖出高价的 B,当二者价格重新回归的时候平仓,即可以获得盈利。

    相关知识

    配对交易: https://wiki.mbalib.com/wiki/%E9%85%8D%E5%AF%B9%E4%BA%A4%E6%98%93

    币安: https://www.binance.com/cn/register?ref=23297069

    协方差: https://www.zhihu.com/question/20852004

    相关教程

    sklearn:http://sklearn123.com/

    Python:http://pythonok.com/

    Pytorch:http://pytorch123.com/

    8 条回复    2020-04-15 09:46:51 +08:00
    andy101wong
        1
    andy101wong  
       2020-04-14 22:05:57 +08:00
    配对交易,嗯,楼主你等等,我明天再来和你说配对交易是怎么破产的。
    1722332572
        2
    1722332572  
    OP
       2020-04-14 22:07:53 +08:00
    @andy101wong 为何要明天,不如今晚。
    jarry777
        3
    jarry777  
       2020-04-14 22:26:28 +08:00
    找出历史股价走势相近的股票,还需要用 Python 么,麻烦下载个同花顺,点击工具栏上的“预测”。
    arthurire
        4
    arthurire  
       2020-04-14 22:31:56 +08:00
    难点不是 Pair Trading,而是提前想好何时采用 Pair Trading,还有就是爆仓了在哪里跳楼.
    chen1164162915
        5
    chen1164162915  
       2020-04-14 22:40:55 +08:00
    跳楼前记得发个帖子 警示后人
    randm
        6
    randm  
       2020-04-15 09:08:51 +08:00
    17 年入币圈至今,每年正收益,17/18 区块链元年不说,胆有多大赚的多大,19/20 年收益都翻倍了,从最开始分钟线到小时线再到日线,目前是看周线在玩,网格交易,向上偏离均线就慢慢卖,向下偏离就慢慢买,只玩几个大币种现货。潜伏在几个交易所量化群,火币,中币等,能以年为单位赢的真不多,耗费了青春,蹉跎了岁月,养活了交易所
    1722332572
        7
    1722332572  
    OP
       2020-04-15 09:45:16 +08:00
    @randm 每年正收益不香吗?
    1722332572
        8
    1722332572  
    OP
       2020-04-15 09:46:51 +08:00
    @jarry777 多谢,已经下载同花顺,学习中。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1248 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 17:17 PVG 01:17 LAX 09:17 JFK 12:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86