vn.py量化社区
By Traders, For Traders.
Administrator
avatar
加入于:
帖子: 198
声望: 35

常在社区论坛和QQ群(262656087)里,看到有人提问能不能在Mac上跑量化交易的程序,或者用Mac运行vn.py时遇到了各种问题。

 

尽管vn.py官方团队由于某种原因(听说是囊中羞涩买不起Mac~~),主要支持的操作系统是Windows和Ubuntu,但其实受益于Python语言本身极为优越的跨平台特性,在Mac系统上用vn.py来跑量化完全是妥妥的。
 

需要提前指出的是,国内市场用到的绝大部分量化交易接口(如CTP、飞马、飞创、恒生等),其开发商只提供了Windows和Linux的API开发包。没有Mac版本(无法直接使用)的同时,也没有提供API源代码(无法自行编译),因此这类接口在Mac系统上无法使用(强行加载会报错找不到C++的DLL文件)。

 
但对于以下两种类型的接口,由于不存在对于C++链接库的依赖,所以在Mac上均可以直接运行:

 

纯Python
 

  • IB(盈透证券)
  • 老虎证券

富途证券
 
REST/WebSocket

  • 所有数字货币类接口
  • Alpaca美股

 

本文接下来的内容中,就以Coinbase数字货币交易所(现货)接口为例,来手把手讲解如何在Mac系列的机器上把vn.py运行起来。

 

 

安装Python环境

 

在Mac下推荐使用Miniconda来搭建Python环境,可以省去很多不必要的麻烦。
 
首先,打开Minconda官网,在MacOSX install分类下,点击红色方框【Miniconda3 MacOSX 64-bit.pkg】下载安装包(注意是Python 3.7版本,不要选错)。
 

description
 

pkg格式的安装包类似Windows下的安装程序,双击打开后,一路点击【Next】即可完成安装。

 

安装完毕后,打开Terminal输入命令python,可以看到以下内容即可说明Miniconda已经成功安装,并已自动设置为默认的Python环境:

 
description

 

 

安装vn.py及依赖库

 

Mac自带git神器,因此用不着像Windows那么麻烦还要下载Github Desktop客户端,直接在Terminal中即可下载vn.py:

 

  • 打开Terminal,使用cd切换到想要下载的路径,如下载到桌面;
  • 然后输入命令git clone https://github.com/vnpy/vnpy.git开始下载

 
description

 

下载完毕后,在Terminal中cd进入vnpy文件夹,注意此时文件夹中包含的是Master分支(即最新发行版本)的代码,运行bash install_osx.sh命令来执行安装vn.py的任务。

 
description

 

安装完毕后,尝试启动VN Trader:

 

  • 进入examples/vn_trader文件夹,找到run.py文件;
  • 将run.py中所有其他接口的内容删除,只保留(或者自己加载)CoinbaseGateway;
  • 在Terminal中输入python run.py命令启动VN Trader。
     

第一次启动会失败(至少在我这边的机器上),报错说缺少了pyqtgraph和zmq等库:

 

description

 

缺少的库直接使用pip工具安装即可:在Terminal中输入pip install zmq pyqtgraph命令,完成安装:

 
description

 

 

启动VN Trader

 

补完依赖库后,重新在Terminal中运行python run.py,这次我们终于可以看到VN Trader的主界面了:
 

description

 

VN Trader是vn.py内置的开箱即用量化交易平台,简单介绍一下其菜单栏的主要菜单选项:
 

  • 【系统】选项,用于连接各个底层交易接口,如Coinbase、IB等接口;
  • 【功能】选项,用于启动各个上层策略应用,如CTA策略、算法交易、行情记录、风控模块等;
  • 【帮助】选项,提供了常用的辅助支持功能,如查询合约获取合约信息、一键还原窗口布局等。

 

