3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,run_daily 是一个非常重要的定时周期性函数,用于以日为单位周期性地运行指定的自定义函数。以下是关于 run_daily 的详细用法和运行时间说明:
run_daily(context, func, time='9:31')
Context 对象,存放有当前的账户及持仓信息,必传参数。context 作为参数(即 def func(context):),必传参数。run_daily 的运行时间在回测环境和实盘交易环境下有所不同:
time 的取值必须指定在交易时间内,即 09:31~11:30 与 13:00~15:00 之间。time 设定值是多少,指定的函数都只会在每天的 15:00 执行。time 可设置的范围为全天:00:00~23:59。initialize 函数中调用。以下是一个使用 run_daily 每天定时获取财务数据的策略示例:
# 定义一个财务数据获取函数,每天 9:31 执行一次
def initialize(context):
# 设定每天 9:31 运行 get_finance 函数
run_daily(context, get_finance, time='9:31')
g.security = '600570.SS'
set_universe(g.security)
# 自定义定时运行的函数,必须包含 context 参数
def get_finance(context):
# 获取恒生电子的资产总计数据
re = get_fundamentals(g.security, 'balance_statement', 'total_assets')
log.info(re)
def handle_data(context, data):
pass
通过合理使用 run_daily,您可以将一些不需要每分钟或每个 tick 都执行的逻辑(如盘前数据准备、盘后数据统计、定时调仓等)分离出来,从而提高策略的运行效率。