1. 程式人生 > >數字貨幣交易所交易額是否注水?我們來驗證一下

數字貨幣交易所交易額是否注水?我們來驗證一下

今年,隨著加密貨幣市場各大幣種的價格下跌,大量空氣幣專案的破發和交易平臺的跑路,投資者們已經不像2017年那樣狂熱的追求暴漲,而是更多的將目光放在了追求安全、穩定上。

作為加密貨幣市場的信任中介,中心化的交易所承載著人們對交易信任與安全的重任。然而,如今對中心化交易所的質疑聲音卻越來越大,黑客攻擊,交易刷量,暗箱操作,宕機爆倉,資金回滾,平臺幣歸零等負面訊息不絕於耳。特別是在最近,有報道指出,作為交易量全球排名前三的OKEx的每日交易金額可能被注水放大了 19.2 倍,而老牌交易所火幣的每日交易金額很有可能被注水放大了 12.5 倍。當然,也有人對此報道的資料提出了質疑,懷疑其譁眾取寵,博人眼球,計算過程頗有考究。

那麼到底,交易所的注水是真是假呢?

我們相信,資料是最可靠的證明。

因此,我們利用資料,通過一個很簡單的方法就可以驗證。

我們選取了最近一直處於輿論風頭浪尖的OKEx的資料來檢驗。

  • 計算方法:

1.獲取交易所逐筆和盤口資料

通過MATRIX DATA 中實時盤口資料 和 逐筆資料 介面獲取OKEx交易所當前時間段市值前五幣種的盤口和逐筆資料。

MATRIX DATA:一家專門為量化交易者提供多家交易所深度行情資料的服務商,資料包括實時盤口、tick、K線,歷史逐筆、盤口、K線,以及指數資料、公有鏈資料等,以API介面和CSV下載的方式調取。

以下示例以Python為例。

逐筆資料示例程式碼:

def get_trades_data(symbol = 'BTC/USD.OK.TW'):

url = "https://api.matrixdata.io/matrixdata/api/v1/historicalTrades"

params = {'symbol':symbol,

'limit':'500'}

response = requests.get(url + concat_param(params), headers=headers)

#Get json result

result = response.json()

try:

if result['Head']['Code'] == '200':

return result['Result']

except:

pass

return []

盤口資料示例程式碼:

def get_depth_data(symbol = 'BTC/USD.OK.TW'):

url = "https://api.matrixdata.io/matrixdata/api/v1/depth"

params = {'symbol':symbol}

response = requests.get(url + concat_param(params), headers=headers)

result = response.json()

try:

if result['Head']['Code'] == '200':

temp = result['Result']

temp['Bids'] = float(temp['Bids'][0][0])

temp['Asks'] = float(temp['Asks'][0][0])

return temp

except:

pass

return []

(其他語言的demo可以在官網上自行查詢,支援demo複製貼上)

2. 查詢買一&賣一價

根據兩個資料的時間進行匹配,找到每筆交易資料最近的盤口買一和賣一價。

示例程式碼:

merge_data = pd.merge_asof(trade_data,depth_data,on = 'dt',direction = 'nearest',by = 'Symbol',tolerance = pd.Timedelta('2s'))

3.計算主動交易量

若成交價格在買一和賣一價中間,則我們記為非主動成交(疑似虛假交易)。若成交價格大於賣一價或小於買一價,則我們記為主動成交(真實交易)。

計算公式:

4.計算主動成交量指標

計算對應的主動成交量與總成交量的比,以此作為主動成交量指標。

計算公式:

這個主動成交量指標,就是衡量交易所交易額的“注水”量了!

5.獲取主動成交量指標的時間序列曲線

每間隔一段時間,計算過去100條成交資料的主動成交量指標。得到一條主動成交量指標的時間序列曲線。

從這條曲線,我們可以查看出哪個階段的“注水量”比較高,哪個階段“注水量”比較低。

  • 資料展示

1.OKEx主要幣種的主動成交量指標時間序列曲線

2.重點行情的盤口資料

我們選取一些時刻重點關注,特別是主動成交量比較小的時候,比如說下圖中畫紅圈的那個點的資料。

上面這個紅點的盤口資料如下:

由於資料量較大,我們在此只展示部分資料。

從展示的部分成交資料來看,改點主動成交量指標偏低是由於某幾筆大額成交發生在了最佳買賣價之間。這有可能是交易所為提高市場活躍度虛構的成交資料,也可能是某些大戶為了隱藏成交意圖而設定的冰山訂單。無論如何,理解並關注市場微觀結構都能對加深大家對市場的認知。

3.關於此行情的分析與指標侷限性提示

我們把這個指標稱為主動成交量指標,旨在衡量交易所返回資料中以積極的市價單成交的交易量比例。考慮到若交易所想在成交量資料中“注水”,主要是在買一和賣一價間虛構成交資料,所以該指標也能從側面反映交易所成交量的“注水”程度。

在計算指標過程中,我們考慮到真實的交易場景下會包含冰山訂單,瞬時間最佳報盤價的變化,資料延時等問題,該指標在計算過程中會包含一定的誤差。因此指標的值只能提供參考,對成交量資料給出相對的分析。

同時,我們在觀察這個主動成交量指標時,更多的是要觀察曲線的時間段,是否和某些輿情有所重合,或者出於什麼理由,交易量會有“注水”的現象。在這些資料的背後,才蘊藏著交易的真相。

結論:本次我們選取的是OKEx的合約交易來提取主動成交量指標。從時間序列圖上來看,okex的合約交易主動成交量比例還是蠻高的。儘管OKEx最近負面訊息纏身,但畢竟是老牌交易所,近期又降低了交易手續費。這無疑都吸引了一批新老使用者,鉅額的真實成交量也讓交易所沒有了“注水”的動機。