By Traders, For Traders.

简介

vn.py是基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统。2015年初项目启动时只是单纯的交易API接口的Python封装。随着业内关注度的上升和社区不断的贡献,目前已经成长为一套全功能的交易程序开发框架,用户群体也日渐多样化,包括私募基金、券商自营和资管、期货资管和子公司、高校研究机构和专业个人投资者等。

项目结构

丰富的Python交易API接口(vnpy.api),基本覆盖了国内外所有常规交易品种(股票、期货、期权、外汇、外盘、比特币),具体包括:

CTP(ctp)

飞马(femas)

中泰证券XTP(xtp)

中信证券期权(cshshlp)

金仕达黄金(ksgold)

金仕达期权(ksotp)

飞鼠(sgit)

飞创(xspeed)

QDP(qdp)

上海直达期货(shzd)

Interactive Brokers(ib)

OANDA(oanda)

福汇(fxcm)

OKCOIN(okcoin)

火币(huobi)

LBank(lbank)

简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心

支持服务器端数据推送的RPC框架(vnpy.rpc),用于实现多进程分布式架构的交易系统

开箱即用的实盘交易平台框架(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易程序,应用举例:

同时登录多个交易接口,在一套界面上监控多种市场的行情和多种资产账户的资金、持仓、委托、成交情况

支持跨市场套利(CTP期货和XTP证券)、境内外套利(CTP期货和IB外盘)、多市场数据整合实时预测走势(CTP的股指期货数据、IB的外盘A50数据、Wind的行业指数数据)等策略应用

CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略)

实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化

数据相关的API接口(vnpy.data),用于构建和更新历史行情数据库,目前包括:

上海中期历史行情服务(shcifco)

通联数据API下载服务(datayes)

天勤行情数据接口(tq)

关于vn.py项目的应用演示(examples),对于新手而言可以从这里开始学习vn.py项目的使用方式

vn.py项目的Docker镜像(docker),目前尚未完成

官网和知乎专栏,内容包括vn.py项目的开发教程和Python在量化交易领域的应用研究等内容

官方交流QQ群262656087,管理较严格(定期清除长期潜水的成员)

环境准备

Windows

推荐使用Windows环境一键安装脚本init.bat,打开cmd后运行即可自动完成以下环境和vn.py框架的下载安装工作。若由于网络不稳定的原因,导致某些步骤安装耗时过长而失败,可以配置好VPN后,手动在cmd中执行失败的命令继续完成安装。

Ubuntu

请参考项目wiki中的教程。

项目安装

在这里下载最新版本,解压后:

Windows:双击运行install.bat自动安装

Ubuntu:在Terminal中运行bash install.sh自动安装

关于TA-Lib安装

Ubuntu上安装到talib时若遭遇'Permission denied'错误,请在install.sh运行完成后,在Terminal中输入以下命令安装:

sudo /home/vnpy/anaconda2/bin/conda install -c quantopian ta-lib=0.4.9

其中"/home/vnpy/anaconda2/"是你的Anaconda安装路径。

Quick Start

在SimNow注册CTP仿真账号,记下你的账号、密码、经纪商编号,然后下载快期查询你的交易和行情服务器地址

找到vn.py应用示例目录examples,打开examples\VnTrader\CTP_connect.json,修改账号、密码、服务器等为上一步注册完成后你的信息(注意使用专门的编程编辑器,如Sublime Text等,防止json编码出错)

找到VnTrader的启动入口run.py,并双击运行(若无法双击,则在当前目录按住Shift点鼠标右键,打开cmd输入python run.py运行),run.py内容如下:

# encoding: UTF-8

# 重载sys模块,设置默认字符串编码方式为utf8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

# 判断操作系统

import platform

system = platform.system()

# vn.trader模块

from vnpy.event import EventEngine

from vnpy.trader.vtEngine import MainEngine

from vnpy.trader.uiQt import createQApp

from vnpy.trader.uiMainWindow import MainWindow

# 加载底层接口

from vnpy.trader.gateway import (ctpGateway, oandaGateway, ibGateway,

tkproGateway)

