Python执行功能

2024-07-02 14:34:33 发布

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

为了帮助解决这个小问题,我创建了一个简单的bot来买卖货币,我给自己发送信号‘buysignal’来买,然后‘sellsignal’来卖,收到信号后bot就会执行,两个信号都是json格式的,但是我不能同时买卖,当一个更新是receive时,我只执行一个buy,当下一个更新是receive时,我只执行一个sell,我该怎么做呢?我每1小时给自己发送一次这些信号,所以这就是为什么我把这些代码放在一个循环中,任何想法都会得到认可

import time

counter = 0

while True:

    counter += 1
    print(counter)
    time.sleep(5)
    if counter == 10:
        print('We\'re Done Here')
        break

    def main():

        buynow = 'buysignal'

        sellnow = 'sellsignal'


        if buynow == 'buysignal':
            buys = print('buy order')

            return buys

        elif sellnow == 'sellsignal':

            sells = print('sell order')

            return sells

    if __name__ == '__main__':
        ret = main()

        print(ret)

Tags: iftime信号mainbotcounterbuyreceive
1条回答
网友
1楼 · 发布于 2024-07-02 14:34:33

main()函数中,buysignalsellsignal总是设置为相同的值,因此每次都发生相同的事情。也许你应该这样创建你的函数:

def main(signal):
    if signal == 'buy':
        # ... do the stuff for 'buysignal'
    elif signal == 'sell':
        # ... do the stuff for 'sellsignal'

当你叫它的时候,就这样做:

main(input())

input()替换为无论您如何决定要执行的操作-确保它传递给函数'buy'或'sell'

另外,如果您的目标是在10的循环中执行此操作,那么您可以使用for循环:

import time
if __name__ == '__main__':
    for _ in range(10):
        main(input('buy or sell? '))
        time.sleep(60) # ... or whatever interval you need
    print('We\'re done here')

相关问题 更多 >