今年,随着加密货币市场各大币种的价格下跌,大量空气币项目的破发和交易平台的跑路,投资者们已经不像2017年那样狂热的追求暴涨,而是更多的将目光放在了追求安全、稳定上。
作为加密货币市场的信任中介,中心化的交易所承载着人们对交易信任与安全的重任。然而,如今对中心化交易所的质疑声音却越来越大,黑客攻击,交易刷量,暗箱操作,宕机爆仓,资金回滚,平台币归零等负面消息不绝于耳。特别是在最近,有报道指出,作为交易量全球排名前三的OKEx的每日交易金额可能被注水放大了 19.2 倍,而老牌交易所火币的每日交易金额很有可能被注水放大了 12.5 倍。当然,也有人对此报道的数据提出了质疑,怀疑其哗众取宠,博人眼球,计算过程颇有考究。
那么到底,交易所的注水是真是假呢?
我们相信,数据是最可靠的证明。
因此,利用MATRIX DATA的数据,我们用一个很简单的方法就可以验证。
我知道你一定很好奇,让我们一起来看看吧。
我们在挂单的交易机制下,正常的成交价应该是大于卖一价或者小于买一价的。若交易所想在成交量数据中“注水”,一般都是在买一和卖一价间虚构成交数据。因此我们的方法,就是利用我们MATRIX DATA的逐笔数据和盘口数据,做一个匹配。
找出交易所返回的成交数据中以积极的市价单成交的交易量,我们把这个指标称为主动成交量指标。然后我们要随机抽取不同时间段,不同币种的交易,观察这个主动成交量的变化,特别是在和某些重大舆情重叠的时间段里,这个指标的变化。这样我们才能分析出交易所“注水”的真正原因和推手。
在计算指标过程中,我们考虑到真实的交易场景下会包含冰山订单(隐藏部分委托数量(不在系统中公开显示)的委托,也称为隐藏委托(hidden order)),瞬时间最佳报盘价的变化,数据延时等问题,该指标在计算过程中会包含一定的误差。因此指标的值只能提供参考,对成交量数据给出相对的分析。
我们这次选取了Huobi的交易数据来检验。
在我们的官网中逐笔数据和盘口数据接口分别获取某一时间段Huobi 5种主流货币的交易数据。官网:matrixdata.io
在API接口页面,我们提供了四种主流编程语言的demo,需要的小伙伴可以直接复制之后替换掉里面的参数使用。
我们这里展示一段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 []
根据两个数据的时间进行匹配,找到每笔交易数据最近的盘口买一和卖一价。
示例代码:
merge_data = pd.merge_asof(trade_data,depth_data,on = 'dt',direction = 'nearest',by = 'Symbol',tolerance = pd.Timedelta('2s'))
若成交价格在买一和卖一价中间,则我们记为非主动成交。若成交价格大于卖一价或小于买一价,则我们记为主动成交。
计算公式:
计算对应的主动成交量与总成交量的比,以此作为主动成交量指标。
这个主动成交量指标,就是衡量交易所交易额的“注水”量了!
每间隔一段时间,计算过去100条成交数据的主动成交量指标。得到一条主动成交量指标的时间序列曲线。
从这条曲线,我们可以查看出哪个阶段的“注水量”比较高,哪个阶段“注水量”比较低。
图1:BTC/USDT 交易
图2:ETH/USDT 交易
图3:XRP/USDT 交易
图4:BCH/USDT 交易
图5:LTC/USDT 交易
我们重点关注下图1中画红圈的那个点的数据。
我们举例看一下这个点的盘口数据。
(由于数据量较大,我们在此只展示部分数据。)
在过去的文章里,我们分别分析了OKEx交易的期货合约交易和现货交易的主动成交量情况。今天我们检验的Huobi交易所现货交易的主动成交量分布又如何呢?
从今日我们录得的数据来看,Huobi交易所的主动成交量指标约在0.2-1宽幅震荡。出现如此大的波动,有可能表明Huobi交易所本身存在着巨量的虚假成交,但交易所本身也存在着许多的活跃用户,他们贡献了大量的真实且主动的成交量。因此主动成交量指标数据存在噪音,难以得出具体的“注水量”。
同时我们还可以在品种间进行横向比较,比如BCH的成交量主动性就微弱与ETH,BTC,BTC等市值排名靠前的币种。
若小伙伴们有兴趣,可以在我们的讨论群里与我们交流。