if system == 'Windows':

from vnpy.trader.gateway import (femasGateway, xspeedGateway,

futuGateway, secGateway)

if system == 'Linux':

from vnpy.trader.gateway import xtpGateway

# 加载上层应用

from vnpy.trader.app import (riskManager, ctaStrategy, spreadTrading)

#----------------------------------------------------------------------

def main():

"""主程序入口"""

# 创建Qt应用对象

qApp = createQApp()

# 创建事件引擎

ee = EventEngine()

# 创建主引擎

me = MainEngine(ee)

# 添加交易接口

me.addGateway(ctpGateway)

me.addGateway(tkproGateway)

me.addGateway(oandaGateway)

me.addGateway(ibGateway)

if system == 'Windows':

me.addGateway(femasGateway)

me.addGateway(xspeedGateway)

me.addGateway(secGateway)

me.addGateway(futuGateway)

if system == 'Linux':

me.addGateway(xtpGateway)

# 添加上层应用

me.addApp(riskManager)

me.addApp(ctaStrategy)

me.addApp(spreadTrading)

# 创建主窗口

mw = MainWindow(me, ee)

mw.showMaximized()

# 在主线程中启动Qt事件循环

sys.exit(qApp.exec_())

if __name__ == '__main__':

main()

更多使用方法方法请参考examples下的其他目录。

用户文档

项目的最新文档请查看Github Wiki,知乎专栏和官网文档已经落后于项目开发版本,建议只作为额外的参考资料。

开发工具推荐

WingIDE:非常好用的Python集成开发环境(作者就是用它写的vn.py)

Robomongo:MongoDB的图形化客户端,方便监控和修改数据

Sublime Text:针对编程的文本编辑器,当然你也可以使用Vim或者Emacs

PyQtGraph:适用于开发实时更新数据的图表,如Tick图、K线图、期权波动率曲线等(Matplotlib渲染开销太大,用于实盘绘图可能拖慢整个程序)

Visual Studio 2013:这个就不多说了(作者编译API封装用的是2013版本)

贡献代码

vn.py使用github托管其源代码,如果希望贡献代码请使用github的PR(Pull Request)的流程:

创建 Issue - 对于较大的改动(如新功能,大型重构等)最好先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发PR即可

Fork vn.py - 点击右上角Fork按钮

Clone你自己的fork: git clone https://github.com/$userid/vnpy.git

从dev创建你自己的feature branch: git checkout -b $my_feature_branch dev

在$my_feature_branch上修改并将修改push到你的fork上

创建从你的fork的$my_feature_branch分支到主项目的dev分支的[Pull Request] - 在此点击compare across forks,选择需要的fork和branch创建PR

等待review, 需要继续改进,或者被Merge!

项目捐赠

过去的半年中陆续收到了许多用户的捐赠,在此深表感谢!所有的捐赠资金都投入到了vn.py社区基金中,用于支持vn.py项目的运作。最近主要的一个支出是相关文档编写,目前来看文档完成的速度和质量都显著超出预期。

先强调一下:vn.py是开源项目,可以永久免费使用,并没有强制捐赠的要求!!!

计划长期维护一份捐赠清单,所以请在留言中注明是项目捐赠以及捐赠人的名字(当然想匿名的用户就随意了)。

其他内容

License

MIT

