В дебютной программе https://www.fmz.com/m/debug
Попытки заказа контрактов на биткоин с помощью API batchOrders не увенчались успехом
Не удалось создать URL-адрес для обсуждений, найденных в ниже
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)
}
Подсказка: информация[{"code":400,"msg":null},{"code":400,"msg":null}]
По данным exchange.IO на сайте 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)
}
Фьючерс_Байнанс ошибка Futures_OP 4: 400: {"timestamp":1589196850717, "path":"/fapi/v1/batchOrders","msg":"System error"}
Кто-то спросил, как создавать парамы для API batchOrders контрактов на биржевой основе
Спасибо.
/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

