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量化交易之雙邊套利原理(上篇)


當然這只是最基礎的雙邊套利策略,還有很多細節問題沒有處理,例如:怎麼同時在兩個交易所下單,如果只有一邊成交了怎麼辦,如果只有部分成交了怎麼辦,如果一邊賣完了怎麼辦……

尤其是,如果基差始終不進入可套利區間怎麼辦?極端行情總不會天天有把

這麼多內容當然不可能一篇文章就講完。下次千千將繼續介紹雙邊套利如何在不可套利區間內進行套利。

以上是本次介紹的全部內容,感謝觀看。

回覆:搬磚之王 可免費獲得千千量化無風險組合套利(教學版本)源代碼,包含多交易所雙邊套利+三角套利+跨交易所三角套利策略。


分享到:


相關文章: