run_daily - 按日周期处理

run_daily 是 PTrade 中用于按日周期处理的接口。

提示

  • live-or-trading-module-only
  • backtest-only

原型

run_daily(context, func, time='9:31')

释义

run_daily 是 PTrade 中用于按日周期处理的接口。

研究:不支持;回测:支持;模拟:官方目录未明确;实盘:支持。

参数

参数 是否必填 官方原始定义
context context
func func
time time='9:31'

返回值

None

示例

# 定义一个财务数据获取函数,每天执行一次

def initialize(context):

run_daily(context, get_finance)

g.security = '600570.SS'

set_universe(g.security)

def get_finance(context):

re = get_fundamentals(g.security,'balance_statement','total_assets')

log.info(re)

def handle_data(context, data):

pass

详细说明

run_daily(context, func, time='9:31')

使用场景

该函数仅在回测、交易模块可用

接口说明

该函数用于以日为单位周期性运行指定函数,可对运行触发时间进行指定。

注意事项

该函数只能在初始化阶段initialize函数中调用。

该函数可以在initialize中多次调用,以实现多个定时任务。 但需要注意的是交易中定时任务线程数限制为5且累计的任务不执行,即run_daily和run_interval累计调用超过5次时, 将会因堵塞导致部分定时任务不触发。

股票策略回测中,当回测周期为分钟时,time的取值指定在09:3111:30与13:0015:00之间,当回测周期为日时, 无论设定值是多少都只会在15:00执行;交易中不受此时间限制。

参数详细说明

context: Context对象,存放有当前的账户及持仓信息(Context);

func:自定义函数名称,此函数必须以context作为参数(Callable[[Context], None]);

time:指定周期运行具体触发运行时间点,默认为9:31分(str),交易场景可设置范围:00:00~23:59。

返回值

None