Python 如何正确检查二进制订单的订单状态

Python 如何正确检查二进制订单的订单状态,python,api,python-requests,binance,Python,Api,Python Requests,Binance,我试图创建一个销售订单,然后不断检查它是否已经完成,但在循环中经过一到两次迭代后,它显示订单状态为已完成,而订单实际上尚未完成,或者有时它表示订单不存在 我的代码有什么问题吗?或者有更好的方法吗 #出售 尝试: #利米塞尔 客户.订单\限制\销售(符号=对,数量=数量,价格=售价) orderId=client.get_all_订单(symbol=pair,limit=1)[0]['orderId'] 打印({}\n.格式(售价)) 尽管如此: openOrders=客户端。获取所有订单(sy

我试图创建一个销售订单,然后不断检查它是否已经完成,但在循环中经过一到两次迭代后,它显示订单状态为已完成,而订单实际上尚未完成,或者有时它表示订单不存在

我的代码有什么问题吗?或者有更好的方法吗


#出售
尝试:
#利米塞尔
客户.订单\限制\销售(符号=对,数量=数量,价格=售价)
orderId=client.get_all_订单(symbol=pair,limit=1)[0]['orderId']
打印({}\n.格式(售价))
尽管如此:
openOrders=客户端。获取所有订单(symbol=pair,limit=1)[0]
如果openOrders['status']=='FILLED':
打印(“销售:{}在{}”。格式(数量、售价))
出口(0)
打印(“.”)
我尝试使用
orderId
以及
client.get\u order(symbol=pair,orderId=orderId)
,但它仍然做同样的事情

order = client.order_limit_sell(symbol=pair,quantity=quantity,price=sellPrice)
orderId = order["orderId"]
print('Sell order placed at {}\n'.format(sellPrice))
    while True:
        currentOrder = client.get_order(symbol=pair,orderId=orderId)
        if currentOrder['status']=='FILLED':
            print("Sold: {} at {}".format(quantity,sellPrice))
            break
        print(".")

更好的方法是使用Python中的内置线程模块创建另一个线程。

get_all_orders()返回匹配的顺序列表。其中一些已经被填补,而另一些则没有。你在随机抽取第一个。这可能是一个已满的旧订单。因此,您没有跟踪由order\u limit\u sell创建的实际订单,这就是您的循环立即退出的原因。我建议检查一下订单的返回值是多少。也许您需要跟踪的是实际的orderId。@shauli使用了client.create_order()这个fxn返回orderId,但在检查循环内部之后,它会执行相同的操作