vn.py官网
开源量化社区
Super Moderator
avatar
加入于:
帖子: 37
声望: 12

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2020-03-31
 

截止v2.1.1版本,vn.py项目的开源代码中已经共计支持34套不同类型的量化交易接口,基本覆盖了国内外主流金融市场。
 

每套接口API都通过Gateway层做了标准化的封装处理,尽可能帮助用户把精力集中在量化策略的开发优化上,而不是过多关注国内外不同金融市场的细节区别。
 

举例来说,一套在国内期货市场业绩优秀的CTA趋势策略,几乎可以零成本的迁移到数字货币市场,快速进入实盘交易业务。
 

本文中希望通过总结对比的形式,帮助大家对于每套交易接口的功能特性建立一个直观的了解。

 

交易品种

 

description

 
【股票】同时还包括了所有沪深交易所上市的证券品种,如ETF基金、LOF基金、交易所债券、国债逆回购等等。
 

【股票期权】目前只有沪深交易所推出的50ETF和300ETF期权,传闻今年内可能上市个股期权。
 

【资管】主要指基金公司(公募和私募)和投资顾问(海外)需要用到的子账户系统。
 

【永续互换】可以视作一种“没有到期日的期货合约”,通过对多空方的每日利息结算,来保证对标的物价格的收敛。
 

通过交易接口的缩写可以推断出对应的接口模块名称和接口类名称,以CTP接口为例:

  • 缩写为ctp
  • 接口模块为vnpy.gateway.ctp
  • 接口类名称为CtpGateway
  • 代码加载语句为:from vnpy.gateway.ctp import CtpGateway
     

CTP相关:

  • CTP接口除了实盘版本外,还有专门用于期货穿透式认证测试的CtptestGateway,其接口版本号为6.3.16(实盘版本号为6.3.15)。
  • CTP Mini接口除了作为次席系统速度更快外,部分期货公司还提供免费的5档Tick行情(如浙商期货)。
  • CTP证券接口目前只有期货公司提供,除了ETF期权外,还同时支持标的物ETF的交易。
     

恒生的柜台产品分类比较复杂,这里UFT接口使用的是恒生极速API,无法对接基于纯T2SDK的UFT柜台。
 

中泰XTP接口实现了国内证券市场全业务支持,包括股票现货、融资融券和股票期权业务。
 

飞鼠是目前唯一可以对接上海黄金交易所市场(央行直属机构),支持黄金T+D(本质是一种互换)交易的接口。
 

鑫管家融航都是期货资管系统,主要由期货公司或者FOF基金提供给投资顾问使用。
 

不算华尔街顶级投行,盈透证券(Interactive Brokers)大概是目前全球接入市场最多的经纪商之一,八卦一句其高频自营公司Timber Hill常年靠着经纪业务的补贴活着(小道消息)。
 

数字货币市场的发展速度极为迅猛,整体上币圈这些交易所用过去3年走完了传统金融可能30年的发展历程,其交易产品上已经相当丰富(现货、杠杆、期货、永续、期权都有),但技术积累可能还有所不足。
 

RPC服务可以视作vn.py内部的特殊接口,用于实现一个VN Trader进程(客户端)访问另一个VN Trader进程(服务端)进行交易的功能,因此可以支持所有市场(只要服务端加载对应接口就行)。
 

操作系统

 

description

 
Linux系统的发行版众多,目前vn.py官方仅支持Ubuntu 18.04以上,其他发行版(如CentOS)理论上也可以使用,但需要自行编译二进制库。
 

上图中的信息,仅代表vn.py内某接口的操作系统支持,而不是该接口API本身的操作系统支持情况。举例来说,中泰XTP提供了Windows/Ubuntu/Mac三个系统的C++ API,但因为工作量的关系vn.py目前只支持了Windows版本。
 

除了CTP和宽睿两个支持Ubuntu系统外,其他C++接口目前均只支持Windows。
 

