微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

执行过程中跳过的 Python 函数

如何解决执行过程中跳过的 Python 函数

我正在尝试创建一个简单的脚本来在 Binance 交易所买卖指定的加密货币。下面是创建买入和卖出订单的买入和卖出函数的片段。

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',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 块之外或在主块中以便读取它会有所不同吗?

解决方法

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

  1. 在 create_buy() 中,client.order_limit_buy 可能会抛出异常。您需要将其打印到您的日志文件或其他地方进行检查。 此外,如果您确定,即使出现异常,也应调用 create_sell(),编写一个 finally 块并将对 create_sell() 的调用移动到 finally 块中
  2. 另一种可能性是在 create_sell() 中调用 client.order_limit_sell 可能会抛出异常,请检查它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。