0%

tomoon | 具体 API 执行细节分析

这里具体分析有

  • order

spot

order

币安现货订单信息中并不包含手续费的信息。

获取历史单子

  • /api/v3/historicalTrades

这里面有几个参数,这里只说 fromId,开盘的 id0

但是,这个接口需要 API-KEY,虽然很奇怪,但是,确实是需要的。问了一下客服,说是后期要更正。

不过,我没有用代码成功试过,用的是 postman 的方式。

下单 现价买入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
'symbol': 'DOGEBUSD',
'orderId': 1204446219,
'orderListId': -1,
'clientOrderId': 'gvSkXjgY4ZL4PlNYXwkVcq',
'transactTime': 1680853469724,
'price': '0.08000000',
'origQty': '100.00000000',
'executedQty': '0.00000000',
'cummulativeQuoteQty': '0.00000000',
'status': 'NEW',
'timeInForce': 'GTC',
'type': 'LIMIT',
'side': 'BUY',
'workingTime': 1680853469724,
'fills': [],
'selfTradePreventionMode': 'NONE'
}

price 是正常的。

下单 市价买入

参数

1
2
3
4
5
6
{
symbol="dogebusd",
order_type=OrderType.MARKET.value,
direction=OrderDirection.SELL.value,
amount=100,
}

币安返回

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
'symbol': 'DOGEBUSD',
'orderId': 1204330063,
'orderListId': -1,
'clientOrderId': '6hHEFr6Y0lFtnjFCIxB7eS',
'transactTime': 1680849482013,
'price': '0.00000000',
'origQty': '100.00000000',
'executedQty': '100.00000000',
'cummulativeQuoteQty': '8.24000000',
'status': 'FILLED',
'timeInForce': 'GTC',
'type': 'MARKET',
'side': 'BUY',
'workingTime': 1680849482013,
'fills': [
{
'price': '0.08240000',
'qty': '100.00000000',
'commission': '0.10000000',
'commissionAsset': 'DOGE',
'tradeId': 101181520
}
],
'selfTradePreventionMode': 'NONE'
}

在交易所的订单查询页面中发现手续费是 0.1 DOGE

所以,到手后,显示我手中只有 99.9DOGE,这点要尤为注意。

并且,上述的价格显示是 0,经过我经验所得, price 应该等于 cummulativeQuoteQty / executedQty

下单 市价卖出

手续费是 0.00818235 BUSD

获取订单 市价订单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
'symbol': 'DOGEBUSD',
'orderId': 1204330063,
'orderListId': -1,
'clientOrderId': '6hHEFr6Y0lFtnjFCIxB7eS',
'price': '0.00000000',
'origQty': '100.00000000',
'executedQty': '100.00000000',
'cummulativeQuoteQty': '8.24000000',
'status': 'FILLED',
'timeInForce': 'GTC',
'type': 'MARKET',
'side': 'BUY',
'stopPrice': '0.00000000',
'icebergQty': '0.00000000',
'time': 1680849482013,
'updateTime': 1680849482013,
'isWorking': True,
'workingTime': 1680849482013,
'origQuoteOrderQty':
'0.00000000',
'selfTradePreventionMode': 'NONE'
}

市价单的 price 也是 0

获取订单 限价订单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
'symbol': 'DOGEBUSD',
'orderId': 1202332687,
'orderListId': -1,
'clientOrderId': '168079492779601',
'price': '0.09030000',
'origQty': '122.00000000',
'executedQty': '122.00000000',
'cummulativeQuoteQty': '11.01660000',
'status': 'FILLED',
'timeInForce': 'GTC',
'type': 'LIMIT',
'side': 'BUY',
'stopPrice': '0.00000000',
'icebergQty': '0.00000000',
'time': 1680794928623,
'updateTime': 1680794930928,
'isWorking': True,
'workingTime': 1680794928623,
'origQuoteOrderQty': '0.00000000',
'selfTradePreventionMode': 'NONE'
}

获取订单 获取不存在订单

1
2
3
4
{
"code":-2013,
"msg":"Order does not exist."
}

取消订单 取消挂单

