VNPY的在linux系统上装机搞得我一度想放弃。好在傻人有傻福,稀里糊涂的今天让我装成了。在此立贴纪念,同时记录一下蛋疼的探索过程,希望能够帮助各位。
尽管有大神指出对于新手最好先从WIN上玩转,但是我个人推荐在VNPY在Linux上使用。用一个IT前辈的话说,win上山容易,但是马上到山顶了上面会写一句此路不通;Linux开始上手有点困难,但是真上道了速度会奇快。
----------------------------------------------------书归正传,开始正文------------------------------------------------------------------------------------------------------------------------------
一、下载VNPY文件
(方式一)可以从github上clone或者下载压缩文件,但是对于其龟速,且容易终端,不推荐。
(方式二)在terminal上进入想让文件下载的目录中,本人是下载到了桌面,所以
1.cd到桌面 ---> cd /home/kelin110/Desktop
2.开始从gitee上拉 ---> git clone --recursive https://gitee.com/vnpy/vnpy.git 这样子在Desktop就生成了一个vnpy的文件夹
二、开始安装
1.cd vnpy
python setup.py install (个人的精力来讲,用bash install.sh就是个深坑,一头撞墙的坑)
一切顺林的话,最后会显示Finished processing dependencies for vnpy==2.1.8
进入 example/vn_trader, 跑 run.py, 命令行: python run.py
顺利的话,界面就出来了,安装完成。
4.这个界面相对win傻瓜安装版的简陋,但是进入run.py的程序你会发现,其实功能已经写好了,根据需要取消注释即可。
三、大坑总结
1.妄图调整各库版本,迎合vnpy
首先,各库情况复杂不说,由于前期已经安装了anaconda,所以算上ubuntu自带的,一共有3个python版本,各自库的位置还不一样,比如anaconda的库的位置是在anaconda3/lib/python3.8/site-packages/,而机子的自带python在/usr/lib/python3/dist-packages/,这些库有时候相互不能调用,时间长了自己都要傻掉了;尤其是pip命令返回提示说已经安装了,但是调用pip list,查看没有相应的库。那就是多个库相互影响导致的。此时需要照道已经安装的库,
例如:sudo cp ./libta_lib. /home/kelin110/anaconda3/lib/python3.8/site-packages/
其次,配合安装缺失库的时候,尽量调用conda命令来安装。
2.尽量不要偷懒用bash install.sh命令一步安装
这里有很多前辈的帖子上也反映了bash会出现各种乱七八糟的问题,其实最好的笨办法就是自己手动安装需要支持的库。这里黏贴我已经当时缺少的库,希望对大家有帮助。
sudo cp ./libta_lib. /home/kelin110/anaconda3/lib/python3.8/site-packages/ ##说明:这是将手动下载的talib编译好后复制到python库中
pip3 install -i https://pypi.doubanio.com/simple/ ta-lib ##说明:这样子写主要doubanio网速比较给力
sudo apt-get install libxcb-xinerama0 ##解决qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.错误
前期掉的坑实在多到自己都记不住了~先写这些吧
我学Python的目的很明确,就是量化交易。从一开始就有关注vn.py,但我学的是Python3,那时vn.py还处于版本1.x时期,所以只能望vn.py兴叹。
vn.py 2.0出来之后我并没有及时注意,等反应过来已经是2.0.7版。很兴奋,认真研究,并将心得写成《vn.py 2.0.7源代码深入分析》,分享在vn.py社区的经验分享板块。
出于对量化交易的爱好,出于对Python在量化交易中作用的认同,一定程度受vn.py强大功能的鼓舞,我与同事合写了《Python量化交易从入门到实战》一书,对vn.py的讨论是其中很重要的一部分内容。
后续又写了《vn.py 2.1.4源代码深入分析》和《vn.py 2.2.0源代码深入分析》两个文档,感谢各位老师的认可。
vn.py 3.0.0版发布于2022-03-23,这是我一直期待的一个版本,所以它刚一推出,我就立刻开始试用,并着手整理《vn.py 3.0.0源代码深入分析》。夜以继日,终于在前天完成。先发到了书籍的资源群中,接受了两天批评,现分享到此处。
写作本文档的一个主要目的是对vn.py的开源精神做出一点支持,希望本文档能够对大家学习使用vn.py有所帮助。
百度网盘链接:https://pan.baidu.com/s/1cl2MA9hNFhHlxfHM0gGe2A
提取码:s7u6
一、提前下载需要的安装包:
1、Miniconda3
https://docs.conda.io/en/latest/miniconda.html#
选择MacOSX installers里的最新版本,这里是Python 3.9下载。
2、pycharm
pycharm-community-2020.3.3.dmg
从官网上下载社区版https://www.jetbrains.com/pycharm/
3、vnpy安装包(解压后,复制文件夹到自己喜欢的位置)
从vnpy在gitee的官方地址下载最新的安装包,采用zip格式下载。
https://gitee.com/vnpy/vnpy
二、安装
1、安装Miniconda,这里是Miniconda3-latest-MacOSX-x86_64.pkg
2、添加国内源:
添加国内源:在当前用户下,编辑.condarc,内容如下:
channels:
3、创建虚拟环境
conda create -n py37_vnpy python=3.7
conda activate py37_vnpy
(退出:conda deactivate)
4、安装python.app
conda install -c conda-forge python.app
可能会因为网络问题不成功,多试几次。
5、安装pycharm-community-2020.3.3.dmg
从官网上下载社区版https://www.jetbrains.com/pycharm/
7、打开vnpy所在的文件夹,进行配置
点击‘PyCharm’菜单->Preferences菜单->Project:vnpy一级菜单->Python Interpreter二级菜单->点击右上齿轮->Add菜单->Conda Environment->Existing enviroment->Interpreter:/opy/miniconda3/envs/py37_vnpy/bin/pythonw(选择前面新建的虚拟环境的pythonw)->点OK->点OK->点OK
8、(确认在PyCharm里已经打开了vnpy项目),在PyCharm的底部,找到Terminal的标签,点击,进入py37_vnpy环境的终端,并且当前路径位于vnpy项目的文件夹。
执行以下的安装语句(requirements.txt是vnpy项目文件夹下面的一个文件),这个安装时间比较长,需要较好的网络。
pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
9、创建run.py文件,复制以下代码,来源 README.md
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_backtester import CtaBacktesterApp
def main():
"""Start VN Trader"""
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
# main_engine.add_gateway(CtpGateway)
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
if name == "main":
main()
10、运行 python run.py,注意环境名称是 py37_vnpy
[知乎专栏经验发布] (https://www.zhihu.com/column/c_1760768090802171904)
距离上一篇”完结”过去了快一年,本来以为这个系列就这样了。
然后 AI 来了。
不是那种”帮你补全几行代码”的 AI,而是真的能从零开始、一个文件一个文件帮你写出来的 AI。看着 Claude 一步步理解我的需求,读懂 VNPY 的源码,处理 PySide6 的信号槽、QSS 样式、Pydantic 数据模型……说实话,有点震撼。
于是趁着春节前的这段时间,我做了一个实验:用 AI 辅助,从 VNPY 3.9 重构到 4.3,看看能走多远。
结果是:大约一周时间,从项目搭建到功能完善,我没有手写一行代码。所有的代码都是在和 AI 的对话中产生的——我负责提需求、审代码、做决策,AI 负责实现。
为什么要重构
VNPY 从 3.9 到 4.3 变化很大,核心模块拆分成了独立包(vnpy-ctastrategy、vnpy-ctp 等),架构上差异太多,简单迁移行不通,不如重新来过。
正好,V1 积累了不少想法但一直没动手改的地方,这次借 AI 之手一并实现了。
V2 主要变化
变化 说明
基础框架 VNPY 3.9 → 4.3
数据库 SQLite/MySQL → ArcticDB (LMDB)
策略架构 三层数据模型 Params/State/Vars
双模交易 同一策略支持全自动 + 辅助半自动
多账户 实盘/模拟/7×24 环境并存
主力合约 自动识别 + 换月持仓保护
AI 助手 实验性接入,目标是策略信号辅助
界面 PySide6 + QFluentWidgets 全面重写
详细内容就不在这里展开了,感兴趣的朋友请移步 GitHub 仓库查看 README。
开源
项目已开源,MIT 协议,可自由使用和修改:
GitHub:https://github.com/48645970/guanlan
欢迎 Star,欢迎提 Issue,欢迎交流。
感谢
感谢 VNPY 团队提供了优秀的量化交易框架,让这一切有了基础。
感谢 Claude —— 这个项目的”联合开发者”。一周时间里,从框架搭建到细节打磨,每一行代码都经过了我们之间的对话。AI 不会疲倦,不会敷衍,能记住上下文,能读懂源码,能理解”这里不太对”是什么意思。这种体验,一年前完全无法想象。
我们正站在一个很有意思的时代节点上。
最后
祝大家新年快乐,交易顺利。
主窗口

多账户管理,自动登录

合约管理,收藏,手续费设置(策略中算手续费),定期从外部获取后计算最大持仓定为主力

交易持仓

绩效查看,按账户统计

数据管理,一键批量导入通达信数据(日线、分钟线)

策略执行
使用数据模拟定义参数和状态显示,配合限制输入框,对输入内容格式、最大最小值做限制
界面参数、状态值,使用模型指定的中文标题显示
Params、State 显示在窗口
Variable 仅做为中间变量存储,但不显示
扩展 on_ready,在在 on_start 后触发,不同的是,交易状态 self.trading == True
扩展 on_reset,在画面点击重置时触发



发布于VeighNa社区公众号【vnpy-community】
原文作者:VeighNa小助手 | 发布时间:2026-02-02
【社区活动尊享卡】的受欢迎程度大幅超出我们的预期,为了保证每场社区活动的交流质量,尊享卡已经变更为仅对部分专业交易员用户定向提供。对于参加活动较多的同学强烈推荐!购买请扫描二维码添加小助手咨询:

Clawdbot(目前已经改名OpenClaw)在过去两周的传播速度可以说是【病毒式席卷全球】,VeighNa社区里也不乏各种讨论。
所以决定在春节前临时增加一场社区活动,本场活动将于2月7日(周六)下午2:00至5:00在上海举办。普通报名仅支持线下参会,尊享卡报名可通过线上直播参与。活动具体地址将在微信群中公布,请在报名成功后扫码加入社区活动群,以便获取相关信息!
时间:2月7日 14:00-17:00
地点:上海(具体地址后续在微信群中通知)
报名费:99元(Elite会员免费参加)
报名方式:扫描下方二维码报名(报名后请扫码加入社区活动微信群获取参会地址)

发布于VeighNa社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2025-04-30
关于MultiCharts量化平台本身,在2020年的这篇公众号文章中就有介绍过《vn.py技术架构2 - 受启发的项目:CTP API、MultiCharts》。
我本人和MultiCharts可以算是相当有缘分:职业生涯中学习上手的第一套量化平台就是MultiCharts,10多年前还在英国念硕士的时候买了MultiCharts国际版终身授权,当时的价格大概是1300美金,差不多10000$,足足省吃俭用了半年,遗憾的是授权码已经找不到了。回国后在期货公司开始第一份工作的时候,用的也是由艾杨软件代理的MultiCharts中国版,某种意义上促成了后续CtaStrategy模块的开发。
去年艾杨软件在MultiCharts专策版中支持了Python接口功能,同时也推出了用于对接VeighNa量化平台的交易接口模块vnpy_icetcore(具体可以阅读这篇文章),但对于许多已经使用VeighNa直连CTP(或者其他交易柜台)的用户来说无法直接使用该模块。
因此我们根据VeighNa社区用户的习惯,开发了新的vnpy_mcdata数据服务模块。在此过程中受到了艾杨技术团队的大力支持,在此表示感谢!与vnpy_icetcore定位于gateway不同的是,vnpy_mcdata专注于datafeed,也就意味着使用任何交易接口的同学都可以使用MultiCharts作为数据服务。
目前支持的期货和期货期权数据范围包括:
交易所
数据类型
VeighNa社区的新用户可以发送邮件申请试用权限:
申请成功后会收到回复的邮件,其中包含以下信息:
访问以下网页下载安装MultiCharts 14(专策版):
https://www.multicharts.cn/download
点击网页中的【64位元】下载链接:

下载完成后运行安装,注意记住选择的安装目录,后面配置datafeed时需要用到。
完成后双击桌面的【MC14 专策版】图标启动。首次运行确认用户协议后,会看到登录对话框:

在其中填入会员账号和密码后点击【登录】按钮,经过一段初始化等待后看到如下图所示的注册对话框:

在其中填入MC注册名和MC注册码,勾选【记住密码】后点击【登录】按钮即可进入MultiCharts主界面。
此时桌面底部的任务栏中会出现两个进程,分别是:
首先需要安装vnpy_mcdata数据服务模块:
pip install vnpy_mcdata
然后修改全局配置中的数据服务相关字段(以datafeed开头):
注意username需要填入你的MultiCharts安装目录(结尾的APPs文件夹保持不变),并将路径中的 “\” 替换为 “/”。
重启VeighNa Trader并加载DataManager模块,即可测试从MultiCharts获取历史K线数据:

除了期货交易所合约外,MultiCharts还提供了多种连续合约的数据,以期货产品名称 + 标准后缀标识:
MultiCharts专策版数据服务的价格为2980元/年,试用结束后需要购买可以扫描下方二维码:

发布于VeighNa社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2025-12-29
上周我们发布了VeighNa 4.3.0版本。本次更新主要包括:在VeighNa Station中集成全新的AI智能助手VeighNa Assistant,以及对VeighNa Docker镜像进行重构优化。
已安装VeighNa Studio 4.0版本的用户,可使用快速更新功能完成自动升级;尚未安装的用户,建议直接下载VeighNa Studio-4.3.0,体验一键安装的量化交易Python发行版,下载链接:
https://download.vnpy.com/veighna_studio-4.3.0.exe

在本次4.3.0版本中,VeighNa Station集成了VeighNa Assistant智能助手(基于VNAG框架开发),主要功能包括:
要使用VeighNa Assistant,首先需要准备一个大模型服务的API Key(可理解为访问凭证)。对于初次接触的用户,推荐使用阿里云百炼的AI服务(目前提供较为充足的免费额度),具体开通流程请参考阿里云官方的详细步骤说明。
准备好API Key后,双击桌面快捷方式启动VeighNa Station,在顶部菜单栏中找到【功能 -> AI服务配置】选项:

点击后将打开AI服务配置对话框。在顶部的下拉框中选择【Bailian】,然后在配置参数区域填入之前准备好的API Key,API地址保持默认即可:

点击【保存】按钮后,系统会弹出提示框,告知需要重启VeighNa Station以使配置生效:

完成重启后,点击顶部菜单栏的【功能 -> 模型浏览器】,选择想要使用的大模型:

在模型浏览器中,可以通过上图红框中的箭头按钮来添加或移除大模型,同时也可以调整已选模型的优先级顺序。对于百炼AI服务,推荐选择Agentic能力较强的qwen3-max-preview或kimi-k2-thinking模型。完成设置后,点击右下角的【保存】按钮,系统会弹出确认提示框:

点击【OK】返回主界面后,即可在聊天区域与智能体进行交互。整体使用方式与ChatGPT等主流AI聊天工具高度相似,有相关使用经验的用户可以快速上手:

如果在使用过程中遇到任何问题或有改进建议,欢迎在社区论坛的【VeighNa Assistant】专区发帖交流。
基于社区用户的反馈,我们在4.3.0版本中 对VeighNa Docker镜像进行了全方位的重构与优化。
核心改进:
快速开始:
用户可以直接访问VeighNa Docker Hub查看详情,或使用以下命令直接拉取并启动:
# 拉取 4.3.0 版本镜像
docker pull veighna/veighna:4.3.0
# 启动容器(示例:挂载本地目录并启动图形界面)
docker run -it \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $(pwd)/home:/home \
-p 8888:8888 \
veighna/veighna:4.3.0 python3 -m veighna_station
新增
调整
修复
刚开始做量化的时候,我也踩过一个很常见的坑:拿到 Tick 数据就直接进策略,结果回测表现和实盘感觉完全对不上。
后来回头看,问题并不在策略,而是 Tick 数据本身并不“干净”。
如果基础数据有问题,后面的逻辑写得再漂亮,结果也很难可信。
这篇主要记录一下我在实际项目中,对 Tick 数据做基础处理的一些经验,算是给刚入门的朋友一个参考。
即便是交易所推送的逐笔成交数据,在实际使用中也经常会遇到一些问题,比如:
这些问题在单条数据上看不明显,但一旦进入回测或统计分析,很容易放大影响。
所以在策略逻辑之前,我一般都会先做一层最基础的 Tick 清洗。
下面这个示例,是我平时会用到的一种最基础处理方式,思路很简单:
import pandas as pd
def clean_ticks(raw_ticks):
"""
对原始 Tick 数据做基础清洗
raw_ticks: list[dict],包含 timestamp / price / volume 等字段
"""
df = pd.DataFrame(raw_ticks)
# 确保时间顺序
df = df.sort_values("timestamp").reset_index(drop=True)
# 去重
df = df.drop_duplicates()
# 去掉关键字段为空的记录
df = df.dropna(subset=["price", "volume"])
# 过滤明显异常值(阈值需根据标的调整)
df = df[(df["price"] > 0) & (df["volume"] > 0)]
return df
这类处理并不复杂,但非常有必要。
很多“策略不稳定”的问题,最后都能追溯到数据层。
实际项目里,清洗规则一定要结合标的和交易制度调整,这里只是一个基础示例。
在做这些基础处理时,我个人更倾向于使用字段定义清晰、时序比较稳定的实时数据源,这样可以少写很多防御性代码。
之前的一些项目里,我用过支持股票、外汇和加密资产实时推送的数据服务(例如 AllTick 的 WebSocket 行情),整体字段完整性和时间顺序比较稳定,对我来说更多是“省事”,而不是为了追求功能有多复杂。
作为初学者,面对 vnpy 无所不包、博大精深的丰富内容,试图用图形对 vnpy 的运行流程做一个归纳。
不到之处,还请各位多多指正

发布于VeighNa社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2026-01-05
2025年已经结束,公众号又迎来了每年一次的回顾总结。这一年对于VeighNa项目而言意义非凡——自2015年3月发布以来,VeighNa已经走过了作为开源项目的第一个十年。在这段时间里,VeighNa的成长离不开广大社区用户的持续贡献,在此深表感谢!!!
按照往年的惯例,还是要对这一年的经历与变化做个回顾和总结。
先来看看2025年VeighNa开源项目的整体数据(统计截止至2025年12月31日):
社区交流
截至2025年底,VeighNa在GitHub上共收获35120个Star,Fork数量达到10608,相较于去年实现了大幅增长。除此之外,在国内代码托管平台Gitee上的VeighNa仓库也保持同步更新,目前已经累计获得2980个Star和1425个Fork。
2025年是VeighNa 4.0大版本的元年,标志着项目进入了一个全新的发展阶段。今年的开发重心主要放在了AI量化能力建设、Python版本升级、监管合规适配三个方面。
今年的主要更新内容包括:
一、面向AI量化策略的vnpy.alpha模块
4.0.0版本新增了面向AI量化策略的vnpy.alpha模块,为专业量化交易员提供一站式多因子机器学习(ML)策略开发、投研和实盘交易解决方案:

二、Python 3.13核心支持升级
VeighNa 4.0版本将核心支持升级到了Python 3.13。综合来看,从Python 3.10到3.13,CPython的性能经历了持续且显著的增长——Python 3.13的平均性能大约比Python 3.10快35-40%。
对于VeighNa用户而言,这意味着策略回测、实盘交易中涉及的大量纯Python计算逻辑都将运行得更快,从而降低延迟、提升策略执行效率。
同时,4.0版本也在软件工程层面进行了多项关键性改进:
三、RiskManager风控模块重构
4.2.0版本对RiskManager交易事前风控模块进行了重构升级,完整适配期货程序化交易监管新规:
四、核心框架日志输出落地
为满足监管新规要求,4.2.0版本在日志记录方面也进行了全面增强:
各大策略模块的日志自动注册并转发至核心日志引擎
2025年共组织了8场VeighNa社区线下活动,举办地包括上海、深圳和成都。同时新增了2场尊享卡专属活动,以Live Coding实战内容为亮点,通过"授人以渔"的方式帮助核心用户将知识内化为技能。
专题小班特训营共举办了3场。上半年基于vnpy.alpha模块对【机器学习截面多因子策略】课程进行了升级优化,年底则推出了全新的【VeighNa量化AI智能体应用】特训营,围绕自研的vnag框架,系统讲解大模型接入、RAG知识库构建、Function Call等AI Agent核心能力,并通过CTP接口适配、CTA策略投研、因子挖掘三个实战案例,帮助学员掌握AI Agent在量化交易领域的落地应用。
至此,2025年的总结告一段落。接下来,我们将展望2026年的计划。如果你对VeighNa在过去一年有任何想法、吐槽,或者对新一年有什么建议和期望,欢迎在评论区留言告诉我们!