如何使用python-binance获取订单的orderId?
获取python-binance中的orderId方法
嘿,我懂这种翻遍文档找不到关键信息的抓狂感——当初我第一次用python-binance的时候也踩过这个坑。其实orderId的获取方式很直接,主要有这几种场景:
一、创建订单时直接获取
当你通过create_order()(或者测试用的create_test_order())提交订单后,API的响应结果里就会直接返回orderId。举个简单的例子:
from binance.client import Client client = Client(api_key='你的API_KEY', api_secret='你的API_SECRET') # 创建一个限价订单 order_response = client.create_order( symbol='BTCUSDT', side=Client.SIDE_BUY, type=Client.ORDER_TYPE_LIMIT, timeInForce=Client.TIME_IN_FORCE_GTC, quantity=0.001, price='30000' ) # 直接从响应中提取orderId order_id = order_response['orderId'] print(f"新创建的订单ID:{order_id}")
市价订单的响应结构也是一样的,同样能拿到orderId。
二、查询历史/当前订单获取
如果你需要找已经存在的订单(不管是已成交还是挂单状态),可以用以下方法:
get_open_orders():获取当前所有未成交的挂单,返回的是订单对象列表,每个对象都包含orderIdget_all_orders():获取指定交易对的历史订单(默认返回最近500条,可通过参数调整数量)
示例代码:
# 获取BTCUSDT的所有历史订单 all_orders = client.get_all_orders(symbol='BTCUSDT') # 遍历订单列表,提取每个订单的orderId for order in all_orders: print(f"订单ID:{order['orderId']},状态:{order['status']}")
三、通过其他标识查询订单获取orderId
如果你只记得订单的自定义标识origClientOrderId(创建订单时可以自己设置这个参数),或者知道交易对,可以用get_order()方法来查询订单详情,从而拿到orderId:
# 通过origClientOrderId查询订单 order_details = client.get_order( symbol='BTCUSDT', origClientOrderId='你自定义的订单标识' ) order_id = order_details['orderId'] print(f"查询到的订单ID:{order_id}")
小提示
- 确保你的API密钥拥有读取订单的权限(在Binance后台创建密钥时要勾选对应的权限)
- 所有返回订单数据的API接口,响应里的
orderId都是整数类型,注意不要和字符串类型的clientOrderId混淆
内容的提问来源于stack exchange,提问作者Hoodiedoodie
相关产品推荐
相关产品推荐

