vn.py的创始人‘用python的交易员’在周六举办了广州线下活动,在本次活动中主要分享了vn.py框架部署方案和数字货币量化交易两部分的内容。
vn.py部署方案
运行环境
- python: Anaconda 4.0 (Python 2.7 32位)
- VC : Vcredist x86 2013
- 数据库:MongoDB (任意最新版)
- 开发工具:WingIDE(可选,但严重不推荐PyCharm)
基础安装
1. 准备操作系统:
- Windows 7或以上
- Ubuntu 16.04或以上
2. 配置好运行环境:
- Windows需要鼠标操作图形界面,较为繁琐
- Ubuntu可以全程命令行执行,但需要会用Linux
3. 安装vn.py:
- 在Github上下载vn.py最新发行版:
- 解压后运行install.bat/sh即可安装; (vn.py将会安装到Anaconda下的site-packagesvnpy-1.8.0-py2.7.egg目录中;其中1.8.0为版本号,注意该安装目录一定有.egg后缀)
其他环境部署方式
我们提供了虚拟机、云服务器、Docker、一键安装这四种环境部署方式,接下来详细的说明一下各种方法的优缺点以及适合的人群。
虚拟机镜像
下载镜像 → 启动虚拟机 → 本地运行
VirtualBox虚拟机
- 基于ubuntu系统,安装了全部运行环境和vn.py框架本身
- 优点:下载后用VB打开即可直接使用,可视为完整独立的电脑
- 缺点:更新麻烦,镜像文件数G,目前已停止维护
- 适合人群:几乎不懂安装环境的用户
云服务器镜像
获取镜像 → 购买云服务器 → 远程登录
阿里云镜像
- 量衍投资开发和销售(收费),阿里云华东1区的Ubuntu 16.04系统镜像
- 除了运行环境外,还安装了IB、TWS、ShadowSocks、ATOM等实用工具,提供自动更新脚本
- 适合人群:在云端运行行情记录和实盘交易,可以根据自行定制Windows版的云服务器镜像,非常方便。
Docker容器
安装docker → 下载镜像文件 → 构建启动
VNC镜像
- 位于vnpy/docker/vnc下,提供noVNC图形环境,在浏览器中使用远程桌面来操控容器
- 优点:下载快速(配置文件仅几百k);安装简单(三行命令即可);内存占用小;
- 缺点:Container容器中做的所有修改,都无法保存到Image镜像中
web镜像
- 位于vnpy/docker/web下,运行后启动WebTrader,连接宿主机器的MongoDB,用户可通过外部浏览器直接访问WebTrader网页
- 不建议直接使用,仅作为Docker技术的一种应用方案提供
- 适合人群:适合机构的应用方案; 策略团队完成策略开发后,将自己的全套运行环境、策略、配置打包成Docker镜像; 交易团队将该Docker镜像部署到实盘服务器,即可直接启动策略交易,无需再烦恼策略团队的开发环境配置问题。
一键安装
下载脚本 → 执行安装 → 直接使用
init.bat
- 彻底解决新用户在安装过程中的各种问题:下错版本、不会配置等等;
- 由于GFW的问题,可能会出现下载速度过慢甚至失败,导致安装过程中断的问题,建议访问外国网站;
- 可以使用阿里云中国香港服务器,给你“飞”一般的体验~
对比如下:
数字货币量化交易
风险提示
- 区块链和数字货币作为最近几年新兴的事物,和人类历史上所有新技术(股票、电力、汽车等等)早期刚出现时一样,都处于群体性的疯狂和泡沫中;
- 一级市场的数字货币的ICO,相比较于股票市场的IPO,风险度要高得多:无监管、无法律、项目透明度低等;
- 二级市场的数字货币交易所,相比较于传统金融交易所,同样存在诸多问题:监管弱、撮合清算托管由同一实体负责、技术成熟度低等;
- 小心!小心!小心!!!
公链(Coin)
- 定义:全世界任何人都可读取、发送交易且能获得有效确认的共识区块链
- 发币:每个人从中可获得的经济奖励,与对共识过程作出的贡献成正比(POW计算能力随机、POS拥有财产随机)
- 本质:公链可以理解为一种类似TCP/IP协议的底层技术,所有应用必须运行于其上,但是无法直接使用
- 举例:BTC、ETH、XRP
代币(Token)
- 定义:基于公链所提供的智能合约发行的数字资产,服务于Decentralized Applications(DApp)
- 发币:根据发币方自己制定的规则分配,有些会伴随ICO来募集公链COIN(目前主要是ETH)
- 本质:代币可以理解为运行于底层公链之上的具体应用,类似于互联网早期的网站服务器、邮件服务器、MUD游戏服务器等等
- 举例:EOS(公链开发中)、HT、0x
适用的策略类型
套利策略
- 跨交易所套利,俗称“搬砖”
- 跨币种套利,参考外汇“三角套利”
- 期现套利
CTA策略
- 趋势跟踪,追涨杀跌
- 区间震荡,高抛低吸(不适合数字货币,震荡大,肥尾分布)
轮动策略(风险最大)
- 等市值轮动:本质是赌均值回归,组合中的币种选择至关重要
量化交易平台对比
技术相关难点
- 系统服务的稳定性: 如:火币的API中间可能会出现系统宕机...
- API数据流奇葩设计: 如:成交和委托没有事件推送,要用户通过查询结果比对才能知道;查询结果不准确等
- 同步请求效率低下: 提供的并发效率很低,会限制单位时间内的请求流量。如火币允许10s100次请求,实际使用会更低;报错和真实的错误不同
- 行情API数据延迟: 可能会收到20min前的数据,且盘口数据不带事件戳,要仔细识别;
- 缺乏可靠的数据: 第三方数据服务商也比较少,质量也不稳定;
项目相关计划
- 分离数字货币相关内容到独立的群741339589
- 修复前期对接过的交易所API,并接入更多交易所
- 针对相关技术难点研究解决方案
- 寻找数字货币交易所领域的战略合作伙伴
基于python的开源交易平台开发框架。截止目前,vn.py项目在Github上的Star已经达到5563,量化交易类开源项目第1,量化类项目第3(1、2依旧分别是Zipline和TuShare)。
项目官网:http://www.vnpy.org
论坛地址:www.vnpie.com
知乎专栏:https://zhuanlan.zhihu.com/vn-py
Developed by Traders,
for Traders