Python函数在执行期间跳过

2024-06-16 11:43:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个简单的脚本,在Binance exchange上买卖指定的加密货币。下面是创建买卖订单的买卖函数的一个片段

from binance.client import Client 

'api_key' = 'xxxxxxxxxxxx' 
'secret' = 'xxxxxxxxxxxx'  

client = Client(api_key, api_secret)  
def create_buy():     
    try:         
        buy_order = client.order_limit_buy(symbol='ETHUSDT', quantity=1, price='1500')         
        print(str(buy_order ))         
        create_sell()     
    except Exception as e:
        print(e)
        pass
def create_sell():     
    try:         
        sleep(1)         
        sell_order= client.order_limit_sell(symbol='ETHUSDT', quantity=1, price='2000')
        print(str(sell_order))  
        exit()   
    except Exception as e:         
        print(e.message)         
        pass 

if __name__ == '__main__':    
    create_buy() 

大多数情况下,它从头到尾运行都没有问题,返回BoughtSold时没有问题,然后退出程序。 然而,有时它只会跳过create_sell()。我知道这一点,因为我总是得到一个带有create_buy()的返回,但是程序立即退出,而不调用create_sell()。我认为这可能是由于交换和我之间的延迟问题造成的,但我不能捕捉到吗

如果我把create_sell()放在try块之外或者放在主块中以便它读取,会有什么不同吗


Tags: keyclientapisecretdefcreateorderbuy
1条回答
网友
1楼 · 发布于 2024-06-16 11:43:29

我假设您是从代码中的其他位置调用create_buy(),因为它在大多数情况下都按预期工作,因此我认为有两种情况可能会失败

  1. 在create_buy()中,client.order_limit_buy可能引发异常。您需要将其打印到日志文件或其他地方进行检查。 另外,如果您确定,即使在异常情况下也应该调用create_sell(),编写一个finally块并将create_sell()的调用移动到finally块中
  2. 另一种可能是调用client.order\u limit\u sell in create\u sell()可能会引发异常,请检查它

相关问题 更多 >