注意:在Mac下,VN Trader的菜单栏并没有【配置】选项。如果想要修改全局配置,需要修改保存配置信息的json源文件。VN Trader启动后,默认会在当前用户主目录下,创建一个文件夹以存放配置信息,本文中的用户目录是/Users/limingfang/

 

description
 

上图中显示了用来保存配置信息的.vntrader文件夹的内容,其中:

 

  • vt_setting.json中,保存了图形界面的字体、数据服务(RQData)的账户密码、数据库的连接等相关配置信息;
  • connect_bitmex.json等connect_xxx.json类文件,存放有每个底层接口具体的配置信息;
  • rpc_service_setting.json等其他的xxx_setting.json类文件,保存有每个上层策略应用的配置信息;
  • database则是默认的sqlite数据库文件。
     

如果需要修改某个文件,输入命令如open ./connect_bitmex.json,即可自动打开编辑器修改配置文件:

 
description
 

 

接口补充说明

 

目前2.x版本的vn.py,在Windows下所有交易接口都可以使用,而在Mac下只能使用其中一部分:

 
 

纯Python类接口

 

IB(盈透证券)、TIGER(老虎证券)、FUTU(富途证券)这三个接口,使用的是其官方提供的纯Python SDK,直接进行接口函数的对接开发。得益于Python本身的跨平台解析性语言特点,这类接口在OSX系统下也能直接使用。

 
 

REST/WebSocket协议类接口

 
目前几乎所有的数字货币交易所,都提供了基于REST协议(主动请求,如:下单、查询)和WebSocket协议(被动推送,如:行情、成交)的API接口,部分海外的股票期货经纪商也开始提供这块的支持,如美股0佣金券商Alpaca。

 

需要注意的是,数字货币交易所的服务器几乎清一色都位于境外,由于某些特殊原因,必须使用科学上网的方式爬梯子后才能进行连接,vn.py在这块目前只支持ShadowSocks(VPN、蓝灯等均无法使用)。

 

启动ShadowSocks客户端后,在VN Trader界面上连接数字货币交易所时:

 

  • 代理地址,通常填写本机地址,即127.0.0.1;
  • 代理端口,填写的是ShadowSocks客户端中配置的端口,通常默认为1080。

 

到这里就已经讲解完了苹果Mac上运行vn.py所有需要的注意内容,其他方面的操作,如:下载历史数据、基于模板开发策略、执行历史数据回测、运行实盘自动交易等,跟其他系统上的使用步骤没太大区别,需要的话请自行查看公众号里的其他相关文章即可。

 

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

 
了解更多知识,请关注vn.py社区公众号。
description

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

为什么我在mac系统上执行python run.py出现如下错误?
(vnpy_env) YHJdeMacBook-Air:vn_trader yinhongjun$ python run.py
Traceback (most recent call last):
File "run.py", line 47, in <module>
from vnpy.app.option_master import OptionMasterApp
File "/Users/yinhongjun/miniconda3/envs/vnpy_env/lib/python3.7/site-packages/vnpy/app/option_master/init.py", line 3, in <module>
from .engine import OptionEngine, APP_NAME
File "/Users/yinhongjun/miniconda3/envs/vnpy_env/lib/python3.7/site-packages/vnpy/app/option_master/engine.py", line 25, in <module>
from .pricing import (
ImportError: cannot import name 'black_76_cython' from 'vnpy.app.option_master.pricing' (/Users/yinhongjun/miniconda3/envs/vnpy_env/lib/python3.7/site-packages/vnpy/app/option_master/pricing/init.py)
我查看了这个目录,这个文件是存在的,不知道为啥执行不成功。我尝试pip uninstall vnpy,让系统直接用自己开发目录下的这个文件,也是执行不成功,不知道为何,请高手指点,谢谢

Administrator
avatar
加入于:
帖子: 4033
声望: 222

这个black_76_cython模块目前只能在windows上编译,2.0.9发布版本暂时移除了,请重新下载下2.0.9的Release版本安装

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