VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 15
声望: 0

1.安装MINICONDA:

1)wget Miniconda下载地址;

2)bash Miniconda;

3)重启

2.安装TA-LIB及其依赖包:

1)

conda install -c conda-forge ta-lib;

3.安装vnpy:

1)安装VeighNa前需要先安装gcc编译器,用于编译C++类接口文件。在终端中运行以下命令;

sudo apt-get update
sudo apt-get install build-essential

2)下载vnpy压缩包tar

3)解压vnpy压缩包

tar -xvzf vnpy-3.0.0.tar.gz

4)安装vnpy:

. install.sh python3.7

4.图形问题及中文编码:

1)

图形驱动问题处理

在有图形界面的Ubuntu系统上启动,如果出现qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found的报错,可以在终端中运行下述命令来安装libxcb-xinerama0,尝试解决图形驱动的依赖问题:

sudo apt-get install libxcb-xinerama0

2)

中文编码问题处理

如果Ubuntu系统语言是英文,在连接CTP接口这类使用中文语言的接口时,可能会出现下述报错:

terminate called after throwing an instance of ‘std::runtime_error’ what(): locale::facet::_S_create_c_locale name not valid

可以使用local-gen安装中文编码尝试解决:

sudo locale-gen zh_CN.GB18030

5.安装图形桌面环境:

1)

安装Xubuntu-destop

Xfce是一款针对Linux/UNIX系统的现代化轻量级开源桌面环境,最大的优点是内存消耗小,且系统资源占用率很低,Linux之父Linus Torvalds日常使用的桌面环境就是Xfce。

Xfce只是纯粹的桌面环境,但我们在日常使用操作系统时,还需要许多其他常用的工具,如多国语言支持、浏览器、输入法工具等。Xubuntu-desktop就是一套整合了Xfce桌面环境和其他常用图形界面软件的安装包。

安装方法也相对简单,在终端中运行命令:

sudo apt-get install xubuntu-desktop

2)安装VNC

我们可以在文件/etc/apt/sources.list 中添加

deb http://archive.ubuntu.com/ubuntu/ bionic universe
sudo vim /etc/apt/sources.list
  保存退出

首先需要安装VNC服务器,在终端下运行命令:

sudo apt-get install vnc4server

安装完毕后,在终端运行vncserver命令,来启动VNC服务器。首次运行时需要设置VNC远程连接的密码,长度至少是6位,并且二次输入来确认(注意该密码不是Ubuntu账户的密码)。

https://mmbiz.qpic.cn/mmbiz_png/3HpBCK3bblBtgzH4iapM2sFpWPSxJcvZceOQyDcrukrBA7FYK18fy8Ze4sBciaRCSd2bYsXuzbFKrd9hEnyYH84A/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

VNC服务器启动好后,可以在日志输出文件名中看到其默认端口是1,上图所示红色方框标识“:1”。

启动了远程桌面服务器后,下一步是配置xstartup文件,来设置远程桌面使用Xfce的桌面环境。用文本编辑器nano打开xstarup文件,在终端运行命令:

sudo vim ~/.vnc/xstartup

可以看到如下内容:

https://mmbiz.qpic.cn/mmbiz_png/3HpBCK3bblBtgzH4iapM2sFpWPSxJcvZcC6XiaYw9lC8FSBXTiasOd3NoWPrwd6VAicA0yhPcPxzlrqZoBq8zO0iaFA/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

需要在最后一行 "x-window-manager &" 前面添加一个"#"注释掉这行,同时在文件最后加入一段新的配置信息:

sesion-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &

保持退出

配置完xstartup后,我们需要重启VNC服务器:先把默认的1号端口服务杀掉,然后新的服务我们改为使用9号端口(因为1号端口容易被扫描攻击),同时设置远程桌面的分辨率为1920x1080(根据你的本地显示器分辨率来设),运行下列命令:

vncserver -kill :1
vncserver -geometry 1920x1080 :9
Member
avatar
加入于:
帖子: 640
声望: 34

感谢分享!

