聚宽怎么设置定时运行?run_daily、run_weekly 与按分钟处理的区别
摘要:聚宽策略的“什么时候跑”由运行频率函数决定,写错了会出现“一天只跑一次”或“反复重复下单”。
前置条件
已写出能跑通的策略框架,想控制它在什么时间点执行。
手把手操作
1
先记住两套写法
按天/按周这类“定时”函数:指定在某个时间点执行一次,适合调仓类策略。
逐 bar 处理:有行情就执行一次,适合盘中判断,但要注意别写成高频下单。
小贴士:两者可以同时存在,但同一逻辑只能放在一处,否则重复触发。
2
按天调仓的写法
把调仓逻辑放进每日定时函数,指定执行时间(收盘前留出成交时间)。
避免在开盘瞬间集中下单,价格波动大。
小贴士:调仓时间和你的执行链路要配合:本地执行端需要时间接收与下单。
3
逐 bar 处理的注意事项
每根 bar 都会执行一次,条件里必须写“今天还没做过”这类判断。
数据未准备好时不要下单,避免用到不完整的数据。
小贴士:高频处理 + 高频下单 = 高换手,成本会吃掉收益。
4
怎么验证真的按预期运行
回测里打印每次执行的日期与时间,确认次数符合预期。
如果一天只执行一次,检查是否只写了定时函数、而定时函数又只在特定日期触发。
小贴士:先看“执行了多少次”,再看“买卖对不对”。
新手容易踩的坑
- 定时函数里又写了循环下单:重复下单。
- 用开盘价当成交价:回测乐观,实盘落空。
- 时间点设太晚:本地执行端来不及处理。
- 忽略非交易日判断:节假日也跑一次。
相关问答
一天只运行一次怎么写?
用按天的定时函数,明确指定执行时间;不要在逐 bar 的函数里重复写同样的逻辑。
能不能只在特定日期运行?
可以,在定时函数内部加日期判断,但要小心节假日与调休。
实盘也是这个时间点吗?
回测时间是模拟的,实盘要预留执行与成交时间,建议比回测稍早或做价格保护。
本文用到的链接
- 灵犀Quant 网站:首页 · www.lingxw.com · 登录 / 个人中心
- 一点通(QMT 自动下单脚本)下载:下载中心(登录后免费下载)
- 使用手册:manual.html · 产品定价:pricing.html · 帮助中心:help-center.html