PTrade函数详解之run_daily写法与核心参数(开通量化软件)
发布时间:4小时前阅读:7
之前给小伙伴们讲解策略的“启动开关”initialize函数,知道如何策略开始前做准备。但实际操作时,常需要 “到点做事”—— 比如每天开盘后半小时看行情、收盘前 10 分钟调仓位,这时候就需要一个 “定时闹钟” 来帮策略按时执行操作。
今天要讲的run_daily函数,就是这个靠谱的 “闹钟”,帮你精准控制策略在指定时间运行。
一、run_daily函数是啥?
run_daily的中文意思可以理解为 “每日运行”,简单说就是让策略每天在你指定的时间,自动执行某个操作。比如你想每天 9:31(模拟开盘后 1 分钟)检查持仓、14:50(模拟收盘前 10 分钟)调整仓位,就可以用这个函数设定 “闹钟”,到点自动触发对应操作。
举个生活例子:你每天早上 7 点需要用闹钟叫醒自己吃早餐,晚上 10 点用闹钟提醒自己复盘 —— 这里的 “闹钟时间”(7 点、10 点)就是run_daily里的time参数,“吃早餐”“复盘” 就是要执行的操作(对应函数里的func),而run_daily就是帮你管理这些 “闹钟” 的工具。
二、函数怎么写?
run_daily函数的语法很固定,核心是 “告诉函数:谁来执行、执行什么、什么时候执行”,基础模板如下:

咱们逐部分拆解,不用记术语,跟着理解就行:
1)函数调用位置:run_daily必须写在initialize函数里 —— 因为 “定闹钟” 要在策略启动时完成,就像你得在睡前设定好第二天的闹钟一样。
2)3个核心参数
l context:和initialize里的context一样,是装着账户、持仓、时间等信息的 “信息包”,必须传这个参数,否则函数找不到关键信息。
l func:要执行的 “操作名称”(比如上面的my_task),这个操作需要你自己提前定义成一个函数(就像先想好 “闹钟响了要做什么”)。
l time:“闹钟时间”,格式是'时:分'(比如'9:31'),必须用英文引号括起来,不然会报错。
3)操作函数定义:比如上面的my_task,必须带context参数,里面可以写具体要做的事(查行情、调仓位、打印日志等)。
三、模拟场景
咱们通过 2 个更贴近操作习惯的模拟场景,让代码更简单。
场景 1:模拟每天盘后 1 分钟(9:31)查持仓
很多学员习惯盘后先看一眼持仓是否正常,用run_daily可以自动打印持仓信息,不用手动查。

想改成每天 9:30 查持仓,把time='9:31'改成time='9:30'就行;想查其他股票,换g.my_stock的代码(记得加.SS 或.XSHE)。

场景 2:模拟收盘前 10 分钟(14:50)清仓
有些学员喜欢 “当日交易当日了结”,用run_daily可以设定 14:50 自动清仓,避免持仓过夜的风险。
把代码复制到 Ptrade 回测,看日志里 14:50 是否有 “已清仓” 的记录,有就说明 “闹钟” 生效了。
四、必须注意的 3 个 “坑”
1)时间格式别写错,不然 “闹钟” 不响(最多定义5个)
必须是'时:分'的格式(比如'9:31',不是9:31也不是'09:31'),而且时间要在交易时间内(9:30-15:00)。比如写time='15:01',策略会找不到这个时间点,导致操作不执行。
2)操作函数必须带 context 参数
你定义的func(比如check_position)里,必须有context参数,不然函数会 “找不到信息” 而报错。比如错写成def check_position():,运行时会提示缺少参数。
3)不能直接在 run_daily 里写操作,要先定义函数
比如不能直接写run_daily(context, log.info('查持仓'), time='9:31'),必须先把 “查持仓” 写成一个单独的函数(如check_position),再把函数名传给func参数。
五、简单案例
咱们整合一个完整的策略:每天 9:31 买 100 股工商银行,14:50 清仓,复制到 Ptrade 就能回测验证,
复制到 Ptrade 策略编辑器,选一个回测时间段(比如 2025-09-02 到 2025-09-05),启动回测后看日志 —— 每天 9:31 有买入记录、14:50 有清仓记录,就说明策略正常运行啦。

感兴趣的小伙伴快去试试吧!
(我司上市券商平台,可提供QMT/PTrade量化系统,免费使用,支持提供券商VIP交易服务配合使用;现在新开户交易佣金优惠,正在进行AI投ETF/选好股/选好基金等AI投顾工具体验活动;欢迎点击文章上方“问一问”,或文章下方微信+电话,直接联系沟通需求!)
温馨提示:投资有风险,选择需谨慎。
下一篇资讯:
暂无下一篇
-
想换券商又怕麻烦?转户全流程拆解:不用先销户,资产转移比你想象的简单
2026-07-13 10:11
-
104天过会、估值420亿:宇树科技凭什么成为"人形机器人第一股"?
2026-07-13 10:11
-
本周打新日历:2026年A股规模最大IPO【长鑫科技】即将发行!一键速览重点
2026-07-13 10:11


问一问

+微信
分享该文章
