def sell_logic(ContextInfo):
position_info = get_trade_detail_data('', 'stock', 'position')
for i in position_info:
daimaheshuliang=i.m_strInstrumentID, i.m_nVolume
print(daimaheshuliang)
def init(ContextInfo):
schedule.every().day.at("16:39:10").do(sell_logic)
最后一行应该如何写?我是想按照时间打印一次
schedule.every().day.at("16:39:10").do(sell_logic(Contextinfo))执行后打印但没按时间且报错
schedule.every().day.at("16:39:10").do(sell_logic,Contextinfo)执行后不打印
schedule.every().day.at("16:39:10").do(sell_logic)执行后不打印
可能是只定义了,没有执行方法所以没有打印出来。尝试改成这样试试:
得首先安装这个库 schedule
import schedule
import time
def sell_logic(ContextInfo):
position_info = get_trade_detail_data('', 'stock', 'position')
for i in position_info:
daimaheshuliang = i.m_strInstrumentID, i.m_nVolume
print(daimaheshuliang)
def init(ContextInfo):
schedule.every().day.at("16:39:10").do(sell_logic, ContextInfo) # 将ContextInfo作为参数传递给sell_logic函数
while True:
schedule.run_pending()
time.sleep(1)
这样应该就能正常打印了,至于报错AttributeError: 'NoneType' object has no attribute 'request_id' 得看报错在哪一行,可能不是这里的代码报错的。
如果您想在指定的时间执行函数 sell_logic
并打印一条消息,您可以使用以下代码:
import schedule
import time
def sell_logic(context_info):
# 在这里编写您的代码
print("在指定时间执行了 sell_logic 函数")
# 设置任务的执行时间
schedule.every().day.at("16:39:10").do(sell_logic, context_info)
# 运行任务
while True:
schedule.run_pending()
time.sleep(1)
在这个代码中,我将 sell_logic
函数作为参数传递给 schedule.every().day.at("16:39:10").do()
方法。这个方法会在每天的指定时间执行 sell_logic
函数。同时,我们在 sell_logic
函数中添加了一条打印消息的语句,以便在函数执行时打印一条消息。
要注意的是,如果您希望在函数中使用 context_info
参数,请确保在传递参数时不要加括号。也就是说,您应该使用 sell_logic, context_info
而不是 sell_logic(Contextinfo)
。
这样就可以啦
schedule.every().day.at("16:39:10").do(sell_logic, Contextinfo)
可以使用 Python 中的 time
模块和 sleep()
方法来实现按照时间打印一次。具体实现方法如下:
import time
# 打印当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 等待 5 秒
time.sleep(5)
# 再次打印当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
在上面的代码中,time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
可以获取当前时间并格式化为字符串;time.sleep(5)
可以让程序等待 5 秒;最后再次调用 print()
方法打印当前时间。如果你想按照自己的需求来打印不同的时间间隔,只需要修改 time.sleep()
中的参数就可以了。
【以下回答由 GPT 生成】
根据给出的代码和要求,可以使用schedule
库来实现Python定时执行的需求。下面是解决问题的具体步骤:
schedule
库。init
函数的最后一行。sell_logic
函数中,添加参数ContextInfo
。具体的代码如下所示:
import schedule
def sell_logic(ContextInfo):
position_info = get_trade_detail_data('', 'stock', 'position')
for i in position_info:
daimaheshuliang = i.m_strInstrumentID, i.m_nVolume
print(daimaheshuliang)
def init(ContextInfo):
schedule.every().day.at("16:39:10").do(sell_logic, ContextInfo)
请注意,修改后的最后一行中,使用了sell_logic
后面直接跟参数ContextInfo
,而不是调用sell_logic
函数。这样就可以将ContextInfo
传递给sell_logic
函数,并在指定的时间执行该函数。
此外,需要确保代码中get_trade_detail_data
函数的定义是正确的,并在代码中进行了导入。如果没有正确导入或定义该函数,可能会导致报错。请确保所有的依赖项都正确导入,并对函数进行适当的定义。
【相关推荐】
换个库吧,这库不好使
结合GPT给出回答如下请题主参考
根据提供的信息,我可以看出这段代码是一个函数定义,名称为sell_logic
,它的参数是ContextInfo
。在函数体内部,代码调用了get_trade_detail_data
函数,获取了position_info
变量的值。
至于定时问题,目前代码中并没有涉及定时的部分。如果您的具体问题是如何在Python中实现定时执行某个任务,我可以给您提供一些参考。
可以使用Python标准库中的time
模块或datetime
模块来实现定时。具体实现方式可以使用time.sleep()
函数来延迟程序运行的时间,或者使用datetime.datetime.now()
函数来获取当前时间,进而计算出下一次任务执行的时间。
除此之外,还可以使用第三方库schedule
来实现定时任务。schedule
库提供了一些方便的函数,可以实现周期性或指定时间点执行任务的功能,使用起来比较方便。
希望以上内容可以帮助到您解决定时问题。
GPT
根据你提供的代码片段,最后一行应该按照以下方式编写:
schedule.every().day.at("16:39:10").do(sell_logic, ContextInfo)
在这里,传递ContextInfo作为参数给sell_logic函数。这将使得在每天的指定时间("16:39:10")执行sell_logic并传递ContextInfo作为参数。这样修改后,代码应该按照预期的时间触发并打印结果。
请注意检查ContextInfo变量是否在调用init函数时正确地传递并引用。此外,确保schedule.run_pending()或类似的代码在循环中被调用以便执行计划任务。
结合两个函数
def sell_logic():
position_info = get_trade_detail_data('', 'stock', 'position')
for i in position_info:
daimaheshuliang = i.m_strInstrumentID, i.m_nVolume
print(daimaheshuliang)
schedule.every().day.at("16:39:10").do(sell_logic)