python 股票交易接口 github_GitHub - xiongyixiaoyang/vnpy: 基于python的开源量化交易平台开发框架...相关推荐

  1. python 股票交易接口 github_GitHub - gusihao/vnpy: 基于python的开源交易平台开发框架...

    vn.py - 基于python的开源交易平台开发框架 2016年vn.py项目计划回顾 转眼之间已经到了2016年的四季度,感谢广大用户的支持,vn.py项目在这一年中成长得十分迅速.截止2016年 ...

  2. python 股票交易接口 github_GitHub - Higgsbit/vnpy: 基于python的开源交易平台开发框架...

    vn.py - 基于python的开源交易平台开发框架 2016年vn.py项目计划回顾 转眼之间已经到了2016年的四季度,感谢广大用户的支持,vn.py项目在这一年中成长得十分迅速.截止2016年 ...

  3. python 股票交易接口 github_GitHub - zhaoneng/vnpy: 基于python的开源交易平台开发框架...

    By Traders, For Traders. 简介 vn.py是基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统.2015年初项目启动时只是单纯的交易API接口的Pyt ...

  4. python量化交易书籍推荐知乎_GitHub - XingkaiLiang/vnpy: 基于python的开源量化交易平台开发框架...

    vn.py - By Traders, For Traders. 简介 vn.py是基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统.2015年初项目启动时只是单纯的交易A ...

  5. python 股票交易接口 github_GitHub - uname-yang/pysnowball: 雪球股票数据接口 python edition...

    pysnowball 雪球APP Python API (需要自取token) 快速指引 安装 pip install pysnowball 示例 >>> import pysnow ...

  6. python写web自动化_Web接口开发与自动化测试——基于Python语言

    目 录∣ V 目 录 第1 章 Python 学习必知 ........................................................................ ...

  7. jemeter python接口自动化测试平台_WEB接口开发与自动化测试基于PYTHON语言PDF_Python教程...

    资源名称:WEB接口开发与自动化测试 基于PYTHON语言 PDF 内容简介: <Web接口开发与自动化测试--基于Python语言>以接口测试为主线,以Web开发为切入点,全面介绍了We ...

  8. python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析

    大家对股票交易接口并不陌生,那么要想获取股票数据获取,也是可以通过python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析如下: import sys from PyQt5 i ...

  9. python接口自动化测试书籍_Web接口开发与自动化测试——基于Python语言

    Web接口开发与自动化测试--基于Python语言电子书 本书特色: * Django Web发,通过发发布会签到系统,全面了解Django MTV模型. * Django单元测试,在Web应用中如何 ...

最新文章

  1. 腾讯云VS AWS :云存储网关性能谁更优?
  2. 值得收藏的45个Python优质资源
  3. 通过PROC信息调节TCP窗口
  4. 云服务器40g能装sqlserver_双十一买2核4G云服务器,哪里更便宜
  5. 我的电脑不联网,很安全!黑客:你还有风扇呢
  6. 通过8个技巧让你成为一个超强的Linux终端用户
  7. python顺序执行 toggle_pythonkivymd:如何使toggle_nav_drawer()函数工作?
  8. 关于BaseAdapter在listView中的使用
  9. ASP.NET常用代码汇总
  10. 51nod 1050循环数组最大字段和
  11. CentOS6.5配置网易163做yum源
  12. python token验证失败百分百解决_微信公众号token验证失败解决方案
  13. 父与子python版本,父与子的编程之旅 与小卡特一起学Python(第3版)
  14. 干货来袭,收藏方便找到该网站
  15. 计算机二级mysql上机考试操作步骤_计算机二级mysql上机操作题怎么做
  16. 阿里笔试--智能对话简化版之query指令槽位识别
  17. 关于DOCX XML
  18. Rook1.0部署+排错
  19. 随笔小记-广告拦截,卸载猎豹后,仍然弹出广告
  20. centOS 7下python2升级为python3

热门文章

  1. .NET平台C/S架构应用程序开发核心技术总结(MyKTV点歌系统案例分析)
  2. android 很多牛叉界面库github地址
  3. Zigbee 入网过程详解
  4. SQL回炉重造07_函数
  5. python读取dat文件经纬度_自动提取kml文件中的经纬度
  6. ISP错误、ISV错误
  7. 树莓派python控制两个舵机_利用树莓派,光敏电阻和小型舵机实现自动获取 《最终幻想 X HD重制版》 连续避雷200次奖杯...
  8. 安装官方 Synaptics 驱动,终于解决 HP Pavilion G4 笔记本 讨厌的触摸板锁定问题!
  9. 历经一个月拿下<Linux鸟哥的私房菜>(基础篇)
  10. 注意力机制详解(小白入门)