Go to file
vn.py 90ad4b5bda
Merge pull request #1779 from nanoric/tap
[Mod] Rename ITap(api/gateway) to Tap(api/gateway)
2019-06-03 16:50:34 +08:00
.github [Mod]change template path 2019-03-20 17:57:01 +08:00
docs [Del] remove intersphinx_mapping to speed up build 2019-05-29 16:30:22 +08:00
tests [Mod] change RiskManager to use QDialog 2019-06-02 14:51:15 +08:00
vnpy Merge pull request #1779 from nanoric/tap 2019-06-03 16:50:34 +08:00
.flake8 [Fix] flake8 code quality 2019-05-14 14:26:24 +08:00
.gitignore [Add] XtpGateway: alpha phrase 2019-04-24 06:38:46 -04:00
.travis.yml [Fix] fixed osx install 2019-05-15 16:58:18 +08:00
appveyor.yml [Mod] use python -m pip instead of pip 2019-05-15 16:36:56 +08:00
install_osx.sh [Fix] fixed osx install 2019-05-15 16:58:18 +08:00
install.bat [Mod] use python -m pip instead of pip 2019-05-15 16:36:56 +08:00
install.sh [Fix] fixed osx install 2019-05-15 16:58:18 +08:00
LICENSE [Add]add license file 2019-01-04 15:14:15 +08:00
MANIFEST.in [Add] added *.a to sdist 2019-03-29 06:56:47 -04:00
README.md [Mod] update README.md 2019-05-17 13:49:37 +08:00
requirements.txt [Add] requirements.txt add EOF blank line 2019-05-15 12:25:07 +08:00
setup.py [Mod] make flake8 happy 2019-05-15 17:27:50 +08:00

By Traders, For Traders.

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

2.0版本基于Python 3.7全新重构开发目前功能还在逐步完善中。如需Python 2上的版本请点击长期支持版本v1.9.2 LTS

功能特点

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

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

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

    • 飞马(femas):国内期货

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

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

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

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

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

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

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

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

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

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

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

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

  3. 开箱即用的各类量化策略交易应用vnpy.app

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

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

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

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

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

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

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

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

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

环境准备

  • 推荐使用vn.py团队为量化交易专门打造的Python发行版VNStudio-2.0.3内置了最新版的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. vn.py社区论坛注册获得VN Station账号密码论坛账号密码即是

  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是开源项目可以永久免费使用并没有强制捐赠的要求

捐赠方式支付宝3216630132@qq.com*晓优)

长期维护捐赠清单,请在留言中注明是项目捐赠以及捐赠人的名字。

其他内容

版权说明

MIT