QMT量化软件:模拟盘与实盘注意事项(持久化篇)
发布时间:2026-2-27 15:15阅读:219
一、模拟盘/实盘为什么一定要做持久化
在模拟盘和实盘运行中,常见的券商服务器异常、网络波动、环境重启、策略升级优化等情况,都会导致策略中断并需要恢复运行。
但策略一旦停止,存放在内存中的全局变量会被清空;如果没有持久化,股票池、账户/仓位状态、订单跟踪、策略状态机等信息无法续接,容易造成重复下单、状态错乱或风险失控。因此,对关键状态做持久化是保障策略连续性与安全性的必要措施。
二、QMT框架如何做持久化
框架通常使用 pickle 对关键数据进行序列化保存,包括但不限于:
- 股票池
- 账户相关信息
- 订单信息/订单跟踪数据
- 全局变量
g中定义的策略状态变量等
三、关键注意事项
- 自动触发保存时机框架会在以下事件后触发持久化更新与保存:before_trading_start(隔日开盘前)handle_dataafter_trading_end
- 恢复流程的执行顺序当券商升级/环境重启后恢复交易时,框架会:先执行策略 initialize再执行持久化信息的恢复
- 持久化会覆盖 initialize 的同名变量如果持久化内容里包含 g 中某个变量,那么恢复时会用持久化的值覆盖 initialize 中对该变量的初始化结果。
- 不可序列化的变量不会被保存g 中无法被序列化(pickle)的变量不会进入持久化文件。
- 涉及 IO 的对象不能序列化包括但不限于:打开的文件句柄、部分实例化对象、连接对象等(典型的 IO/资源类对象)一般都无法被 pickle。
- 以 __ 开头的变量不会被持久化g 中以 __ 开头的变量视为“私有变量”,框架持久化时会跳过。实务建议:对必须每次重启都重新创建、且不适合持久化的对象,可在 initialize 中用 __xxx 命名并初始化。
QMT和ptrade低佣金开户,操作便捷,欢迎联系我,微信或电话详聊,快速完成开户。
温馨提示:投资有风险,选择需谨慎。
-
REITs打新:本周共有4个商业REITs基金发售:唯品商业、首农商业、砂之船和地产商业
2026-05-25 16:03
-
网格交易条件单怎么选?小叩深度测评国金、华泰、国泰海通三大主流券商APP
2026-05-25 16:03
-
聪明投资者都会做的止盈止损,应该如何设置?(附自动交易工具)
2026-05-25 16:03


问一问

+微信
分享该文章
