Python程序化交易开源开发框架 - VNPY介绍

网页版演示文稿Slides见http://presentations.johannhuang.com/static/2018/05/vnpy-introduction/.


VNPY简介

VNPY是一个 Python 程序化交易 开源开发框架

VNPY主要包含以下几个部分功能


VNPY简介.续

VNPY使用示例、文档及其他


VNPY的架构

参考架构


VNPY的架构.续

VNPY jhTrader Framework


VNPY的架构.再续

quantOS架构


VNPY的安装

环境要求

因为作者基于Windows 7采用Visio Studio 2013对Windows版本C++及dll文件涉及的接口进行的封装,所以生成的Python封装接口也需要Windows环境。 另外,作者要求使用32位的Python 2.7(个人观点,如果仅使用VNPY提供的封装接口,则理论上应该可以采用其他版本的Python)。

安装方法

双击examples/VnTrader目录下的VnTrader.bat启动VnTrader检查是否安装成功。


VNPY的使用

推荐方法

个人推荐,基于VNPY提供的对C++行情及交易接口封装的Python接口库(vnpy.api),自己重新对VNPY源码其他部分进行解耦及重构后使用。

换言之,使用 vnpy.api 提供的 行情接口 获取当前行情数据,然后根据 自己定义的流程及交易策略 进行决策, 最后通过 vnpy.api 提供的 交易接口 进行交易。(架构及通信方面采用或参照 vnpy.eventvnpy.rpc

相关资源

  1. 官方文档,GitHub VNPY Repository Wiki + 官网 + 知乎专栏
  2. examples目录里的示例代码 + vnpy/trader/目录里的源代码
  3. 其他源码及注释

VNPY封装的接口

根据官方文档,VNPY对以下行情及交易接口进行了封装

具体版本代码中可以使用的接口见源码的vnpy/api文件夹。


VNPY封装的接口.续

接口列表


VNPY事件驱动编程引擎

事件队列(put),轮询获取,回调函数列表(register)

相关源码代码位于 vnpy/event 文件夹

无界面的使用EventEngine2类(如examples/CtaTrading,使用的单独线程实现的定时器功能); 有界面的使用EventEngine类(如examples/VnTrader,使用了PyQt中的QTimer实现的定时器功能)。


VNPY行情记录应用

相关源码位于 examples/DataRecordingvnpy/trader/app/dataRecorder

对象初始化时,实现事件绑定,开始监听及记录行情数据(依靠主引擎推送相关事件及数据); 使用 examples/VnTrader 时,可以点击主界面菜单栏 功能->行情记录 来查看目前正在记录的行情数据内容。


VNPY套利交易应用

相关源码位于 examples/SpreadTrading + vnpy/trader/app/SpreadTrading


VNPY事件驱动过程


VNPY SniperAlgo策略细节

VNPY SniperAlgo

下单步骤

下单分为多个步骤

合约代码 - Contract - QuoteDecision - OrderRequest - Splited OrderRequests (委托转换及分离下单)


VNPY SniperAlgo策略细节.续

策略参数


代码重构

quantTrader
│  spreadTrader.bat
│  spreadTrader.py
├─configs
│      CTP_connect.json
│      ST_setting.json
│      VT_setting.json
├─trader
│  │  constants.py
│  │  objects.py
│  │  settings.py
│  │  utils.py
│  ├─apps
│  │  └─spreadTrader
│  │      │  stAlgo.py
│  │      │  stBase.py
│  │      │  stEngine.py
│  │      │  uiStWidget.py
│  │      └─ __init__.py
│  ├─engines
│  │      baseEngine.py
│  │      dataEngine.py
│  │      eventEngine.py
│  │      logEngine.py
│  ├─gateways
│  │  │  __init__.py
│  │  └─ctpGateway
│  │      │  ctpGateway.py
│  │      └─language
│  │          │  __init__.py
│  │          ├─chinese
│  │          │      text.py
│  │          └─english
│  │                  text.py
│  └─language
└─_temp

量化交易系统整合

Python优势

量化架构

数据源及影响因子


参考资源

事件驱动引擎

实时行情记录

CTA策略开发


参考资源.续

历史行情数据

集成交易平台

RPC通讯协议

相关基础


参考资源.再续

VNPY层次结构

GUI开发

C++接口封装


* cached version, generated at 2018-12-30 17:51:58 UTC.

Subscribe by RSS