vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 186
声望: 22

尽管使用vn.py的用户使用windows或者linux服务器居多,但是社区内也有不少用户希望能在mac下运行vn.py进行数字货币的交易,本篇教程就针对如何在Mac系列的机器上成功运行vn.py连接coinbase数字货币交易所进行讲解。本文主要分以下几个部分:

  • python环境的安装
  • vn.py及依赖项的安装
  • 运行vn.py
  • 使用vn.py

 
python环境的安装
在mac下使用miniconda可以省去很多不必要的麻烦。
打开Minconda官网:https://docs.conda.io/en/latest/miniconda.html, 选择MacOSX Installer下的Python3.7,选择64位的pkg安装包进行下载并解压:
description
安装完毕后,在terminal输入python,会发现terminal自动将miniconda附带的python作为系统默认python了。
description
 
安装vn.py
因为mac自带git神器,因此直接在terminal里下载vnpy即可:打开terminal,使用cd切换到想要下载的路径,然后输入以下命令:
description
上图我将vnpy整个文件夹clone至Desktop。当clone完毕后,在cd进入vnpy文件夹,输入如下命令:
description
(注,cd的是一个命令,例如我要切换到/Users/limingfang/Desktop/,则只需要在terminal输入

cd /Users/limingfang/Desktop

安装的时间比较久,需要耐心等待。
在安装完成后,vn.py以及依赖项就被安装至Miniconda的python库中了。
注意:如果启动VN Trader时报错说缺少了pyqtgraph和zmq等库,即出现如图一的报错,直接用pip工具安装即可,在terminal中运行图二中的命令即可(笔者在解压完vnpy包后,发现还需要安装pyqtgraph和zmq)。
description
description

 

启动vn.py
在上述安装全部完成后,即可开始运行vn.py。
在terminal中将路径切换至clone的vnpy路径,比如vn.py被我cloned在/Users/limingfang/Documents/Github/cloned,那么输入以下命令即可切换到vn.py中的vn_trader目录并启动vn.py图形化界面:
description
其中红框内的路径每个用户都不一样。紧接着会跳出一个比较精致的VN Trader图形化界面。
description
 

使用vn.py
该部分主要说两点:简要说明图形化界面的使用,vn.py在mac上可使用的接口。
在图形化界面上方,“系统”栏提供了连接接口的选项,“功能”栏提供了vn.py开放给用户的一些App例如CTA回测等,“帮助”栏提供了查询合约的功能,用于提供交易所合约代码与vn.py内部合约代码映射的信息。注意,在mac下没有“配置”栏,如果想要修改全局配置,可以直接修改源文件。VN Trader界面启动后默认会在当前用户主目录下创建一些隐藏文件夹以存放一些配置信息,在mac下用户目录是在 “/Users/limingfang/”(limingfang是我的mac用户名)。
description
上图是最初.vntrader文件夹内的内容,其中connect_bitmex.json等connect_xxx.json类文件存放接口配置信息,database是默认的sqlite数据库的文件,vt_setting.json用于配置图形化界面字体,rqdata,数据库等,rpc_service_setting.json一般不需要修改。
如果需要修改某个文件,按下图操作即可打开相应文件。
description
 
目前2.x版本的vn.py,在windows下所有交易接口都可以使用,而在OSX系统下只能使用一部分:
纯Python类接口:IB、TIGER、FUTU
IB(盈透证券)、TIGER(老虎证券)、FUTU(证券)这三个接口,使用的是其官方提供的纯Python SDK,直接进行接口函数的对接开发。得益于Python本身的跨平台解析性语言特点,这类接口在OSX系统下也能直接使用。
REST/WebSocket协议类接口:所有数字货币、Alpaca
当今几乎所有的数字货币交易所,都提供了基于REST协议(下单、查询)和WebSocket协议(行情、推送)的API,部分外盘的股票期货经纪商也开始提供这块的支持(如美股0佣金券商Alpaca)。

此外,对于在mac电脑上使用vn.py的用户,交易一些数字货币的时候,可能会碰到需要交易某些标的(例如某些数字货币合约)而网络不通的问题,因此接下来介绍如何利用shadowsocks在mac上进行翻墙从而交易国外的一些合约。
最近比较敏感,本来笔者有详细的介绍如何安装及使用,现在只简单说说如何在vnpy连接接口的时候使用shadowsocks。

使用Shadowsocks
下载配置Shadowsocks后,在vn.py中连接一些大陆外的接口(例如Coinbase)时,需要提供:
- proxy_host
- proxy_port  
一般如下图所示进行配置即可:
description

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

多谢分享!~~~~

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

请问我一下,我按上面的步骤安装,到了python run.py的时候,报如下的错,找了好多地方也解决不了,请问我该如何处理?

description

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

mac下应该不支持win32com的库,这个库是windows下支持的。需要将run.py中的da接口调用屏蔽掉。

Member
avatar
加入于:
帖子: 186
声望: 22

木头哥 wrote:

mac下应该不支持win32com的库,这个库是windows下支持的。需要将run.py中的da接口调用屏蔽掉。
对对对,我忘记最后加了,run.py默认加载da接口,应该注释掉

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

想问下运行 run.py 的时候报错no model named vnpy怎么破。。

Member
avatar
加入于:
帖子: 186
声望: 22

thhhhh wrote:

想问下运行 run.py 的时候报错no model named vnpy怎么破。。
vnpy没有安装成功,请按照步骤来

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

我在用老mac(2010)现在安装不知道是否可以使用(顺便说一句 Mac的使用寿命太长的,一般文字输入 和 上个网使用现在依然没有问题),和盈透的对接 高手给予指导

Member
avatar
加入于:
帖子: 186
声望: 22

你是指配置是否跟得上?没啥问题吧。
盈透对接?是指账号如何那些对应?
高手不敢当,新手

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

description
请指教 接下来 应该如何操作?

Member
avatar
加入于:
帖子: 186
声望: 22

仔细看公众号的教程

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

方里明 wrote:

仔细看公众号的教程

是不是 我的mac版本太老了?
description

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

description
可不可以 方便指点一下 谢谢

Member
avatar
加入于:
帖子: 186
声望: 22

我感觉,应该是pyqt5和你的系统版本不太搭配,你可以升级一下么,至少得10.12

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

方里明 wrote:

我感觉,应该是pyqt5和你的系统版本不太搭配,你可以升级一下么,至少得10.12

收到 谢谢

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

mac 只有BIT的三个接口可用,TCP不能用~~就是想用A股接口的。想着用docker吧,下载了image又不太懂怎么run contain 让他可用自由接收读取数据。可否把docker的开始command share一下

Member
avatar
加入于:
帖子: 186
声望: 22

钟慧 wrote:

mac 只有BIT的三个接口可用,TCP不能用~~就是想用A股接口的。想着用docker吧,下载了image又不太懂怎么run contain 让他可用自由接收读取数据。可否把docker的开始command share一下
A股程序化交易接口一般得特别严格的认证吧?你是认证通过了吗

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

mac下启动vntrade,里边的下拉框等等框,好像显示不正常?比win下的短、且不规则?
框有点短
另外,下拉框里边的显示也不太对?这个要怎么处理下。。。
框内显示

Administrator
avatar
加入于:
帖子: 4117
声望: 229

这个主要是pyqt在mac上的渲染问题了,暂时没什么办法处理

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

hi 我发现在连接okex时无法展示行情, 您是否有些建议?
具体情况是这样的
我已经成功连接上了okex的接口,能够查询到合约信息,但是在左上角的的名称中输入代码并回车后,没有按照预期开始订阅行情, 没有任何反应,并且下方日志栏也没有错误日志
我的环境信息是mac os 10.14.5 , 使用的vnpy 是2.0+, 具体 git commit 是 675dce648a81f23bb791b54a0918e9a42f5bbb07

description

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