VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 22
声望: 0
  1. 发单send_order函数中并没有记录reference
  2. on_order回调返回了reference
  3. 手动改了后委托栏正确显示reference成功了,但是在cta_engine中获取活跃的委托订单,reference没有正常的返回过来
  4. 我重启vnpy,UI界面上,委托栏的reference又消失了

想问下,怎么让cta_engine中获取活跃的委托订单函数能正常返回reference(已开启了PortfolioManagerApp),怎么维护好UI界面上的委托栏的reference哪怕重启也能正常显示

Super Moderator
avatar
加入于:
帖子: 64
声望: 7

在 VeighNa 中,委托的 reference 信息是由 Engine 动态添加的,但 Engine 本身并不会缓存 reference。因此,当 VeighNa Trader 重启时,reference 信息会丢失,导致 UI 界面(如委托监控组件)无法显示 reference


为什么重启后 reference 会丢失?

  1. Engine 的动态添加
    • reference 是在委托发送时由 Engine 动态添加的,并未保存到数据库或缓存文件中。
  2. 缺乏持久化
    • 默认情况下,reference 信息不会随委托单一起保存到数据库中,因此重启后无法恢复。

如何解决?

加载 PortfolioManager 模块即可解决该问题,因为:

  1. 缓存 reference
    • PortfolioManager 会记录所有委托的 reference 信息,并将其保存到本地缓存文件中。
  2. 持久化数据
    • 即使重启 VeighNa Trader,PortfolioManager 仍能从缓存文件中恢复 reference 信息。

操作步骤

  1. 在 VeighNa Trader 中加载 PortfolioManager 模块。
  2. 重启 VeighNa Trader,确保 reference 信息正常显示。

通过加载 PortfolioManager,可以轻松解决 reference 丢失的问题,无需额外修改代码或手动维护缓存。

Member
avatar
加入于:
帖子: 22
声望: 0

确实加载了PortfolioManager模块,只是我策略用的是ctastrategy, 这种情况下,我测试了,就是refrence没有在委托栏出现

description

description

Member
avatar
加入于:
帖子: 22
声望: 0

不过我已经自行维护和绕过去了,自行存储和改造了reference;只是委托栏确实还是没有显示

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】