Các công cụ gỡ lỗi
Chúng tôi đã thử nhiều cách khác nhau để đặt hàng dưới API BatchOrders của hợp đồng Binance nhưng đều thất bại.
Không thể xây dựng url theo nội dung thảo luận tìm kiếm dưới đây
https://github.com/ccxt/ccxt/issues/6805
function main() {
exchange.SetContractType('swap')
var makeOrders = [
{"symbol":"BTCUSDT","side":"BUY","type":"MARKET","quantity":0.002},
{"symbol":"LTCUSDT","side":"BUY","type":"MARKET","quantity":0.002}
]
params = []
for (var i = 0; i < makeOrders.length; i++) {params.push(encodeURI(JSON.stringify(makeOrders[i])))}
params = "batchOrders=["+params.join(",")+"]"
Log(params)
var allOrders = exchange.IO('api', 'POST', '/fapi/v1/batchOrders',params);
Log(allOrders)
}
Mẹo: Thông tin[{"code":400,"msg":null},{"code":400,"msg":null}]
Theo thông báo của exchange.IO tại https://www.fmz.com/api, vẫn không thành công.
function main() {
exchange.SetContractType('swap')
var makeOrders = {
"batchOrders":[
{"symbol":"BTCUSDT", "side":"BUY" , "positionSide":"LONG" , "type":"MARKET", "quantity":0.001},
{"symbol":"BTCUSDT","side":"SELL","positionSide":"SHORT","type":"MARKET","quantity":0.001}
]
}
var allOrders = exchange.IO('api', 'POST', '/fapi/v1/batchOrders',"",JSON.stringify(makeOrders));
Log(allOrders)
}
Futures_Binance lỗi Futures_OP 4: 400: {"timestamp":1589196850717, "path":"/fapi/v1/batchOrders","msg":"System error"}
Có ai đó đã hỏi về vấn đề về BatchOrders API của hợp đồng đồng tiền tệ, và làm thế nào để xây dựng các param?
Cảm ơn.
/fapi/v1/order 使用 传raw参数 也失败,但是使用 params方式正常
function main() {
exchange.SetContractType('swap')
var makeOrders = {symbol:'BTCUSDT',side:'BUY',type:'MARKET',quantity:0.001}
params = []
var allOrders = exchange.IO('api', 'POST', '/fapi/v1/order',"",JSON.stringify(makeOrders));
Log(allOrders)
}
提示 Futures_Binance 错误 Futures_OP 4: 400: {"timestamp":1589203472728,"path":"/fapi/v1/order","msg":"System error"}
仔细看币安的文档,参数没传全。
exchange.IO("api", "POST","/fapi/v1/order","symbol="+symbol+"USDT&side="+side+"&type=LIMIT&timeInForce=GTC&quantity="+amount+"&price="+price+"×tamp="+Date.now())
我用的MARKET,参数应该是够了,用传params方式是正常的(就是你的代码),但是用 传raw参数 就失败
exchange.IO('api', 'POST', '/fapi/v1/order',"",JSON.stringify(makeOrders));
已经升级了,下载最新的托管者使用即可,调用方式例子:
function main() {
/* 批量下单
var obj = {
"batchOrders": [{
"symbol": "BTCUSDT",
"side": "BUY",
"positionSide": "LONG",
"type": "LIMIT",
"quantity": "0.001",
"price": "8000",
"timeInForce": "GTC",
},
{
"symbol": "BTCUSDT",
"side": "BUY",
"positionSide": "LONG",
"type": "LIMIT",
"quantity": "0.001",
"price": "8000",
"timeInForce": "GTC",
}
]
}
var ret = exchange.IO("api", "POST", "/fapi/v1/batchOrders", "", JSON.stringify(obj))
Log("ret:", ret)
*/
/* 批量撤单
var obj = {
"symbol": "BTCUSDT",
"orderIdList": ["3873637971", "3873637970"]
}
var ret = exchange.IO("api", "DELETE", "/fapi/v1/batchOrders", "", JSON.stringify(obj))
Log("ret:", ret)
*/
Sleep(1000)
Log(exchange.GetOrders())
}
已经测试过了,可以了。
测试可用,但是有个小问题,同参数下
"quantity": "0.001" 正常,"quantity":0.001 则失败,就是说 必须先toString 一下amount,在其他接口没发现这情况
function main() {
exchange.SetBase("https://testnet.binancefuture.com")
exchange.SetContractType('swap')
var amount= 0.001
var theOrder ={"symbol": "BTCUSDT", "side": "BUY" , "positionSide": "LONG" , "type": "MARKET", "quantity": amount}
//theOrder = exchange.IO("api", "POST", "/fapi/v1/order", "", JSON.stringify(theOrder)) // 正常
var theOrder = {
"batchOrders": [
{"symbol": "BTCUSDT", "side": "BUY" , "positionSide": "LONG" , "type": "MARKET", "quantity": amount}
]
}
theOrder = exchange.IO("api", "POST", "/fapi/v1/batchOrders", "", JSON.stringify(theOrder)) // 失败
Log(theOrder)
}
- 1

