黑鐵時代: Python之比特幣量化交易套利

  • 本文取名參考自知乎熱文 青銅時代:中本聰之惑
  • 本文不表明我所任職機構的任何觀點
  • 本文不提供任何交易建議
  • 本文在技術層面上徹底屬實

最近一年,我一直在研究加密貨幣量化交易,最近總算是告一段落, 隨着各類緣由,我將淡出這個領域,這些積累以前想寫個掘金小冊,可是掘金方面一直沒有反饋,乾脆直接寫出來了。 在這裏我想給你們講講如何用Python寫一個年化收益 50% 的量化交易套利策略。python

介紹

通俗來說,量化交易是用編程語言實現自動買賣獲利。目前常見的策略有作市、高頻、趨勢、套利、網格等,各有千秋,本文只介紹套利。套利策略自己也是風險極低的策略,能夠理解爲對市場的短時間不合理訂價行爲反向操做獲利。編程

‘青銅時代:中本聰之惑’ 一文中的搬磚套利已經不可行,在機構大規模進入以後,我的量化交易者愈來愈難,可是期現套利依然是有空間的,咱們打開網站 www.okex.com/spot/trade#… www.okex.com/future/trad… 能夠看到 BTC/USDT 價格是10887,BTC/USD 季度合約 價格是11085,這中間便有 200USD 的價差。爲何形成這樣的狀況呢? 由於現貨跟合約的槓桿倍數致使,現貨最多5倍槓桿,合約則20-100倍。這就形成了上漲週期合約價格 > 現貨價格, 下跌週期合約價格 < 現貨價格。皆爲槓桿之功。理想狀況應該合約價格 = 現貨價格,但市場是一直波動的,因此期現套利這個策略就是賺取了現貨合約不合理訂價的錢。markdown

原理

咱們把價差定義爲 diff = 合約價格-現貨價格, 那麼會出現兩種狀況。編程語言

  1. diff > 0
  2. diff < 0

當diff > 0時,說明合約溢價,訂價不合理, 作空合約,作多現貨。 當diff < 0時,說明合約貼水,訂價不合理, 作多合約,作空現貨。oop

具體原理是: 假設當前合約價格 10000, 現貨價格9400,diff = 600, 訂價不合理,咱們進行作空合約,作多現貨。 當訂價合理時, diff應該等於0,好比合約9800, 現貨價格9800,作空部分盈利200,作多部分盈利400, 總盈利600。也就是6%。網站

機會真的存在麼?

我寫了個監控機器人,監控到2019年價差最低-3%,最高5%(數據來源於日線收盤價),再加上中間的波動,其實已經累計超過了20%, 收益就在這些波動中產生。 加密

因此機會當時是存在的,而且入場門檻很是低。基本每一個人都能作到月化4%的收益。

實際狀況

僞代碼spa

# 初始化客戶端
spot = spotClient()
future = futureClient()
# 獲取期現價格及價差
spot_price = spot.get_price()
future_price = future.get_price()
diff_price = future_price - spot_price

# 說明合約溢價, 作空合約, 作多現貨
if diff_price > 0:
    future.sell(future_price, 1)
    spot.buy(spot_price, 1)
# 說明合約貼水, 作多合約, 作空現貨
if diff_price < 0:
    future.buy(future_price, 1)
    spot.sell(spot_price, 1)
複製代碼

在實際狀況中,合約能夠開多倍槓桿,現貨卻不能,致使資金利用率低。實際上在okex、huobi、binance平臺均可以經過借幣的形式作空、作多現貨。便可以達到高利用率。code

波動仍是迴歸

價差曲線是波動無序的,經過網格線性開倉,能夠下降風險。由於沒法預知價差的極限,因此網格開倉是必要的。orm

可是怎麼平倉呢? 是等到徹底迴歸, 仍是每次收斂指定值就平掉一部分呢? 我我的傾向於後者,在價差波動中獲利。

感悟

加密貨幣量化交易留給我的參與的空間愈來愈小了,頭部玩家開始用資金優點、低手續費、低延遲驅趕着普通quanter。像韭菜收割機那種策略已經不復存在。祝你們在這個高度投機的市場玩得愉快。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息