python量化交易之双边套利原理(上篇)

双边套利策略原理(上篇)

Hello大家好,千千这次给大家带来双边套利策略的原理介绍,总共分上下两篇。

python量化交易之双边套利原理(上篇)


基础原理说明:利用同一个品种在不同市场的定价不同,同时买入并卖出来进行套利,即在定价较高的市场卖出标的物,在定价较低的市场买入标的物。

本文以伪代码的形式介绍双边套利,看完你就可以自己写一个双边套利策略了。

首先介绍一下订单簿(orderbook),在股票市场叫level-2行情。

订单簿中有四个元素,分别是买价、买量、卖价、卖量,英文分别叫bid_price、bid_amount、ask_price、ask_amount。

如果只考虑价格,画成图就是这样:

python量化交易之双边套利原理(上篇)


那怎么才知道有没有套利机会呢?

假设有两家交易所,分别叫A和B,他们都有同一品种,例如BTC。我们把A交易所订单簿上的报价记为bid_price_A、ask_price_A,把B交易所订单簿上的报价记为bid_price_B、ask_price_B。

当我们在A交易所卖出固定数量的BTC,我们把卖出数量记为amount,因为要马上成交,所以我们卖出的价格必须是对手价,也就是买一价bid_price_A。

卖出的收入为:

python量化交易之双边套利原理(上篇)


同理,在B交易所买入BTC的花费为:

python量化交易之双边套利原理(上篇)


A所卖出,B所买入之后的盈利就是收入减去花费:

python量化交易之双边套利原理(上篇)


稍微计算一下数学公式

python量化交易之双边套利原理(上篇)


发现盈利=( A所买价 - B所卖价 ) * 数量

如果在同一家交易所,显然不可能一个品种订单簿上的买价会超过卖价,但在两个不同的交易所,这是极有可能发生的事情。尤其是在行情剧烈波动的时候,这个价格差会拉的非常大,存在极大的套利空间。

我们把 A所买价 - B所卖价 称为 基差。

一般来说,基差会在零值附近波动,我们把它画成图:

python量化交易之双边套利原理(上篇)


当基差大于零的时候,我们在A所卖出,B所买入,这叫正向套利;

当基差小于零的时候,我们在B所卖出,A所买入,这叫反向套利。

交易数量amount取决于买一量和卖一量中较小的那一个,并且这个值要大于最小下单量,否则将无法全部成交,套利失败。


python量化交易之双边套利原理(上篇)

python量化交易之双边套利原理(上篇)


这是理想情况,如果有手续费呢?我们把之前的公式升级一下:

python量化交易之双边套利原理(上篇)


因为交易了两次(买入一次,卖出一次),所以要减去2倍的手续费。

然后把基差图也升级一下:

python量化交易之双边套利原理(上篇)


图中蓝线以内为不可套利区间,在这个范围内进行套利,收益将无法覆盖手续费;蓝线以外为可套利空间,收益将超过手续费,获得无风险收益。

最后以伪代码形式总结双边套利策略的核心逻辑:

python量化交易之双边套利原理(上篇)


当然这只是最基础的双边套利策略,还有很多细节问题没有处理,例如:怎么同时在两个交易所下单,如果只有一边成交了怎么办,如果只有部分成交了怎么办,如果一边卖完了怎么办……

尤其是,如果基差始终不进入可套利区间怎么办?极端行情总不会天天有把

这么多内容当然不可能一篇文章就讲完。下次千千将继续介绍双边套利如何在不可套利区间内进行套利。

以上是本次介绍的全部内容,感谢观看。

回复:搬砖之王 可免费获得千千量化无风险组合套利(教学版本)源代码,包含多交易所双边套利+三角套利+跨交易所三角套利策略。


分享到:


相關文章: