Skip to content
master
Switch branches/tags
Code
This branch is up to date with master.
Contribute

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

By Traders, For Traders.

vn.py是一套基于Python的开源量化交易系统开发框架,于2015年1月正式发布,在开源社区5年持续不断的贡献下一步步成长为全功能量化交易平台,目前国内外金融机构用户已经超过300家,包括:私募基金、证券自营和资管、期货资管和子公司、高校研究机构、自营交易公司、交易所、Token Fund等。 对vn.py和量化交易新手的建议:

1.Python 适合用于快速开发,解释性语言导致了运行效率比较低,但是开发速度相对于其他语言却很高。当然Python做数据分析的效率比较高,但是做底层会下降一个 数量级的原因,所以尽可能建议用成熟的资管系统去实现多账户。目前虚拟币市场比较混乱,厂商的API水平参差不齐,而A股禁止使用资管系统,外盘相对而言 波动小是一个更成熟的市场,国内的期货的API是最成熟和完善的,那么期货的资管也很丰富,包括了信管家、融航、酷操盘手等。

2.因为搭建整个量化平台需要涉及很多,包括数据处理,策略开发,底层搭建,而这些工作在私募基金是由一个团队去完成的,如果是一个爱好者自己做怎么的也得3-5年吧。所以给出的建议是,尽可能的将精力放在策略开发上,对底层和框架可以拿来主义。

3.对一些人工智能库该怎么用,对大多数程序员来说也只是学会调用,能做到调参的已经是比较高的水平了。若想真正做到精通人工智能算法,对程序员也 不是一个简单的工作,更不要说一般爱好者了,人工智能算法需要的是优秀的算法工程师 , 要熟练的掌握高等数学、线性代数、离散数学、组合数学、矩阵论、概率统计等数学课程,数据结构 (树、链表、矩阵、图)等各种典型的数据结构以及常用的查找和排序算法(比如冒泡排序、快速排序、二分查找、希尔排序等,熟悉各自算法的时间复杂度)。对 于通用型的算法思想,比如递推、分治、贪心、递归、动态规划等算法策略要熟记于心并能灵活运用。要做好人工智能算法这一些都离不开深厚的数学功底。。 所以所以对一般量化交易爱好者而言,一上来不要追求人工智能去开发策略。

4.vn.py python框架也在不断进化,vn.py目前最大的问题是性能问题,相信未来还有更好的框架出现,建议爱好者将精力方在策略开发上,策略相比平台则是更保值的东西。