Member
avatar
加入于:
帖子: 5
声望: 2

我在 ubuntu20.04 上面, python3.9 ,安装 vn-py 3.0, 有图形化界面。 执行 install.sh 顺利,完成,但发现 vnpy_xxxxx的库都没有装。
检查发现 这个发行版本里面的 requirements.txt 里面只有
tzlocal==2.0.0
PySide6==6.2.3
pyqtgraph==0.12.3
qdarkstyle==3.0.3
numpy==1.21.5
pandas==1.3.5
matplotlib==3.5.1
seaborn==0.11.2
ta-lib==0.4.24
deap==1.3.1
pyzmq==22.3.0
plotly==5.5.0
importlib-metadata==4.10.1

没有 vnpy的其他安装库,按照文档自行下载用 pip 安装
pip install vnpy_ctastrategy vnpy_ctabacktester vnpy_spreadtrading vnpy_optionmaster vnpy_portfoliostrategy vnpy_algotrading vnpy_scripttrader vnpy_paperaccount vnpy_chartwizard vnpy_portfoliomanager vnpy_rpcservice vnpy_datamanager vnpy_datarecorder vnpy_excelrtd
vnpy_webtrader vnpy_rest vnpy_websocket vnpy_ctp vnpy_rqdata vnpy_tushare vnpy_ifind vnpy_riskmanager vnpy_riskmanager vnpy_sqlite vnpy_tushare

完成后,可以启动界面,操作正常。

问题:
1 。发现所有的vnpy 库都被装到 python3.9的环境里面了。不知道其他在 ubuntu下面安装的是否也是这样?
回答: 有建立了一个虚拟换, 试验过来还是一样,就不折腾了,也能用。

2。 针对 Faile to import cython option pricing model, please rebuild with cython in cmd. 的提醒, 如何编译?
回答: 去 github 或者 gitee 下载 vnpy_optionmaster 的源文件,把 cython_model 目录下面的东西复制到 Ubuntu的python 环境里面 , 我是用conda 建立的虚拟环境 .../site-packages/vnpy_optionmaster/pricing, 里面有三个子目录, 依次进去执行 python setup.py build_ext --inplace , 分别生成两个文件, pyx和so结尾的, 总共 6个。 在复制到 ../../的目录里面,就是 .../site-packages/vnpy_optionmaster/pricing 这个目录里面, 原来里面有几个 pyd结尾的文件,就是这里。看不见 pyd结尾的地方就错了。 然后这个问题就ok了。

先谢谢各位了。

Member
avatar
加入于:
帖子: 5
声望: 2

pip list | grep vnpy
vnpy 3.0.0
vnpy-algotrading 1.0.2
vnpy-chartwizard 1.0.2
vnpy-ctabacktester 1.0.5
vnpy-ctastrategy 1.0.8
vnpy-datamanager 1.0.5
vnpy-datarecorder 1.0.3
vnpy-excelrtd 1.0.1
vnpy-mysql 1.0.0
vnpy-optionmaster 1.0.2
vnpy-paperaccount 1.0.1
vnpy-portfoliomanager 1.0.1
vnpy-portfoliostrategy 1.0.1
vnpy-rest 1.0.3
vnpy-riskmanager 1.0.3
vnpy-rpcservice 1.0.1
vnpy-rqdata 2.9.44.1
vnpy-scripttrader 1.0.1
vnpy-spreadtrading 1.1.4
vnpy-sqlite 1.0.0
vnpy-tushare 1.2.64.3
vnpy-websocket 1.0.2
vnpy-webtrader 1.0.4

从 github 上下载的 3.0.0 版本,解压缩目录是这样的
build/ dist/ examples/ install_osx.sh LICENSE README_ENG.md requirements.txt setup.py vnpy.egg-info/
CHANGELOG.md docs/ install.bat install.sh
MANIFEST.in README.md setup.cfg vnpy/

从example/vn_trader 里面可以启动 GUI。

明天折腾 vscode 远程调试, 界面框架不是最重要的。更加喜欢script干活, 可视化的部分在django上面再慢慢折腾吧。

