使用Python调用币安API下单后如何获取返回的Order ID
币安API下单后获取订单ID的实现方法
核心逻辑
币安create_order接口调用成功后会直接返回包含订单完整信息的字典,你当前代码没有接收这个返回值,所以拿不到订单ID。
修改后可直接使用的代码
def order_sell(): # 用变量接收create_order返回的响应内容 order_response = client.create_order( symbol='XRPBNB', side=SIDE_SELL, type=ORDER_TYPE_LIMIT, timeInForce=TIME_IN_FORCE_GTC, newClientOrderId=1, quantity=30, price= 0.001895 ) # 从响应字典中提取订单ID order_id = order_response['orderId'] # 打印验证,也可以根据需求存到文件/数据库中 print(f"下单成功,订单ID:{order_id}") # 返回订单ID供外部逻辑使用 return order_id # 调用函数时用变量接收返回的订单ID current_order_id = order_sell() # 后续取消订单时可以直接使用这个ID,示例: # client.cancel_order(symbol='XRPBNB', orderId=current_order_id)
初学者友好优化建议
可以添加异常捕获逻辑,避免下单失败(比如余额不足、价格参数错误)时程序直接崩溃:
def order_sell(): try: order_response = client.create_order( symbol='XRPBNB', side=SIDE_SELL, type=ORDER_TYPE_LIMIT, timeInForce=TIME_IN_FORCE_GTC, newClientOrderId=1, quantity=30, price= 0.001895 ) order_id = order_response['orderId'] print(f"下单成功,订单ID:{order_id}") return order_id except Exception as e: print(f"下单失败,错误信息:{e}") return None current_order_id = order_sell()
补充说明
返回的order_response字典还包含很多你可能会用到的字段:
status:订单状态,常见值有NEW(未成交)、FILLED(完全成交)、CANCELED(已取消)executedQty:已成交数量price:下单价格
如果需要查看完整返回结构,直接打印order_response即可看到所有字段内容。
内容的提问来源于stack exchange,提问作者Iwan
相关产品推荐
相关产品推荐