vn.py (http://www.vnpy.cn) 是基于Python的开源量化交易系统开发框架,起源于中国国内私募基金的自主交易系统。2015年1月项目正式在Github发布,在开源社区数年持续 不断的贡献下,已经从早期的交易API接口封装,一步步成长为一套多市场多接口的量化交易平台。随着量化交易行业业内关注度的上升,用户群体也日渐多样 化,包括:高校研究机构、专业个人投资者、私募基金、期货资管、证券自营和资管等等。 vn.py由于属于纯Python架构不适合搭建多账户系统,因为Python适合数据处理,但不适合多账户的并发。如需要多账户,消除原始VN.PY性 能架构缺陷,建议采用资管系统来实现。 期货资管系统推荐酷操盘手系列 http://www.kucps.com/ 虽然是商业化产品,但是是可以获得免费使用的。

其他量化交易网站,和支持VN.PY扩展功能

[支持VNPY和任意自编程序的底层仿真TICK级回测系统,实盘代码和回测代码100%一致] http://www.virtualapi.cn/

[实盘低佣金开户,为了给广大量化交易爱好者提供便利,我们帮大家和期货公司谈的手续费非常低了,交易所标准加1分,交反40~90%支持CTP接口] http://www.kaihucn.cn/

[上海期货交易所CTP接口,支持模拟账户注册] http://www.simnow.com.cn

[酷操盘手资管软件、酷操盘手跟单软件系列] http://www.kucps.com/

[行情数据免费下载] http://www.mdshare.cn/

[量化资源导航] http://www.pythonpai.cn

[量化交易社区] http://www.pythonpai.com

[A股交易工具] http://www.quicklib.net

使用过程中有任何疑问,请查看vn.py项目文档

官方微信公众号:vnpy-community,接下来将在公众号中陆续上线各种关于vn.py的使用教程,欢迎关注。

2.0版本基于Python 3.7全新重构开发,如需Python 2上的版本请点击:长期支持版本v1.9.2 LTS

功能特点

  1. 全功能量化交易平台(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用。

  2. 覆盖国内外所有交易品种的交易接口(vnpy.gateway):

    • 国内市场

      • CTP(ctp):国内期货、期权

      • CTP Mini(mini):国内期货、期权

      • 飞马(femas):国内期货

      • 宽睿(oes):国内证券(A股)

      • 中泰XTP(xtp):国内证券(A股)

      • 华鑫奇点(tora):国内证券(A股)

    • 海外市场

      • 富途证券(futu):港股、美股

      • 老虎证券(tiger):全球证券、期货、期权、外汇等

      • Interactive Brokers(ib):全球证券、期货、期权、外汇等

      • 易盛9.0外盘(tap):全球期货

    • 数字货币

      • BitMEX(bitmex):数字货币期货、期权、永续合约

      • OKEX合约(okexf):数字货币期货

      • 火币合约(hbdm):数字货币期货

      • 币安(binance):数字货币现货

      • OKEX(okex):数字货币现货

      • 火币(huobi):数字货币现货

      • Bitfinex(bitfinex):数字货币现货

      • 1Token(onetoken):数字货币券商(现货、期货)

    • 特殊应用

      • RPC服务(rpc):跨进程通讯接口,用于分布式架构
  3. 开箱即用的各类量化策略交易应用(vnpy.app):

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

    • cta_backtester:CTA策略回测模块,无需使用Jupyter Notebook,直接使用图形界面直接进行策略回测分析、参数优化等相关工作

    • algo_trading:算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、Iceberg、BestLimit等等,支持常用算法配置保存

    • script_trader:脚本策略模块,针对多标的组合类交易策略设计,同时也可以直接在命令行中实现REPL指令形式的交易,不支持回测功能

    • rpc_service:RPC服务模块,允许将某一VN Trader进程启动为服务端,作为统一的行情和交易路由通道,允许多客户端同时连接,实现多进程分布式系统

    • csv_loader:CSV历史数据加载器,用于加载CSV格式文件中的历史数据到平台数据库中,用于策略的回测研究以及实盘初始化等功能,支持自定义数据表头格式

    • data_recorder:行情记录模块,基于图形界面进行配置,根据需求实时录制Tick或者K线行情到数据库中,用于策略回测或者实盘初始化

    • risk_manager:风险管理模块,提供包括交易流控、下单数量、活动委托、撤单总数等规则的统计和限制,有效实现前端风控功能

  4. Python交易API接口封装(vnpy.api),提供上述交易接口的底层对接实现。

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

  6. 跨进程通讯标准组件(vnpy.rpc),用于实现分布式部署的复杂交易系统。

  7. Python高性能K线图表(vnpy.chart),支持大数据量图表显示以及实时数据更新功能。

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

  9. 官方交流群262656087(QQ),管理严格(定期清除长期潜水的成员),入群费将捐赠给vn.py社区基金。

环境准备

  • 推荐使用vn.py团队为量化交易专门打造的Python发行版VNStudio-2.0.4,内置了最新版的vn.py框架以及VN Station量化管理平台,无需手动安装
  • 支持的系统版本:Windows 7以上/Windows Server 2008以上/Ubuntu 18.04 LTS
  • 支持的Python版本:Python 3.7 64位(注意必须是Python 3.7 64位版本

安装步骤

这里下载最新版本,解压后运行以下命令安装: Windows

install.bat

Ubuntu

bash install.sh

使用指南

  1. SimNow注册CTP仿真账号,并在该页面获取经纪商代码以及交易行情服务器地址。

  2. VirtualAPi For CTP支持VNPY的CTP框架进行回测,并保证实盘代码和回测代码一模一样 http://www.virutalapi.cn

  3. 启动VN Station(安装VNConda后会在桌面自动创建快捷方式),输入上一步的账号密码登录

  4. 点击底部的VN Trader Lite按钮,开始你的交易!!!

注意:

  • 在VN Trader的运行过程中请勿关闭VN Station(会自动退出)
  • 如需要灵活配置量化交易应用组件,请使用VN Trader Pro

脚本运行

除了基于VN Station的图形化启动方式外,也可以在任意目录下创建run.py,写入以下示例代码:

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy.gateway.ctp import CtpGateway
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.cta_backtester import CtaBacktesterApp

def main():
    """Start VN Trader"""
    qapp = create_qapp()

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    
    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)
    main_engine.add_app(CtaBacktesterApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()

if __name__ == "__main__":
    main()

在该目录下打开CMD(按住Shift->点击鼠标右键->在此处打开命令窗口/PowerShell)后运行下列命令启动VN Trader:

python run.py

贡献代码

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

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

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

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

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

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

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

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

在提交代码的时候,请遵守以下规则,以提高代码质量:

  • 使用autopep8格式化你的代码。运行autopep8 --in-place --recursive . 即可。
  • 使用flake8检查你的代码,确保没有error和warning。在项目根目录下运行flake8即可。

项目捐赠

过去5年中收到过许多社区用户的捐赠,在此深表感谢!所有的捐赠资金都投入到了vn.py社区基金中,用于支持vn.py项目的运作。

先强调一下:vn.py是开源项目,可以永久免费使用 !!!

VNPY原始作者:用Python的程序员 还有其他为VNPY做出贡献的其他作者

其他内容

版权说明

MIT

About

基于Python的开源量化交易平台开发框架

Resources

License

Code of conduct

Packages

No packages published