preData.py
例子1:bid和ask成對檔的情況下,要校驗的字符串爲:bid:ask:bid:ask:...
"data": [{
"instrument_id": "BTC-USDT",
"asks": [["3366.8", "9", 10],[ "3368","8",3]],
"bids": [
["3366.1", "7", 0],[ "3366","6",3 ]
],
"timestamp": "2018-12-04T09:38:36.300Z",
"checksum": -1881014294
}]
該例子對應的checksum字符串爲:3366.1:7:3366.8:9:3366:6:3368:8
例子2:bid和ask不成對檔的情況 ,要校驗的字符串爲:bid:ask:ask:ask:...
"data": [{
"instrument_id": "BTC-USDT",
"asks": [["3366.8", "9", 10],[ "3368","8",3],[ "3372","8",3 ]],
"bids": [
["3366.1", "7", 0]
],
"timestamp": "2018-12-04T09:38:36.300Z",
"checksum": 831078360
}]
此例子對應的checksum String 將會是 3366.1:7:3366.8:9:3368:8:3372:8
depth 頻道用戶收到推送數據爲:
首次Example Response
{
"table": "spot/depth",
"action": "partial",
"data": [{
"instrument_id": "ETH-USDT",
"asks": [
["8.8", "96.99999966", 1],
["9", "39", 3],
["9.5", "100", 1],
["12", "12", 1],
["95", "0.42973686", 3],
["11111", "1003.99999795", 1]
],
"bids": [
["5", "7", 4],
["3", "5", 3],
["2.5", "100", 2],
["1.5", "100", 1],
["1.1", "100", 1],
["1", "1004.9998", 1]
],
"timestamp": "2018-12-18T07:27:13.655Z",
"checksum": 468410539
}]
}
增量:
{
"table": "spot/depth",
"action": "update",
"data": [{
"instrument_id": "BTC-USDT",
"asks": [],
"bids": [
["3983", "789", 0]
],
"timestamp": "2018-12-04T09:38:36.300Z",
"checksum": -1200119424
}]
}
#trade
{'table': 'spot/trade', 'data': [{'side': 'sell', 'trade_id': '38994605', 'price': '6225.5', 'size': '0.08', 'instrument_id': 'BTC-USDT', 'timestamp': '2020-03-23T14:03:17.042Z'}]}
#deep
{'table': 'spot/depth', 'action': 'update/sell', 'data': [{'instrument_id': 'BTC-USDT', 'asks': [['6225.7', '0.15653571', '3'], ['6225.8', '0.08', '1'], ['6226.2', '0.02980727', '1'], ['6226.3', '0.12709411', '4'], ['6226.4', '0.20279634', '3'], ['6226.5', '0.03080703', '2'], ['6226.6', '0', '0'], ['6226.7', '0', '0'], ['6226.8', '2', '1'], ['6226.9', '0', '0'], ['6227.1', '0.80187679', '1'], ['6227.2', '0', '0']]}
#spot/depth爲400深度頻道名
首次Example Response
{
"table":"spot/depth",
"action":"partial",
"data":[
{
"instrument_id":"ETH-USDT",
"asks":[
[
"162.5",
"14.29884",
2
],
[
"162.51",
"2.084362",
1
],
...
[
"168.51",
"7.760755",
2
],
[
"168.57",
"0.02",
1
]
],
"bids":[
[
"162.49",
"1.556106",
3
],
[
"162.47",
"0.00913",
1
],
...
[
"155.15",
"70",
1
],
[
"155.13",
"3",
1
]
],
"timestamp":"2019-04-16T10:17:28.507Z",
"checksum":1141851215
}
]
}
增量:
{
"table":"spot/depth",
"action":"update",
"data":[
{
"instrument_id":"ETH-USDT",
"asks":[
[
"162.5",
"0",
0
],
[
"162.61",
"1.209",
2
],
[
"168.69",
"0.006",
1
],
[
"168.73",
"0.002082",
1
]
],
"bids":[
[
"162.49",
"1.512544",
2
],
[
"162.47",
"0.05333",
2
],
[
"162.46",
"14.608508",
3
],
[
"162.43",
"10.61874",
3
],
[
"162.41",
"27.303906",
2
],
[
"162.4",
"14.762929",
6
],
[
"162.39",
"11.045909",
1
],
[
"162.36",
"19.230907",
8
],
[
"162.31",
"3.927598",
4
],
[
"162.3",
"5.353085",
5
],
[
"162.29",
"6.569261",
12
],
[
"162.25",
"8.308575",
3
]
],
"timestamp":"2019-04-16T10:17:29.045Z",
"checksum":227291232
}
]
}
#spot/trade爲交易頻道名
{
"table": "spot/trade",
"data": [{
"instrument_id": "ETH-USDT",
"price": "162.12",
"side": "buy",
"size": "11.085",
"timestamp": "2019-05-06T06:51:24.389Z",
"trade_id": "1210447366"
}]
}
#tbdata
spot/depth
#askscurr/bidcurr
[[price,order,quant]] 即現貨 深度價格、此價格數量、此深度由幾筆訂單組成
[['6225.5', '0.02981205', '1'], ['6225.6', '0.19081205', '3'], ['6225.7', '0.43585531', '6'], ['6226.2', '0', '0'], ['6226.3', '1.991', '1'], ['6226.4', '0.07298931', '1'], ['6226.5', '0.002', '2'], ['6227.1', '0.80287679', '2'], ['6228', '0.307', '4'], ['6230', '0.001', '1'], ['6234.5', '0', '0'], ['6235.5', '0.946', '1'], ['6235.6', '0', '0'], ['6237.4', '1', '1'], ['6237.7', '1', '1'], ['6241.6', '0', '0'], ['6243.6', '0', '0'], ['6248.4', '0.06420545', '1'], ['6255.9', '0.06528076', '2'], ['6267.9', '3.33445013', '1'], ['6530.6', '0', '0'], ['6532.9', '0', '0']]
#deeplimit
[timestamp,price,?limit?]#limit部分還不是很清楚爲何是小數
['2020-03-23T14:03:17.222Z', 6225.5, 0.02981205, 0.57243615, 2.61513186, 0.08, 0, 0, 0, 0, 1.991, 0.07298931, 0.004, 0, 0, 2.0, 0, 0.01801751, 1.60575358, 0, 0, 0, 0.0555999, 0.8, 0, 0, 0, 1.228, 0.035, 0, 0, 0, 0, 7.76559972, 0, 0, 0, 0, 0, 0, 1.925058, 0.1, 0.02551, 0, 1.089, 0, 0.001, 0.001, 0, 0, 0, 0, 0.0515, 0, 0, 0.05514094, 2.602, 0, 0, 0, 0, 0.572, 0, 0, 0, 0.32895899, 0.461, 0, 0, 0.048, 0, 0.159, 0, 0, 0.005, 0, 0.393, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0.1707, 0.3, 0, 0, 0, 0, 0, 3.51016, 0.8, 0, 0, 0, 0.33305288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.002, 0, 0.1, 0, 0.0019996, 0, 0, 0, 0, 0.004, 0.00321273, 0, 0, 0, 0, 0.335, 0, 0.8, 0, 0.001, 0, 0, 0.50594165, 0, 0.005, 0.001, 0, 1.0, 0, 0, 0.0515, 0, 2.002, 0, 0, 0.8, 0, 0.063, 0, 0.015, 0, 0, 0.001, 0, 0.1, 0, 0, 0.11, 0, 0, 0.02551, 0, 0, 0, 0, 0, 0, 0.393
- 深度行情間隔0.1s,trade不一定
- 判斷某一時刻trade現貨交易的價格是否在深度行情的買賣價格+-10以內,如果是,那麼就把深度行情中的askvolume和bidvolume加到該時刻的deeplimit中--即將限價交易成交量(訂單數*它們買賣的數量)存起來
- deeplimit 前100是ask,100後纔是bid
- 成交量可以判斷波幅
- 疑問:round處理是在幹什麼?
微服務架構
- 可以使用微服務架構
- https://www.zhihu.com/question/65502802
- 把MongoDB作爲持久化存儲數據庫,Redis做緩存數據庫,通過異步消息發佈給訂閱用戶,把接收數據和處理數據分成兩個微服務,避免相互干擾
系統模塊
- 預處理系統,預測模型,還有交易策略,還有下單優化算法,還有止損系統