Le débogage peut être effectué en utilisant les outils de débogage.
J'ai essayé de passer des commandes en utilisant l'API des contrats batchOrders, mais sans succès.
La construction de l'url en fonction des discussions recherchées ci-dessous échoue toujours
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)
}
Astuce: renseignements[{"code":400,"msg":null},{"code":400,"msg":null}]
L'échec est toujours le même, comme indiqué sur https://www.fmz.com/api
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)
}
Il s'agit d'une erreur de Futures_OP 4: 400: {"timestamp":1589196850717, "path":"/fapi/v1/batchOrders","msg":"System error"}
Quelqu'un a posé des questions sur l'API des contrats batchOrders et sur la façon de construire des paramètres
Merci beaucoup.
/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