纯Python接口的跨平台支持几乎完美,包括所有币圈接口、RPC服务、IB、富途证券、老虎证券,且没有任何额外的开发工作量(Python大法好~)。
 
 

《vn.py全实战进阶 - 期权零基础入门》课程内容已经全部更新完毕!内容专门面向从未接触过期权交易的新手,共计32节课程带你一步步掌握期权的基础知识、了解合约特征和品种细节、学习方向交易和套利组合等各种常用期权交易策略,详细内容请戳新课上线:《期权零基础入门》

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

请问恒生UFT只有期货不包含股票的原因是什么呢? 股票与期货的API不一样吗? 谢谢

Administrator
avatar
加入于:
帖子: 5114
声望: 296

目前提供API接入的恒生柜台叫做PBOX和NST,没有UFT了

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

用Python的交易员 wrote:

目前提供API接入的恒生柜台叫做PBOX和NST,没有UFT了
你好 飞鼠还支持吗?

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

金交所的不支持了吗

Administrator
avatar
加入于:
帖子: 5114
声望: 296

金交所的SGIT和KSGOLD都是在Windows上都只提供32位版本,所以64位的VNStudio没法运行。

对应的我们提供了Linux版本

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

群主,飞鼠不能运行,可以提供编译教程吗,谢谢

Administrator
avatar
加入于:
帖子: 5114
声望: 296

飞鼠需要用32位的Windows Python才能运行,请自己装下吧

Member
加入于:
帖子: 127
声望: 0

from vnpy.gateway.ctptest import CtptestGateway
from vnpy.gateway.mini import MiniGateway
from vnpy.gateway.sopt import SoptGateway
from vnpy.gateway.minitest import MinitestGateway
from vnpy.gateway.femas import FemasGateway
from vnpy.gateway.oes import OesGateway
from vnpy.gateway.xtp import XtpGateway
from vnpy.gateway.tap import TapGateway
from vnpy.gateway.tora import ToraGateway
from vnpy.gateway.da import DaGateway
from vnpy.gateway.uft import UftGateway
from vnpy.gateway.binancef import BinancefGateway
from vnpy.gateway.mt4 import Mt4Gateway

上面这些接口都被我注释了才能启动成功vnpy,按照vnpy官方文档和论坛中centos安装vnpy的帖子好vnpy2.1.7后,发现这些接口居然在centos系统上都不能用。听vnpy官方技术支持人员说linux系统只目前支持CTP和宽睿,请问下有人解决了其中的接口不能用的问题吗?特别是ctptest接口,期货做穿透式测试需要用到ctptest。

Member
avatar
加入于:
帖子: 3171
声望: 185

1楼已经有详细介绍了,是C++接口目前linux只支持CTP和宽睿。ctptest还是建议用windows系统的实体机进行测试(使用虚拟机和云服务器,对于CPU序列号、硬盘序列号等信息,有可能获取不全或者部分字段不符合规定),通过测试后再使用linux系统登录ctp接口。穿透式测试可参考https://www.vnpy.com/forum/topic/603-kan-wan-zhe-pian-che-di-gao-ding-qi-huo-chuan-tou-shi-ctp-apijie-ru

Member
加入于:
帖子: 127
声望: 0

我知道C++接口目前linux只支持CTP和宽睿!所以才问有没有人改动代码能让它支持呀!把不支持变成支持嘛!我问的是这个问题,而不是你所回答的问题的那个意思。

Administrator
avatar
加入于:
帖子: 5114
声望: 296

目前没有计划,代码都有了自己编译下即可,用Linux多少都有编程能力,我们没必要像Windows一样提供傻瓜安装包了

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

这样看来mac下 不支持a股 这块官方打算支持吗 谢谢

Member
avatar
加入于:
帖子: 3171
声望: 185

这个官方就没提供,不可能支持的

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

沪公网安备 31011502017034号