687e543681f68c08de3e2172ca16b240.png

作者:KeKe

​对于vn.py的初学者以及绝大部分用户来说,Windows操作系统可能是最好的选择,性能满足需求而且也几乎没有额外的学习成本。但不可否的是,Linux操作系统在系统资源占用、扩展服务开发、跨进程通讯延时等方面,有着明显的优势。

社区内也一直不乏用户希望尝试学习使用Linux,最常见的两种形式包括:

  • 虚拟机:VMWare、Hyper-V等,运行于本地电脑,傻瓜式安装适合体验学习
  • 云服务器:阿里云、腾讯云等,需要自行安装配置,运行于服务端更适合实际应用

本篇教程就主要针对如何在阿里云服务器上搭建一套完整的Linux量化交易系统环境来讲解。Linux版本上选择了vn.py官方支持的Ubuntu 18.04 LTS 64位版本,如果要使用Debian、CentOS等可以自行尝试,整体大同小异

主要用到的工具包括MobaXterm(远程连接客户端)、Xubuntu-destop(服务器图形界面)、vnc4server(远程桌面服务)等,尽管安装配置的过程有些繁琐,但只要跟着图文说明一步步去做,100%能成功。

在开始安装工作前,请先准备好1台阿里云的服务器(也可以选择AWS、腾讯云等):

  • 节点选择:华东2(国内期货、证券)或者香港(数字货币、外盘)
  • 机器配置:2核以上CPU,4G以上内存,共享计算型(不要选突发实例)
  • 操作系统:Ubuntu 18.04 LTS 64位
  • 网络带宽:按需付费,20M以上带宽,分配公网IP
  • 登录方式:用户名和密码(不要选密钥)

购买好后请记录下该服务器的公网IP,下面连接要用。

安装MobaXterm

MobaXterm是一款增强型远程连接工具,可以轻松地调用远端Linux服务器上的各项功能命令。接下来将会用到MobaXterm的SSH和VNC功能:

  • SSH,可以理解为命令行终端,类似黑框框的CMD
  • VNC,则可以理解为远程图形化桌面,类似常规Windows桌面

首先,需要从官网下载MobaXterm:

https://mobaxterm.mobatek.net/download-home-edition.html

下载完成后解压安装包,直接双击exe文件进行安装。

安装完成后,双击桌面图标启动MobaXterm。在主界面中单击导航栏左边第一个【Session】进入连接页面。

2a4f59c9acfe8b2234169b46a2c07cb4.png

或者也可以点击顶部菜单栏【Sessions】->【New Session】按钮。

3c8af12637bdffda6589ea3f8c8b5dae.png

在弹出的新页面Session Settings中,单击导航栏最左边的【SSH】按钮。然后在Basic SSH settings中输入云服务器的公网IP和账号。

a035ac375a7b819f674591f193195068.png

其中默认账号为root,输入root账号之前记得把左边小方框勾选上,端口号保留默认的22即可,然后点击最下方的【OK】按钮。

81d7b7e15faad2702a4b95cd0770b902.png

之后会自动弹出一个新的连接页面,第一次连接时右侧终端会提示输入云服务器的密码,注意在输入时,界面上并不会有任何反应(不会显示密码)。

71f1d485f9206933b6afe4e4e72f72a3.png

输入完按回车键后,若密码正确则会弹出一个小窗口提示是否保存密码,可以点击【Yes】按钮。

522dbece1c1d58b9271ea480a285b8e6.png

看到下图中显示的内容,就说明阿里云的Ubuntu服务器已经连接成功了。左边显示的是云服务器上的文件夹目录,右边的黑框是命令操作界面。

3be72bff1ed2de249d992cb85afe2ba7.png

到这里,我们就完成了使用MobaXterm远程连接云服务器的步骤。当然,这种连接是基于SSH,只能通过命令行终端的方式来调用服务器上的各项功能。

为了更方便的管理连接,需要进行一下重命名:点击最左侧的【Session】选项,找到刚刚创建的SSH连接,鼠标右键选定该连接,选择【Rename session】。

ad8ffb03e9b2a91e6965f52ad3698907.png

弹出Session settings界面,其中的Session name可以修改为任意名称,这里我们将其重命名为DEV_1,完成后点击左下方的【OK】保存。

