发布于VeighNa社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2026-05-31
 
5月中旬发布了VeighNa的4.4.0版本。本次更新的主要内容是新增QuestDB高性能时序数据库支持,同时对VeighNa Assistant的知识库和工具能力进行了进一步优化。

对于已经安装了VeighNa Studio 4.0版本的用户,可以使用快速更新功能完成自动升级。对于没有安装的用户,请下载VeighNa Studio-4.4.0,体验一键安装的量化交易Python发行版,下载链接:

https://download.vnpy.com/veighna_studio-4.4.0.exe

 

QuestDB时序数据库

 

功能介绍

本次4.4.0版本中,VeighNa新增了对QuestDB时序数据库的支持,为用户在本地或者服务器上管理大规模历史行情数据提供了新的选择。

QuestDB是一款开源时序数据库,面向金融行情、物联网数据、监控指标等高频时间序列场景设计。它具备低延迟查询、高速数据读取和SQL化访问能力,适合存储Tick、K线、策略运行指标等量化交易相关数据。

对于量化投研场景来说,数据库的查询读取性能会直接影响历史数据分析、策略回测和因子计算的效率。随着用户积累的行情数据越来越多,传统数据库在大范围时间查询、聚合统计和批量读取上的压力也会逐渐增加。QuestDB针对时间序列数据进行了专门优化,可以帮助用户更高效地完成历史行情检索和投研分析工作。

QuestDB的主要特点包括:

  • 高速数据读取:针对时间序列查询进行了专门优化,适合快速检索历史行情和统计数据。
  • 时序存储优化:支持基于时间戳的数据组织、时间分区和范围查询,适合管理大规模历史行情。
  • SQL访问能力:提供接近PostgreSQL风格的SQL语法,方便投研过程中的筛选、聚合和统计分析。
  • 内置Web控制台:部署完成后,可通过浏览器执行SQL查询、查看数据表和检查服务状态。
  • 部署方式简单:官方提供Docker镜像,Windows、Linux、Mac用户都可以快速启动服务。

通过接入QuestDB,VeighNa用户可以将持续增长的行情数据保存到专门的时序数据库中,并结合VeighNa已有的数据服务能力,构建更完整的本地量化研究和交易数据环境。
 

使用Docker快速部署QuestDB

下面以Windows系统为例,介绍如何通过Docker快速部署QuestDB。

1. 安装Docker Desktop

首先需要在Windows上安装Docker Desktop,可以从Docker官网下载并安装:

https://www.docker.com/products/docker-desktop/

安装完成后,启动Docker Desktop,并确认Docker已正常运行。

可以在PowerShell中执行以下命令检查Docker状态:

docker version

如果命令能够正常显示Docker Client和Docker Server的版本信息,说明Docker环境已经准备完成。

如果安装过程中需要配置WSL 2后端或者排查启动问题,可以参考Docker官方的Windows安装文档:

https://docs.docker.com/desktop/setup/install/windows-install/

2. 创建本地数据目录

QuestDB运行过程中会生成数据库文件。为了让数据在容器重启或删除后仍然保留,建议准备一个Windows本地目录,并将其挂载为容器内的QuestDB数据目录。

例如,可以在PowerShell中创建如下目录:

mkdir C:\questdb_data

该目录将用于保存QuestDB的数据库数据。

3. 启动QuestDB容器

在PowerShell中执行以下命令启动QuestDB:

