第一步 python环境准备

我原本想用WSL2在windows机器上启动一个ubuntu机器来运行vnpy,因为期货公司不让用云服务器或者虚拟机进行测试,所以我同时安装了windows,也把Windows和Ubuntu两种环境的坑都踩了。。。

在windows/mac/linux环境中,windows不许需要环境准备,直接下载安装包就行。我使用ubuntu属于linux。

其他回答普遍反映install.sh有问题,我试了一下,确实有问题。于是直接手动安装。说是手动安装其实也快。

# 下载vnpy到ubuntu本地
git clone git@github.com:vnpy/vnpy.git

下面开始配置环境,我使用的pyenv+venv轻量化的环境配置方案。
pyenv功能:为不同项目提供不同的python版本。比如我A项目使用3.7.4, 而vnpy推荐使用3.13版本。使用了pyenv我就可以实现在A项目用3.7.4,在vnpy使用3.13,而不是两个系统使用同一个版本的python。
venv功能:为不同项目提供不同的依赖。A项目使用了2.27.1版本的requests包,而vnpy使用3.0.01版本的requests包(其实没有),直接使用pip install只能同时安装一个包,使用venv就可以把A项目和vnpy项目依赖的包隔离开了。
其他教程里面的conda,minicoda其实都是实现pyenv+venv的功能,选择使用conda还是pyenv+venv区别不大。

# 安装pyenv
curl https://pyenv.run | bash
# 查看可安装的 Python 版本
pyenv install --list

# 安装指定版本
pyenv install 3.13.2

# 查看已安装的版本
pyenv versions
# * system (当前使用的版本)
#   3.8.10
#   3.11.0


# 2. 本地(当前目录及子目录)
cd vnpy
pyenv local 3.13.2     # 该项目使用 3.13.2
# 会自动创建 .python-version 文件,此时在vnpy项目下运行python --version就会提示版本信息为3.13.2

# 创建venv虚拟环境
python3 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate

# 安装vnpy的依赖包
pip install .

第二步 安装一系列所需库

# 安装build-essential
sudo apt-get install build-essential

# 安装ta-lib
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar -zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib/
./configure --prefix=/usr
make
sudo make install
pip install ta-lib

# 我并没有确认下面两个是否必须,直接按照其他教程安装了
pip install quickfix
pip install psycopg2-binary

第三步 启动vnpy

在examples/veighna_trader/run.py有个run.py文件,将它复制到vnpy的根目录下。在vnpy目录,运行python run.py

description

这时候可能会报“'CtaStrategyApp' from 'vnpy_ctastrategy' (unknown location)”,很简单,只要安装这个模块就行,比如这个vnpy_ctastrategy,使用pip install vnpy_ctastrategy命令即可。
然后运行python run.py,就可以打开vnpy界面。如果没有打开,很有可能是没有GUI,如果是没有GUI的话,可以看下面。

description

如果是使用没有界面的ubuntu,比如我使用WSL,是不能装xubuntu-desktop太重的界面的。如果是win11可以使用WSLg,我的是win10,用的X410。AI给的完整UI配置流程我也放下面了。

description

第五步 连接simnow

去SimNow仿真交易【官方网站】官网注册一个账号,注册账号后,找到官网通知公告内的BrokeID,Trade Front,Market Front
SimNow仿真交易-产品与服务。左侧“产品和服务”打不开的话,先打开官网,然后点击顶部导航栏的“产品与服务”,下拉到中间就有simnow的链接配置信息。

在vnpy界面中,点击系统->连接CPT,然后按照下图所示的配置填写。其中

  • 用户名是simnow的投资者代码,在个人中心可以看到
  • 密码就是simnow账号密码
    其他信息按照页面提示填写即可,然后就可以登录了。
    description

登录成功后,可以点击帮助->查询合约->查询,来看合约信息是否有,有就成功了。

后面的穿透测试流程以及window,linux环境下decode err的解决方法我都写在这里了https://www.vnpy.com/forum/topic/34604