4a9c94af7636dbcd5f4f0c377077bae6.png

此时在左侧的Sessions标签中,我们可以看到该连接的名称已经改为了DEV_1。

e2ef4c20a89c7ab6e1e76d345a6908a0.png

同理重复上面的操作,输入相同的云服务器的公网IP和账号,创建第二个SSH连接(命名为DEV_2),这样我们就能同时使用2个终端了,同理你也可以创建更多的终端连接。

6e425acd245035589c6078faaceb647e.png

更新软件仓库

在Windows下安装软件,通常只需要准备好安装包的exe文件,然后一路点击【下一步】即可完成。但Linux并非如此,Linux系统的发行版大多自带了软件包管理器,如Ubuntu和Debian的APT。

对于大部分常用的软件,用户都可以直接从官方提供的仓库中下载安装需要的软件,而不必自己去每个网站下载,这也是Linux与Windows在使用上的一大区别。

所以在Ubuntu系统中,本地保存了一个软件包安装源列表,列表里面都是一些网址信息,标识着某个源服务器上有哪些软件可以安装使用。所以为了能够正常安装最新版本的软件,首先需要更新软件包管理器里的这些列表。

c0696fca5deab43efed8e4c63bedd80c.png

只需要在Ubuntu终端中,运行输入命令sudo apt-get update,就会如上图所示,自动遍历访问源列表中的每个网址,并读取最新的软件信息,保存在本地系统中。

安装Xubuntu-destop

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

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

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

sudo apt-get install xubuntu-desktop

575e8752e274a4635fc0ab49d9aa08e1.png

在国内当前的网络环境下,Xubuntu-desktop的下载和安装可能耗时在20-60分钟的样子,期间可以在终端中看到类似上图所示的安装信息。

搭建VNC服务

VNC是一款基于RFB协议的屏幕画面分享及远程操作软件,最大的特色在于跨平台性:我们可以用Windows电脑来控制Linux系统,反之亦然。

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

sudo apt-get install vnc4server

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

7d11dccc9f282ebf80d0b03b7043b4b8.png

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

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

nano ~/.vnc/xstartup

可以看到如下内容:

6411fa597a72725c0a3b3d494ff98c42.png

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

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

4a3d76b38e2a5840ef982e01e20400e0.png

修改完毕后,按住“Ctrl”和“Y”键来退出nano编辑器,注意会询问是否要保存当前修改,请按“Y”进行保存。

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

vncserver -kill :1
vncserver -geometry 1920x1080 :9 

e94912ba2b5c8a7a55e6676ceaefa459.png

连接VNC桌面

回到MobaXterm主界面,单击主页最上边的【Sessions】->【new Session】弹出【Sessions settings】界面,这一次选择【VNC】连接。

其中【IP address】为阿里云公网IP,【Port】为VNC连接端口,在上一段中我们选择了在9号端口启动,故从需要把Port端口由默认的5900调整为5909。

cf58a82368fd963cc7577d2c2ed69942.png

同时在下面的【Bookmark settings】界面对该VNC连接进行重命名为“VNC”,点击左下方的【OK】按钮,开始连接VNC远程桌面,成功后即可看到如下图所示的Xfce图形界面:

7ec8775f085e099457e2ef48af809f19.png

安装IBus中文输入法

作为中国人总归免不了要输入中文,这里我们选择安装IBus中文拼音输入法,在终端中运行命令:

sudo apt install ibus-pinyin

安装完成后,还需要先配置下Ubuntu系统的中文语言包:

  1. 在桌面顶部的菜单栏,点击左上方【Applications】->【Settings】->【Language Support】按钮;
  2. 第一次会出现提示语言未全部安装,然后点击确认自动安装,成功后会弹出【Language Support】界面;
  3. 完成后点击下方的【Install/Remove Languages】按钮,会弹出新的【Installed Languages】界面,勾选【Chinese(Simplified)】,即简体中文,然后点击下方的【Apply】按钮;
  4. 最后在【Keyboard input method system】选项选择【IBus】。

9f4c283836bfca80c3909441b8088335.png

