对 python 相当陌生,我已经设法解决了之前克服的所有问题。但是,当涉及到这一点时,我被困住了。我需要运行我在 Parallels Desktop 上编写的脚本,因为我无法在我的 Macbook 的 VS 代码上使用 MetaTrader 5 python 库来编写我正在编写的算法。
我遇到的问题是我需要每 5 分钟运行一次脚本的某个部分,所以我使用以下代码来触发它。
import time
while True:
if time.time() % (60 * 5) == 0:
print(time.strftime('%H:%M:%S %Y-%m-%d', time.gmtime(time.time()))) #code
我想要触发跟随...
代码在我的 Mac 的 VSCode 上没有问题,但是当我在 Parallel 的桌面 VScode 上运行它时,没有输出。也没有错误。
这有什么原因吗?我该如何克服?
谢谢你们,它已经困扰了我一段时间。
我看到多个来源为什么上面的代码有问题。 如果你看看:
print(time.time())
#output
1677345971.6591382
小数点分隔符
.
后面的所有内容都是秒的很小一部分(单位微秒及以下)。
如果你尝试
time.time() % (60 * 5) == 0
击中看起来像 time.time()
的 1677345971.00000000
的机会是最小的,因为你的代码不会在那个精确的微秒被触发。
但只有在那种情况下
time.time() % (60 * 5) == 0
才是正确的,因为您的模数计算中没有留下微秒。
我不知道为什么它可以在您的 Mac 上运行,但我想这是因为您的 Mac 没有使用浮动来显示
time.time()
.
在您的情况下,您可以尝试使用以下代码:
if int(time.time()) % (60 * 5) == 0:
这将您的时间从
1677345971.6591382
变成 1677345971
,单位是秒。现在你的计算int(time.time()) % (60 * 5) == 0
不仅可以通过留下0微秒的机会来实现。