应部分用户需求,使用bithumb 的时候希望查询 某个ID 的订单信息, 封装了 交易所的这个接口 : https://api.bithumb.com/info/order_detail 只能查询完全成交的订单,其它状态的订单是查询不到的。
接口信息如下:
/*
https://api.bithumb.com/info/order_detail
order_id :
type : bid : Buy ask : sell
currency : Currency code ,Default : BTC
*/
function main() {
var id = exchange.Sell(-1, 0.01) // 下市价单 成交,因为 $.GetOrder 只能查询 完全成交的订单。
// 下限价单不成交的话,去查询这个ID ,会报错 Futures_OP 4: status: 5600, message: 거래 체결내역이 존재하지 않습니다. (在交易中不存在), ,意思是查询不到这个订单
Sleep(5000)
var order = $.GetOrder(exchange, id) // 传入交易所 Bithumb 的交易所对象, 传入ID ,查询不到 返回 null
Log(order)
}
function GetOrder(e, id, type){ /* https://api.bithumb.com/info/order_detail order_id : type : bid : Buy ask : sell currency : Currency code ,Default : BTC */ var symbol = e.GetCurrency() var arr = symbol.split("_") var currency = arr[0] var ret = e.IO("api", "POST", "/info/order_detail", "order_id=" + id + "&type=" + type + "¤cy=" + currency) // ret /* { "status":"0000", "data":[ { "order_currency":"BTC", "payment_currency":"KRW", "units_traded":"0.01", "price":"4322000", "cont_no":"32314118", "transaction_date":"1546054726834326", "type":"Buy", "fee":"64.83", "total":"43220" } ] } */ /* order 结构 { Id :交易单唯一标识 Price :下单价格 Amount :下单数量 DealAmount :成交数量 AvgPrice :成交均价, # 注意 ,有些交易所不提供该数据,不提供的设置为 0 。 Status :订单状态, 参考常量里的订单状态 Type :订单类型, 参考常量里的订单类型 } */ var order = null var typeValue = null if(type == "Buy"){ typeValue = ORDER_TYPE_BUY } else { typeValue = ORDER_TYPE_SELL } if(ret){ order = { Info : ret, // 原始信息 Id : id, // 交易单唯一标识 Price : ret.data[0].price, // 下单价格 Amount : ret.data[0].units_traded, // 下单数量 DealAmount: ret.data[0].units_traded, // 成交数量 AvgPrice : ret.data[0].price, // 成交均价, # 注意 ,有些交易所不提供该数据,不提供的设置为 0 。 Status : ORDER_STATE_CLOSED, // 订单状态, 参考常量里的订单状态 Type : typeValue, // 类型 } } return order } $.GetOrder = function(e, id, type){ if(e.GetName() != "Bithumb"){ Log("the parameter e is not bithumb!") return null } if(typeof(id) == "undefined"){ Log("id 参数错误!") return null } if(type == "Buy"){ GetOrder(e, id, type) } else if (type == "Sell") { GetOrder(e, id, type) } else { var buyOrder = GetOrder(e, id, "Buy") if(buyOrder){ return buyOrder } var sellOrder = GetOrder(e, id, "Sell") if(sellOrder){ return sellOrder } else { return null } } } function main() { var id = exchange.Sell(-1, 0.01) // 下市价单 成交,因为 $.GetOrder 只能查询 完全成交的订单。 // 下限价单不成交的话,去查询这个ID ,会报错 Futures_OP 4: status: 5600, message: 거래 체결내역이 존재하지 않습니다. (在交易中不存在), ,意思是查询不到这个订单 Sleep(5000) var order = $.GetOrder(exchange, id) // 传入交易所 Bithumb 的交易所对象, 传入ID ,查询不到 返回 null Log(order) }template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6