【发布时间】:2022-10-18 00:00:18
【问题描述】:
我每秒钟都在获取一些股票市场数据,只需要打印一次迭代或一秒钟的交易量,然后明确等待 60 秒,然后再执行 无限地。
例如,如果我从上午 9:00 开始,然后使用第一个 tick['exchange_timestamp'] 作为 start_time 我想迭代时间或 python 的 timedelta 包,这样它应该在 1 分钟的间隔后给我来自股票数据的交易量意味着在上午 9:01,然后无限执行。
目前的代码是这样的:
def ROC(self,df,tick):
global start_time
global timespan
start_time = tick['exchange_timestamp']
prev_volume = tick['volume_traded']
timespan = start_time + timedelta(seconds = int(60))
for index, row in df.iterrows():
if start_time < timespan :
prev_volume = tick['volume_traded']
这应该只运行一次迭代那么它应该等一下并连续执行直到运行时。
请任何人都可以通过随着时间的推移使用一些循环来解决这个问题并帮助我 python的日期时间包。
我正在将此代码作为类中的方法运行,因此尝试使用多线程和多处理,但它并没有以任何方式帮助我,所以请尝试仅使用 python 的 time 和 datetime 包解决此问题。
谢谢。 :)
【问题讨论】:
-
您对使用 Python 的 time 和 datetime 包做了什么尝试?
-
您可以使用
sleep函数暂停然后继续docs.python.org/3/library/time.html#time.sleep,也可以将while (1):写成while True:更'pythonic -
嘿@nicomp这里是我正在尝试使用python的datetime包来解决问题的更新代码,但它按预期工作。如果您对此有任何解决方案,请在此处指定。
标签: python datetime while-loop timer timedelta