VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 1
声望: 0

求助!我在“行情记录”功能里添加了ao2609.SHFE,等了很久在“数据管理”刷新也没有看到ao2609.SHFE。这种使用方式不对?

Super Moderator
avatar
加入于:
帖子: 128
声望: 15

根据你的问题,我帮你完整分析一下可能的原因和解决方案:

一、合约代码错误(首要问题)

ao2609.SHFE 这个合约代码是不存在的!

上期所(SHFE)的贵金属品种只有:

  • AU(黄金):如 au2506.SHFE
  • AG(白银):如 ag2506.SHFE

ao 不是任何交易所的标准品种代码,可能是输入错误(想打 au 误打成 ao)。

验证方法

在 VeighNa Trader 中:

  1. 连接 CTP 接口
  2. 点击菜单栏【帮助】->【合约查询】
  3. 点击【查询】按钮,搜索 ao 确认是否存在

二、DataManager 不显示数据的真正原因

即使合约代码正确,你在 DataManager 中"刷新"看不到数据,可能是以下原因:

原因 1:你添加的是 Tick 记录(最可能)

这是正常行为! 根据官方文档:

"点击左上角的【刷新】按钮,即可看到当前数据库中已有数据的统计情况(Tick数据除外)"

DataManager 的刷新功能不显示 Tick 数据的统计,无论等多久都不会显示。

原因 2:写入间隔未到

DataRecorder 有写入间隔设置(如 1秒、10秒、1分钟),数据是批量写入而非实时写入。如果刚添加就刷新,数据可能还在缓存队列中。

原因 3:行情未推送

如果合约没有行情波动,或者接口未成功订阅,DataRecorder 接收不到数据,自然也不会写入数据库。


三、完整解决方案

步骤 1:修正合约代码

ao2609.SHFE 改为正确的代码:

  • 如果是黄金au2609.SHFE
  • 如果是白银ag2609.SHFE
  • 如果是al2609.SHFE

步骤 2:确认记录类型

在 DataRecorder 界面确认:

  • 如果添加到了【K线记录列表】→ 刷新后在 DataManager 显示
  • 如果添加到了【Tick记录列表】→ 刷新后不会在 DataManager 显示(这是设计如此)

步骤 3:正确操作流程(K线记录)

步骤 操作 说明
1 输入正确合约代码 au2609.SHFE
2 设置写入间隔 建议 10秒
3 点击【K线记录】-【添加】 确保添加到 K线记录列表
4 等待行情推送 需有实际行情波动
5 等待写入间隔 超过设置的间隔时间
6 在 DataManager 点击【刷新】 左上角刷新按钮
7 展开 1m 数据查看 点击小箭头展开

步骤 4:验证数据是否写入

如果确认是 K 线记录但刷新仍不显示:

  1. 检查 DataRecorder 日志:查看是否有"写入数据库成功"的日志
  2. 检查数据库:直接查询数据库确认数据是否存在
  3. 检查合约订阅:在主界面行情组件确认该合约有行情推送

四、总结

你的问题很可能是合约代码错误ao 不存在)+ Tick 数据不显示(如果是 Tick 记录)的组合。

建议操作

  1. 立即修改为正确的合约代码(如 au2609.SHFE
  2. 添加 K线记录 而非 Tick 记录
  3. 等待行情推送和写入间隔后,在 DataManager 刷新查看

参考来源

  • faq.md:合约命名规则
  • data_manager.md:Tick数据除外说明
  • data_recorder.md:写入间隔说明
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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