设置完中文语言包后,进入IBus输入法设置:

  • 在菜单栏左上方点击【Applications】->【Settings】->【IBus Preferences】选项;
  • 第一次会提示IBus-Daemon尚未启动,点击【Yes】按钮进行安装,成功后菜单栏右上角出现一个语言图标,并且弹出【IBus Preferences】界面;

22f6cd334fa0e4a29bbe93c021f9bede.png
  • 进入【Input Method】界面,点击【Add】来添加中文输入法:选择【Chinese】->【Pinyin】;

af8dafcbe551ce9671f0a4d3597ad7f2.png
  • 鼠标右键点击菜单栏上的语言图标【Restart】按钮来重启;

deb15e8a996cab587c73a65af59c46c4.png
  • 然后再次左键点击,点击【Chines-Pinyin】就可以输入了。此时语言图标也变成“拼”字;

caa605aa50a9d033cc18adb169b4dedb.png
  • 打开一个编辑器或浏览器,可以看到我们此时输入的已经是中文拼音。

37b971ca4dee9f90d3856c73156e7291.png

安装Visual Studio Code

既然要写程序那就还需要一套IDE工具,同样这里我们使用vn.py官方推荐的Visual Studio Code(VSCode),作为微软出品的轻量级代码编辑器,在Linux下的安装和使用也同样非常方便。

打开Visual Studio Code的官网:https://code.visualstudio.com/

efc68c1f146d3b2646618476c6e84bc0.png

在官网首页点击下载.deb版本:

37a0db4b70939ee7a65dbfb3380216af.png

Ubuntu下的deb格式安装包,需要用使用dpkg命令来安装。进入下载文件所在的目录/root/Downloads,鼠标在空白处右键点击【Open Terminal Here】进入终端:

ccd721ef1c4551ee4db37c4723308b5e.png

输入下面命令安装:

sudo dpkg -i code_1.37.0-1565227985_amd64.deb

6de10157f1ada374a77c2327bc187afb.png

安装完成后会发现VSCode不能正常启动,因为Xfce和VSCode的默认设置存在兼容性问题,需要手动配置,在终端中运行下面命令:

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1

再次尝试启动VSCode,已经可以正常打开运行,注意上述命令输入运行后界面没有任何输出。

安装Python3.7

Ubuntu 18.04系统中内置了Python 2.7和3.6,并且输入python命令时默认启动的是Python 2.7。

37f2fea9f2585269a85812c24884ea58.png

但v2.0版本的vn.py则是基于Python 3.7,如果安装新的Python 3.7版本,则需要把新安装的Python 3.7设置为系统默认的Python环境,同时将pip命令也指向Python 3.7的版本。

手动进行上述命令的重新定向容易导致各种问题,所以这里我们选择使用Minconda(Python 3.7 64位)。作为最有名的Python科学计算发行版本Anaconda的轻量小弟,安装完成后会自动设置其内部的Python 3.7为系统默认环境。

打开Minconda的官网:https://docs.conda.io/en/latest/miniconda.html,选择【Linux】系统的Python 3.7【64-bit】版本下载:

d143d33af7a4257c6add495c9e3cf535.png

下载完成后,进入文件所在目录/root/Downloads可以看到.sh格式的Miniconda安装包,鼠标在空白处右键,点击【Open Teminal Here】进入终端,然后输入命令进行安装:

bash Miniconda3-latest-Linux-x86_64.sh

f9a26bca8d3d6578f436608cc87543a8.png

安装完毕后,在终端运行Python,可以看到当前的版本已经变成Python 3.7:

acd97f78ba83eb6dd101560221bf2c9d.png

折腾至此,终于完成我们的目标:支持远程图形桌面的阿里云Ubuntu量化交易服务器~~未来Linux使用熟练后,也同样可以选择关闭图形界面,以纯命令行的形式来运行vn.py的自动交易功能。

《vn.py全实战进阶》课程全新上线,一共50节内容覆盖从策略设计开发、参数回测优化,到最终实盘自动交易的完整CTA量化业务流程,目前已经更新到第八集,详细内容请戳

课程上线:《vn.py全实战进阶》!​mp.weixin.qq.com
38ac6fc13e90a5e29ced89dfeff99019.png

更多vn.py精华内容,请关注公众号:

b664a178464c5a8384da33fb4f789f0f.png
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