QMT量化软件:模拟盘与实盘注意事项(持久化篇)
发布时间:18小时前阅读:20
一、模拟盘/实盘为什么一定要做持久化
在模拟盘和实盘运行中,常见的券商服务器异常、网络波动、环境重启、策略升级优化等情况,都会导致策略中断并需要恢复运行。
但策略一旦停止,存放在内存中的全局变量会被清空;如果没有持久化,股票池、账户/仓位状态、订单跟踪、策略状态机等信息无法续接,容易造成重复下单、状态错乱或风险失控。因此,对关键状态做持久化是保障策略连续性与安全性的必要措施。
二、QMT框架如何做持久化
框架通常使用 pickle 对关键数据进行序列化保存,包括但不限于:
- 股票池
- 账户相关信息
- 订单信息/订单跟踪数据
- 全局变量
g中定义的策略状态变量等
三、关键注意事项
- 自动触发保存时机框架会在以下事件后触发持久化更新与保存:before_trading_start(隔日开盘前)handle_dataafter_trading_end
- 恢复流程的执行顺序当券商升级/环境重启后恢复交易时,框架会:先执行策略 initialize再执行持久化信息的恢复
- 持久化会覆盖 initialize 的同名变量如果持久化内容里包含 g 中某个变量,那么恢复时会用持久化的值覆盖 initialize 中对该变量的初始化结果。
- 不可序列化的变量不会被保存g 中无法被序列化(pickle)的变量不会进入持久化文件。
- 涉及 IO 的对象不能序列化包括但不限于:打开的文件句柄、部分实例化对象、连接对象等(典型的 IO/资源类对象)一般都无法被 pickle。
- 以 __ 开头的变量不会被持久化g 中以 __ 开头的变量视为“私有变量”,框架持久化时会跳过。实务建议:对必须每次重启都重新创建、且不适合持久化的对象,可在 initialize 中用 __xxx 命名并初始化。
QMT和ptrade低佣金开户,操作便捷,欢迎联系我,微信或电话详聊,快速完成开户。
温馨提示:投资有风险,选择需谨慎。
-
@所有人,2026春节A股/港股/港股通休市安排一览~
2026-02-12 11:38
-
开启AI炒股:华泰证券AI涨乐APP怎么使用?
2026-02-12 11:38
-
满仓没钱追新机会?一个融资融券工具轻松搞定~
2026-02-12 11:38


问一问

+微信
分享该文章
