前言:應(yīng)廣大朋友的需求,本期推出“數(shù)字貨幣通用策略系列---搬磚套利”。搬磚套利通俗的將就是不同市場(chǎng)的相同產(chǎn)品進(jìn)行低買(mǎi)高賣(mài),賺取差價(jià)。可以說(shuō)是熊市中的利器,牛市中的錦上添花。
什么是搬磚套利?
當(dāng)兩個(gè)市場(chǎng)的資產(chǎn)價(jià)格價(jià)差較大時(shí),可以在價(jià)格低的市場(chǎng)買(mǎi)入一定數(shù)量的資產(chǎn),在價(jià)格高的市場(chǎng)拋售相同數(shù)量的資產(chǎn),賺取差價(jià),俗稱(chēng)“搬磚”。
數(shù)字貨幣的套利流程是什么?
由于數(shù)字貨幣市場(chǎng)發(fā)展不太完善,多個(gè)交易所之間相同貨幣的價(jià)格存在大小不同的價(jià)差,因此存在套利的機(jī)會(huì)。
流程如下:
這里面價(jià)差需要滿(mǎn)足主要由幾個(gè)方面的因素構(gòu)成:買(mǎi)賣(mài)手續(xù)費(fèi)、數(shù)字貨幣錢(qián)包轉(zhuǎn)賬的手續(xù)費(fèi)等。
例如:OKEX交易所BTC/USDT價(jià)格7000,HUOBI交易所BTC/USDT價(jià)格7080,交易手續(xù)費(fèi)分別為0.2%,0.2%。
如果我們?cè)贖UOBI賣(mài)出1個(gè)BTC可以獲得7080USDT的收入;在OKEX買(mǎi)入1個(gè)BTC需要花費(fèi)7000USDT,那么
最終賬戶(hù)的BTC總數(shù)量沒(méi)有發(fā)生變化,但是USDT掙了51.84。
策略回測(cè)
回測(cè)仍然在幣寬(www.nextfintech.io)上進(jìn)行。當(dāng)交易所之間的價(jià)差大于手續(xù)費(fèi)時(shí),進(jìn)行搬磚套利,為了模擬錢(qián)包之間的轉(zhuǎn)賬,這里采用搬磚套利后之間反向交易,致使每輪套利后賬戶(hù)中的BTC數(shù)量不發(fā)生變化。
策略相關(guān)說(shuō)明:
1、回測(cè)時(shí)間:2018-08-01至2018-09-01
2、K線(xiàn)頻率:tick
3、交易手續(xù)費(fèi)率:0.2%
4、每次套利的BTC數(shù)量:0.1個(gè)
5、回測(cè)交易所和幣對(duì):HUOBI的BTC/USDT和OKEX的BTC/USDT
策略代碼如下:
- # coding=utf-8
- '''
- ////////////////////////////////////////////////////////////////////////
- //免責(zé)聲明:本策略?xún)H供學(xué)習(xí)使用,請(qǐng)勿直接進(jìn)行實(shí)盤(pán)交易,本策略不承諾任何收益。//
- ///////////////////////////////////////////////////////////////////////
- 策略名稱(chēng):搬磚套利
- 策略說(shuō)明:
- 1、兩個(gè)交易所相同的交易標(biāo)的(此處使用OKEX.btc_usdt和HUOBI.btcusdt)價(jià)差大于雙邊手續(xù)費(fèi)時(shí),存在套利機(jī)會(huì)。
- 2、買(mǎi)入價(jià)格低的交易所品種,同時(shí)賣(mài)出相同數(shù)量?jī)r(jià)格高的交易所品種。
- 3、回測(cè)初始參數(shù):分別添加OKEX交易所的BTC、USDT和HUOBI交易所BTC、USDT的初始持倉(cāng)。
- '''
- from __future__ import print_function, absolute_import
- from nf.api import *
- import pandas as pd
- import numpy as np
- def init():
- global exchange #交易所
- global front #幣對(duì)前項(xiàng)
- global base #幣對(duì)后項(xiàng)
- global symbol #交易幣對(duì)
- global freq #數(shù)據(jù)頻率
- global okex_bid
- global okex_ask
- global huobi_bid
- global huobi_ask
- global okex_price
- global huobi_price
- global okex_fee
- global huobi_fee
-
- exchange=['OKEX','HUOBI']
- front='btc'
- base='usdt'
- freq='tick'
- symbol=[0,0]
- symbol[0]=get_symbol(exchange[0],front,base)
- symbol[1]=get_symbol(exchange[1],front,base)
- okex_bid=0.0
- okex_ask=0.0
- huobi_bid=0.0
- huobi_ask=0.0
- okex_price=0.0
- huobi_price=0.0
- okex_fee=0.0015
- huobi_fee=0.0015
-
- print('init')
- subscribe(symbol,freq,count=1)
- def on_tick(tick):
- global exchange #交易所
- global front #幣對(duì)前項(xiàng)
- global base #幣對(duì)后項(xiàng)
- global symbol #交易幣對(duì)
- global freq #數(shù)據(jù)頻率
- global okex_bid
- global okex_ask
- global huobi_bid
- global huobi_ask
- global okex_price
- global huobi_price
- global okex_fee
- global huobi_fee
-
- vol=0.1
- '''
- 由于行業(yè)發(fā)展不太完善,因此很難保證數(shù)據(jù)100%的完整性,需要判斷獲取數(shù)據(jù)的數(shù)量量是否
- 滿(mǎn)足要求,您可以根據(jù)實(shí)際需要在策略邏輯中進(jìn)行相應(yīng)處理。
- '''
- if tick['symbol']==symbol[0]:
- okex_price=tick['price']
- if tick['symbol']==symbol[1]:
- huobi_price=tick['price']
-
- if okex_price!=0.0 and huobi_price!=0.0:
- if okex_price-huobi_price > okex_fee*okex_price + huobi_fee*huobi_price :
- print(tick['created_at'].strftime('%Y-%m-%d %H:%M:%S'),'存在套利空間,買(mǎi)入huobi賣(mài)出okex--->')
- #判目前賬戶(hù)是否滿(mǎn)足套利
- if get_positions(exchange[1],base)[0]['available'] > vol*huobi_price and get_positions(exchange[0],front)[0]['available'] > vol :
- order_buy={'symbol': symbol[1], 'volume': vol, 'side':1, 'order_type': 1,'price':huobi_price}
- order_sell={'symbol': symbol[0], 'volume': vol, 'side':2, 'order_type': 1,'price':okex_price}
- order_batch([order_buy,order_sell],combine=True)
- print('下單成功,HUOBI買(mǎi)入的BTC轉(zhuǎn)入OKEX,OKEX的USDT轉(zhuǎn)入HUOBI')
- #調(diào)整HUOBI的BTC至
- order_volume(symbol[1],get_positions(exchange[1],front)[0]['available']-5,side=2,order_type=1,price=okex_price)
- #調(diào)整OKEX的BTC至
- order_volume(symbol[0],5-get_positions(exchange[0],front)[0]['available'],side=1,order_type=1,price=huobi_price)
- else:
- print('余額不足')
-
- if huobi_price-okex_price > okex_fee*okex_price + huobi_fee*huobi_price :
- print(tick['created_at'].strftime('%Y-%m-%d %H:%M:%S'),'存在套利空間,買(mǎi)入okex賣(mài)出huobi--->')
- #判目前賬戶(hù)是否滿(mǎn)足套利,不滿(mǎn)足則調(diào)整持倉(cāng)
- if get_positions(exchange[0],base)[0]['available'] > vol*okex_price and get_positions(exchange[1],front)[0]['available'] > vol :
- order_buy={'symbol': symbol[0], 'volume': vol, 'side':1, 'order_type': 1,'price':okex_price}
- order_sell={'symbol': symbol[1], 'volume': vol, 'side':2, 'order_type': 1,'price':huobi_price}
- order_batch([order_buy,order_sell],combine=True)
- print('下單成功,OKEX買(mǎi)入的BTC轉(zhuǎn)入HUOBI,HUOBI的USDT轉(zhuǎn)入OKEX')
- #賣(mài)OKEX的BTC
- order_volume(symbol[0],get_positions(exchange[0],front)[0]['available']-5,side=2,order_type=1,price=huobi_price)
- #買(mǎi)HUOBI的BTC
- order_volume(symbol[1],5-get_positions(exchange[1],front)[0]['available'],side=1,order_type=1,price=okex_price)
- else:
- print(' 余額不足')
- def on_execution_report(execrpt):
- print('交易回執(zhí):',execrpt,'\n\n\n')
-
- def on_error(code,info):
- print('錯(cuò)誤代碼:',code,'錯(cuò)誤代碼說(shuō)明:',info)
-
- def on_backtest_finished(indicator):
- print('績(jī)效對(duì)象打印:',indicator)
- if __name__ == '__main__':
- run(strategy_id='86eaae00-b33a-11e8-a9e3-00ffa9185dbb',
- filename='main.py',
- mode=MODE_LIVE,
- token='6778ebc60a3b004bcc7286a5566a28df')
累計(jì)收益率:22.89%
年化收益率:1260.70%
基準(zhǔn)收益率:-8.36%
最大回撤:7.42%
Alpha:12.90
Beta:0.49
從回測(cè)結(jié)果中可以看出搬磚套利實(shí)現(xiàn)了穩(wěn)定的套利交易,且回撤小,特別是對(duì)目前數(shù)字貨幣處于熊市中來(lái)說(shuō),簡(jiǎn)單的持幣不會(huì)增值。相比基準(zhǔn)可以實(shí)現(xiàn)較好的超額收益。接下來(lái)我們用分鐘級(jí)別行情回測(cè)搬磚套利,看看是不是有同樣好的效果。
策略回測(cè)結(jié)果如下:
回測(cè)結(jié)果如下(所有結(jié)果按每日公允匯率幣/USD結(jié)算):
累計(jì)收益率:11.46%
年化收益率:269.43%
基準(zhǔn)收益率:-8.36%
最大回撤:15.92%
Alpha:3.05
Beta:0.60
從回測(cè)效果中看,分鐘級(jí)別的絕對(duì)收益和相對(duì)收益明顯不如tick級(jí)別的好,主要是由于tick級(jí)別產(chǎn)生的套利機(jī)會(huì)會(huì)被市場(chǎng)不斷的修正,因此分鐘級(jí)別的套利機(jī)會(huì)明顯減少。
小結(jié):數(shù)字貨幣市場(chǎng)的搬磚套利可謂是熊市中的利器,牛市中的錦上添花?梢詫(shí)現(xiàn)穩(wěn)定的收益。但是搬磚也有其弊端:資金容量小,因此大規(guī)模的資金會(huì)增加策略的沖擊成本;滑點(diǎn)和市場(chǎng)延遲也是需要的考慮的因素,特別是市場(chǎng)劇烈波動(dòng)的時(shí)候,市價(jià)單往往會(huì)造成失敗的套利。
看了今天的策略分享,你是否還覺(jué)得意猶未盡呢?別著急,福利時(shí)間到!
為了讓更多的投資者能夠了解量化交易,幣寬(BitQuant)有幸邀請(qǐng)到了頂尖數(shù)字貨幣量化策略師李辰,舉辦國(guó)內(nèi)首個(gè)數(shù)字貨幣量化交易課程,為您揭開(kāi)數(shù)字貨幣量化交易的神秘面紗。
李辰畢業(yè)于南開(kāi)大學(xué)陳省身數(shù)學(xué)研究所,曾在私募信寧投資和格林基金分別擔(dān)任量化策略研究員以及投資經(jīng)理,有資深的金融市場(chǎng)量化和大數(shù)據(jù)投研經(jīng)驗(yàn),構(gòu)建了完整的模型體系。
其個(gè)人業(yè)績(jī)包括:
開(kāi)發(fā)了完整的數(shù)據(jù)分析處理體系,能從各種類(lèi)型和數(shù)量級(jí)別的數(shù)據(jù)中挖掘出有價(jià)值的信息。
具體包括:行情數(shù)據(jù)(K線(xiàn)、逐筆和盤(pán)口等各個(gè)級(jí)別的數(shù)據(jù))、基本面類(lèi)數(shù)據(jù)(宏觀數(shù)據(jù)、外匯數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)等)和其他數(shù)據(jù)(個(gè)人接觸過(guò)包括同花順、京東、銀聯(lián)、和訊等機(jī)構(gòu)的平臺(tái)數(shù)據(jù),以及從互聯(lián)網(wǎng)抓取的各種類(lèi)型數(shù)據(jù))
開(kāi)發(fā)過(guò)高頻策略、趨勢(shì)追蹤、趨勢(shì)反轉(zhuǎn)、特殊交易信號(hào)、跨品種統(tǒng)計(jì)套利、多因子選股、行業(yè)輪動(dòng)、事件驅(qū)動(dòng)、風(fēng)險(xiǎn)平價(jià)、機(jī)器學(xué)習(xí)擇時(shí)等多種模型,運(yùn)用于實(shí)盤(pán)取得了不錯(cuò)的成績(jī)。
發(fā)現(xiàn)多種CTA模型,在數(shù)字貨幣市場(chǎng)獲得了難以相信的效果。例如對(duì)低手續(xù)費(fèi)的賬戶(hù),有多種高頻模型可獲得年化1000%以上的收益,且最大回撤幾乎可以忽略,資金也有一定容量;對(duì)高手續(xù)費(fèi)的賬戶(hù),有多種趨勢(shì)和特殊交易信號(hào)的模型可以取得年化300%以上的收益,且資金容量較高,收益回撤比遠(yuǎn)遠(yuǎn)高于傳統(tǒng)金融市場(chǎng)。
本次課程目錄導(dǎo)覽:
如何免費(fèi)獲得本次公開(kāi)課呢?添加幣寬美女策略師微信:liuluyang52605252
頂級(jí)策略師手把手帶您玩轉(zhuǎn)數(shù)字貨幣量化交易,穿越牛熊,逆風(fēng)翻盤(pán)。
聲明:本文主要用于共同探討和學(xué)習(xí),請(qǐng)勿直接用于實(shí)盤(pán)交易。
后續(xù)將推出更多系列的量化策略,歡迎大家關(guān)注,共同交流。
未經(jīng)本人同意,嚴(yán)禁轉(zhuǎn)載。