docker run -d `
  --name questdb `
  -p 9000:9000 `
  -p 8812:8812 `
  -v C:\questdb_data:/var/lib/questdb `
  questdb/questdb

参数说明:

  • --name questdb:设置容器名称为questdb
  • -p 9000:9000:映射QuestDB Web控制台和REST API端口。
  • -p 8812:8812:映射PostgreSQL协议端口。
  • -v C:\questdb_data:/var/lib/questdb:将Windows本地目录C:\questdb_data挂载到容器内的/var/lib/questdb,用于持久化保存数据库文件。
  • questdb/questdb:使用官方QuestDB Docker镜像。

启动完成后,可以通过以下命令查看容器运行状态:

docker ps

4. 访问QuestDB Web控制台

容器启动成功后,在浏览器中访问:

http://localhost:9000

即可打开QuestDB的Web控制台。用户可以在控制台中执行SQL查询、查看数据表,并确认数据库服务是否正常运行,如下图所示:

description

5. 停止和重新启动

停止QuestDB:

docker stop questdb

重新启动QuestDB:

docker start questdb

由于数据目录已经挂载到C:\questdb_data,容器停止或重启后,已写入的数据会继续保留。
 

配置VeighNa连接QuestDB

QuestDB启动后,还需要在VeighNa的全局配置文件中启用对应的数据库配置。Windows系统下,该配置文件通常位于用户目录下的.vntrader文件夹中:

C:\Users\<用户名>\.vntrader\vt_setting.json

使用编辑器打开vt_setting.json文件后,添加或修改以下字段:

{
    "database.name": "questdb",
    "database.host": "localhost",
    "database.port": 8812,
    "database.user": "admin",
    "database.password": "quest",
    "database.database": "qdb",
    "database.http_port": 9000
}

其中database.port对应QuestDB的PostgreSQL协议端口,database.http_port对应QuestDB的Web控制台和REST API端口。

需要注意的是,database.http_port是QuestDB模块使用的非标准配置字段,无法直接通过VeighNa Trader主界面的【配置】对话框修改。因此在使用QuestDB时,需要通过编辑器直接修改vt_setting.json文件。

 

VeighNa Assistant优化

 

在4.3.0版本中,我们首次在VeighNa Station中集成了VeighNa Assistant智能助手。本次4.4.0版本继续围绕实际使用体验进行优化,主要包括VNAG框架本身的功能升级,以及VeighNa知识库内容的补充完善。

VNAG功能升级

新版VNAG增加了会话历史导出功能,方便用户保存和整理Assistant的问答记录。同时,我们也优化了工具执行调度逻辑,使Assistant在处理代码理解、文件检索、问题排查等复杂任务时,能够更稳定地完成多步骤工具调用。

知识库内容升级

本次更新还补充了来自社区渠道的FAQ内容,包括交流群、论坛等场景中用户经常遇到的安装、配置、开发和排错问题。随着这些常见问题被纳入知识库,Assistant在回答VeighNa实际使用问题时可以给出更贴近社区经验的参考。

 

CHANGELOG

 

新增

  1. 新增微信通知功能,支持基于微信iLink协议的扫码绑定、消息推送、推送间隔配置和会话过期提示
  2. MainEngine新增send_notification函数,支持统一通过邮件和微信渠道发送通知
  3. vnpy.alpha增加自定义表达式函数注册机制register_functions
  4. vnpy.alpha增加数据处理函数:process_replace_inf、process_ts_norm、process_drop_feature、process_cs_fill_na
  5. DataProxy增加更多运算符支持:反向加减乘除、整除、取模、幂运算、负号和不等于比较
  6. 新增用于对接QuestDB高性能时序数据库的vnpy_questdb模块
  7. vnpy_esunny重构调整为基于易盛启明星V9 API接口开发,支持期货和黄金TD交易

调整

  1. vnpy.alpha改进数据集、处理器、模型和回测相关实现,优化类型提示和数据处理流程
  2. DataProxy的比较运算结果统一返回pl.Int32,并补充相关单元测试
  3. 微信通知增加推送间隔控制,间隔内的新消息会暂存并合并发送
  4. 替换send_email为新的send_notification消息发送函数:vnpy_ctastrategy / vnpy_portfoliostrategy / vnpy_spreadtrading / vnpy_scripttrader
  5. vnpy_tora更新升级:行情API至v1.0.9_20250825、股票API至v4.1.6_20251121、期权API至v1.3.4_20230908
  6. vnpy_ctp中对于因为报单提交被拒绝导致的撤单状态,调整映射为拒单状态
  7. vnpy_ctp调整特殊情况撤单(非交易时段、资金不足等)的日志输出
  8. vnpy_rohon更新升级至6.7.2版本的底层API
  9. vnpy_tts更新升级至6.7.11版本的底层API,并增加Mac OS支持

修复

  1. 修复loguru日志格式化错误
  2. vnpy.alpha修复AlphaLab查询信号文件路径错误的问题
  3. vnpy_rqdata修复下载数据时,由于end没有时区信息下载报错的问题
  4. vnpy_rqdata修复由于没有成交,导致实时行情中字段缺失的问题
  5. vnpy_tora修复Fens服务器登录的问题
  6. vnpy_spreadtrading修复算法成交判断中的四舍五入误差问题