想要帮助解决这个小问题,我创建了一个用于买卖货币的简单机器人,我向自己发送信号“买入信号”进行购买和“卖出信号”进行出售,并且该机器人在收到它们后便执行它们信号同时以json格式接收,但是我不能同时买卖,我该怎么做,当收到一个更新时,我只执行买入;当收到下一个更新时,我仅执行一个买入卖?我每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)
答案 0 :(得分:1)
在main()
函数中,buysignal
和sellsignal
始终设置为相同的值,因此每次都会发生相同的事情。也许您应该像这样创建函数:
def main(signal):
if signal == 'buy':
# ... do the stuff for 'buysignal'
elif signal == 'sell':
# ... do the stuff for 'sellsignal'
然后,当您调用它时,就这样:
main(input())
将input()
替换为您确定要执行的操作-确保将其“购买”或“出售”传递给函数
此外,如果您的目标是在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')