Member
avatar
加入于:
帖子: 5
声望: 2

在ubuntu上,发现另外一种装法,更加简单快捷

  1. conda create vnpy3 python=3.10
  2. conda activate vnpy3
  3. pip install vnpy vnpy_ctastrategy vnpy_ctabacktester vnpy_spreadtrading vnpy_optionmaster vnpy_portfoliostrategy vnpy_algotrading vnpy_scripttrader vnpy_paperaccount vnpy_chartwizard vnpy_portfoliomanager vnpy_rpcservice vnpy_datamanager vnpy_datarecorder vnpy_excelrtd vnpy_riskmanager vnpy_webtrader vnpy_rest vnpy_websocket vnpy_sqlite vnpy_mysql vnpy_tushare vnpy_ctp

这样就完成安装了。
下面开始测试, 参考 https://gitee.com/vnpy
新建一个工作目录,在里面建立文件 run.py, 里面的内容如下 :

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp

def main():
"""Start VeighNa 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()

在终端里面行下列命令启动VeighNa Trader:

python run.py

原来 vnpy的界面可以根据自己的需要裁剪, 不错。

Member
avatar
加入于:
帖子: 5
声望: 2

关于Ubuntu 安装的调整:

一键安装过程整体分为3步:

  1. Ubuntu 需要准备 gcc 环境,

     sudo apt update # 更新信息
     sudo apt install build-essential  # 安装 gcc
  2. 利用 conda 构建环境,例如

    conda create -n vnpy3 python=3.10  #喜欢的也可以用 python=3.9
    conda activate vnpy3 # 激活环境准备安装下面的东西

3.下载安装ta-lib库, 记得要先完成第2步,否则不知道装哪里去了,

   TA_Lib    # install from src for linux
   wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
   tar xf ta-lib-0.4.0-src.tar.gz
   cd ta-lib
   ./configure --prefix=/usr
   make
   sudo make install
   pip install TA-Lib

4. 安装requirements.txt文件内的相关依赖库;这个步骤可以省略, 因为pip 会根据第三步重新匹配相应的基础环境。

5. 安装VeighNa本身。这次系统重构后,可以让用户根据自己的需求灵活选择所需的功能,故不同的功能模块需要独立安装。一个典型的安装组合如下, 利用 sqlite存放tushare的数据,所有功能都装上,有点贪心。其实不做期货的就可以用用装期货模块:

pip install vnpy vnpy_ctastrategy vnpy_ctabacktester vnpy_spreadtrading vnpy_optionmaster vnpy_portfoliostrategy vnpy_algotrading vnpy_scripttrader vnpy_paperaccount vnpy_chartwizard vnpy_portfoliomanager vnpy_rpcservice vnpy_datamanager vnpy_datarecorder vnpy_excelrtd vnpy_riskmanager vnpy_webtrader vnpy_rest vnpy_websocket vnpy_sqlite vnpy_mysql vnpy_tushare vnpy_ctp
```

特别提醒,若是在虚拟机上运行,请把内存调至4G以上,否则会报错内存不足。

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

bfcat wrote:

在ubuntu上,发现另外一种装法,更加简单快捷

  1. conda create vnpy3 python=3.10
  2. conda activate vnpy3
  3. pip install vnpy vnpy_ctastrategy vnpy_ctabacktester vnpy_spreadtrading vnpy_optionmaster vnpy_portfoliostrategy vnpy_algotrading vnpy_scripttrader vnpy_paperaccount vnpy_chartwizard vnpy_portfoliomanager vnpy_rpcservice vnpy_datamanager vnpy_datarecorder vnpy_excelrtd vnpy_riskmanager vnpy_webtrader vnpy_rest vnpy_websocket vnpy_sqlite vnpy_mysql vnpy_tushare vnpy_ctp

这样就完成安装了。
下面开始测试, 参考 https://gitee.com/vnpy
新建一个工作目录,在里面建立文件 run.py, 里面的内容如下 :

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp

def main():
"""Start VeighNa 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()