订单没有成交过
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
'symbol': 'DOGEBUSD',
'origClientOrderId': 'krLx2GGoH1iXXjvCUbAF54',
'orderId': 1204454960,
'orderListId': -1,
'clientOrderId': 'JGnukP229vYxuotnCKL93J',
'price': '0.08000000',
'origQty': '100.00000000',
'executedQty': '0.00000000',
'cummulativeQuoteQty': '0.00000000',
'status': 'CANCELED',
'timeInForce': 'GTC',
'type': 'LIMIT',
'side': 'BUY',
'selfTradePreventionMode': 'NONE'
}

可以看到 price0.

取消订单 取消已经结束的订单

1
2
3
4
{
'code': -2011,
'msg': 'Unknown order sent.'
}

取消订单 不存在的订单

1
2
3
4
{
'code': -2011,
'msg': 'Unknown order sent.'
}

uswap

order

取消全部订单

即便账户中没有订单,也不会报错。和现货逻辑不一样。

position

获取 position

做多

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
'symbol': 'DOGEBUSD',
'positionAmt': '66',
'entryPrice': '0.083',
'markPrice': '0.08307000',
'unRealizedProfit': '0.00462000',
'liquidationPrice': '0',
'leverage': '5',
'maxNotionalValue': '1000000',
'marginType': 'cross',
'isolatedMargin': '0.00000000',
'isAutoAddMargin': 'false',
'positionSide': 'BOTH',
'notional': '5.48262000',
'isolatedWallet': '0',
'updateTime': 1681102687880
}

当仓位很安全的时候,liquidationPrice 为 0。

做空

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
'symbol': 'DOGEBUSD',
'positionAmt': '-66',
'entryPrice': '0.08298',
'markPrice': '0.08296000',
'unRealizedProfit': '0.00132000',
'liquidationPrice': '4.29168558',
'leverage': '5',
'maxNotionalValue': '1000000',
'marginType': 'cross',
'isolatedMargin': '0.00000000',
'isAutoAddMargin': 'false',
'positionSide': 'BOTH',
'notional': '-5.47536000',
'isolatedWallet': '0',
'updateTime': 1681103147393
}
  • positionAmt: 持仓头寸数量
    • 正数做多
    • 负数做空
  • notional: 持仓头寸的名义价值 = 标记价格*持仓头寸数量

市价平仓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
'orderId': 5767011411,
'symbol': 'DOGEBUSD',
'status': 'NEW',
'clientOrderId': '168110522533487',
'price': '0',
'avgPrice': '0.000000',
'origQty': '66',
'executedQty': '0',
'cumQty': '0',
'cumQuote': '0',
'timeInForce': 'GTC',
'type': 'MARKET',
'reduceOnly': True,
'closePosition': False,
'side': 'BUY',
'positionSide': 'BOTH',
'stopPrice': '0',
'workingType': 'CONTRACT_PRICE',
'priceProtect': False,
'origType': 'MARKET',
'updateTime': 1681105227492
}

获取订单 取消

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
'orderId': 5828836952,
'symbol': 'DOGEBUSD',
'status': 'CANCELED',
'clientOrderId': '168131534726690',
'price': '0.100000',
'avgPrice': '0.000000',
'origQty': '60',
'executedQty': '0',
'cumQuote': '0',
'timeInForce': 'GTC',
'type': 'LIMIT',
'reduceOnly': False,
'closePosition': False,
'side': 'SELL',
'positionSide': 'BOTH',
'stopPrice': '0',
'workingType': 'CONTRACT_PRICE',
'priceProtect': False,
'origType': 'LIMIT',
'time': 1681315348016,
'updateTime': 1681315566995
}

获取订单 全部成交 买入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
'orderId': 5826930018,
'symbol': 'DOGEBUSD',
'status': 'FILLED',
'clientOrderId': 'android_r8Z5LVeloJe9ASTRy321',
'price': '0',
'avgPrice': '0.082770',
'origQty': '200',
'executedQty': '200',
'cumQuote': '16.554000',
'timeInForce': 'GTC',
'type': 'MARKET',
'reduceOnly': True,
'closePosition': False,
'side': 'BUY',
'positionSide': 'BOTH',
'stopPrice': '0',
'workingType': 'CONTRACT_PRICE',
'priceProtect': False,
'origType': 'MARKET',
'time': 1681309666378,
'updateTime': 1681309666378
}

手续费是 BUSD

获取订单 没有此订单

1
2
3
4
{
"code":-2013,
"msg":"Order does not exist."
}

取消订单

如果订单存在,返回 list ,如果没有订单,也返回一个空的 list

请我喝杯咖啡吧~