@jakestale 这个是我自己想的办法。具体是和聚宽的g对象使用方法和差不多,但是要把每个策略的股票,资金存在全局对象g里,再把g存在一个pkl文件里。保证每个策略只读取自己的pkl文件。真不建议用这个方法,很容易出错,而且极其麻烦。
下面这个是ptrade的文档里面写的,可以参考下
关于持久化
为什么要做持久化处理
服务器异常、策略优化等诸多场景,都会使得正在进行的模拟盘和实盘策略存在中断后再重启的需求,但是一旦交易中止后,策略中存储在内存中的全局变量就清空了,因此通过持久化处理为量化交易保驾护航必不可少
量化框架持久化处理
使用pickle模块保存股票池、账户信息、订单信息、全局变量g定义的变量等内容
注意事项:
1.框架会在before trading start (隔日开始) 、handle data、 after trading end事件后触发持久化信息更新及保存
操作;
2.券商升级/环境重启后恢复交易时,框架会先执行策略initialize函数再执行持久化信息恢复操作。如果持久化信息保存有策略定义的全局对象g中的变量,将会以持久化信息中的变量覆盖掉initialize函数中初始化的该变量.3.全局变量g中不能被序列化的变量将不会被保存。您可在initialize中初始化该变量时名字以’"开头,4.涉及到IO(打开的文件,实例化的类对象等)的对象是不能被序列化的
5.全局变量g中以开头的变量为私有变量,持久化时将不会被保存
2023-10-26