在终端里面行下列命令启动VeighNa Trader:

python run.py

原来 vnpy的界面可以根据自己的需要裁剪, 不错。

本人也是如此安装,系统ubuntu20.04,conda 4.13.0。但运行examples/veighna_trader/run.py
报如下错误。

找不到数据服务驱动vnpy_,使用默认的RQData数据服务
Traceback (most recent call last):
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy/trader/datafeed.py", line 50, in get_datafeed
    module: ModuleType = import_module(module_name)
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'vnpy_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/用户目录/vnpy-3.2.0/examples/veighna_trader/run.py", line 99, in <module>
    main()
  File "/home/用户目录/vnpy-3.2.0/examples/veighna_trader/run.py", line 76, in main
    main_engine.add_app(CtaStrategyApp)
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy/trader/engine.py", line 101, in add_app
    engine: BaseEngine = self.add_engine(app.engine_class)
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy/trader/engine.py", line 72, in add_engine
    engine: BaseEngine = engine_class(self, self.event_engine)
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy_ctastrategy/engine.py", line 111, in __init__
    self.datafeed: BaseDatafeed = get_datafeed()
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy/trader/datafeed.py", line 53, in get_datafeed
    module: ModuleType = import_module("vnpy_rqdata")
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy_rqdata/__init__.py", line 26, in <module>
    from .rqdata_datafeed import RqdataDatafeed as Datafeed
  File "/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy_rqdata/rqdata_datafeed.py", line 14, in <module>
    from vnpy.trader.utility import round_to, ZoneInfo
ImportError: cannot import name 'ZoneInfo' from 'vnpy.trader.utility' (/home/用户目录/anaconda3/envs/vnpy3/lib/python3.10/site-packages/vnpy/trader/utility.py)

有什么解决办法吗?

已解决:将vnpy_rqdata退后一个版本。查了下论坛感觉遇到出错,大多数可以将使用的包退后到某个版本能解决问题。
希望给大家带来帮助

Member
avatar
加入于:
帖子: 716
声望: 55

veighna3.3.0版本中使用ZoneInfo替代pytz库,目前部分组件已经升级完毕,但是3.3.0版本的veighna版本没发布,所以有找不到ZoneInfo的错误,根据错误倒数第四行,判断错误是来自vnpy_rqdata,将vnpy_rqdata回退一个版本,将为2.9.48.2即可,若还有其他组件错误,都先回退一个版本即可

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

郭易燔 wrote:

veighna3.3.0版本中使用ZoneInfo替代pytz库,目前部分组件已经升级完毕,但是3.3.0版本的veighna版本没发布,所以有找不到ZoneInfo的错误,根据错误倒数第四行,判断错误是来自vnpy_rqdata,将vnpy_rqdata回退一个版本,将为2.9.48.2即可,若还有其他组件错误,都先回退一个版本即可

非常感谢,退后一个版本,解决问题。

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

我在docker里运行vnpy的no_ui

(base) root@b4fdcee144e1:~# /opt/vnpy_venv/bin/python /root/code/research/vnpy/vnpy-3.3.0/examples/no_ui/run.py 
启动CTA策略守护父进程
启动子进程
子进程启动成功
找不到数据服务驱动vnpy_,使用默认的RQData数据服务
2022-09-15 11:09:01,524  INFO: 主引擎创建成功
2022-09-15 11:09:01,524  INFO: 注册日志事件监听
2022-09-15 11:09:01,527  INFO: 连接CTP接口
2022-09-15 11:09:01,572  INFO: 交易服务器连接成功
2022-09-15 11:09:01,596  INFO: 行情服务器连接成功
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid

按照楼主的方法

(base) root@b4fdcee144e1:~# locale-gen zh_CN.GB18030
Generating locales (this might take a while)...
  zh_CN.UTF-8... done
Generation complete.

但是还是报错,请问这是神马原因呢?

Member
avatar
加入于:
帖子: 3593
声望: 234

安装完语言包重启之后还报一样的错吗?

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

沪公网安备 31011502017034号

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