vnpy


Namevnpy JSON
Version 3.9.1 PyPI version JSON
download
home_pagehttps://www.vnpy.com
SummaryA framework for developing quant trading systems.
upload_time2024-03-24 08:06:52
maintainerNone
docs_urlNone
authorXiaoyou Chen
requires_pythonNone
licenseMIT
keywords quant quantitative investment trading algotrading
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # VeighNa - By Traders, For Traders.

<p align="center">
  <img src ="https://vnpy.oss-cn-shanghai.aliyuncs.com/veighna-logo.png"/>
</p>

💬 Want to read this in **english** ? Go [**here**](README_ENG.md)

<p align="center">
    <img src ="https://img.shields.io/badge/version-3.9.1-blueviolet.svg"/>
    <img src ="https://img.shields.io/badge/platform-windows|linux|macos-yellow.svg"/>
    <img src ="https://img.shields.io/badge/python-3.10|3.11.|3.12-blue.svg" />
    <img src ="https://img.shields.io/github/actions/workflow/status/vnpy/vnpy/pythonapp.yml?branch=master"/>
    <img src ="https://img.shields.io/github/license/vnpy/vnpy.svg?color=orange"/>
</p>

VeighNa是一套基于Python的开源量化交易系统开发框架,在开源社区持续不断的贡献下一步步成长为多功能量化交易平台,自发布以来已经积累了众多来自金融机构或相关领域的用户,包括私募基金、证券公司、期货公司等。

:rocket: :rocket: :rocket: **面向专业交易员的【VeighNa Elite量化终端】已经正式发布,针对专业交易员群体在海量策略并发、智能移仓换月、算法拆单执行、多账户交易支持等方面的需求提供了完善支持。了解更详细的信息请扫描下方二维码关注后,点击菜单栏的【社区交流 -> Elite会员服务】即可**:

<p align="center">
  <img src ="https://vnpy.oss-cn-shanghai.aliyuncs.com/vnpy_qr.jpg"/>
</p>

在使用VeighNa进行二次开发(策略、模块等)的过程中有任何疑问,请查看[**VeighNa项目文档**](https://www.vnpy.com/docs/cn/index.html),如果无法解决请前往[**官方社区论坛**](https://www.vnpy.com/forum/)的【提问求助】板块寻求帮助,也欢迎在【经验分享】板块分享你的使用心得!

**想要获取更多关于VeighNa的资讯信息?** 请扫描下方二维码添加小助手加入【VeighNa社区交流微信群】:

<p align="center">
  <img src ="https://vnpy.oss-cn-shanghai.aliyuncs.com/github_wx.png"/, width=250>
</p>


## 功能特点

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

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

    * 国内市场

        * CTP([ctp](https://www.github.com/vnpy/vnpy_ctp)):国内期货、期权

        * CTP Mini([mini](https://www.github.com/vnpy/vnpy_mini)):国内期货、期权

        * CTP证券([sopt](https://www.github.com/vnpy/vnpy_sopt)):ETF期权

        * 飞马([femas](https://www.github.com/vnpy/vnpy_femas)):国内期货

        * 恒生UFT([uft](https://www.github.com/vnpy/vnpy_uft)):国内期货、ETF期权

        * 易盛([esunny](https://www.github.com/vnpy/vnpy_esunny)):国内期货、黄金TD

        * 顶点飞创([sec](https://www.github.com/vnpy/vnpy_sec)):ETF期权

        * 顶点HTS([hts](https://www.github.com/vnpy/vnpy_hts)):ETF期权

        * 中泰XTP([xtp](https://www.github.com/vnpy/vnpy_xtp)):国内证券(A股)、ETF期权

        * 华鑫奇点([tora](https://www.github.com/vnpy/vnpy_tora)):国内证券(A股)、ETF期权

        * 国泰君安([hft](https://www.github.com/vnpy/vnpy_hft)):国内证券(A股、两融)

        * 东证OST([ost](https://www.github.com/vnpy/vnpy_ost)):国内证券(A股)

        * 东方财富EMT([emt](https://www.github.com/vnpy/vnpy_emt)):国内证券(A股)

        * 飞鼠([sgit](https://www.github.com/vnpy/vnpy_sgit)):黄金TD、国内期货

        * 金仕达黄金([ksgold](https://www.github.com/vnpy/vnpy_ksgold)):黄金TD

        * 融航([rohon](https://www.github.com/vnpy/vnpy_rohon)):期货资管

        * 杰宜斯([jees](https://www.github.com/vnpy/vnpy_jees)):期货资管

        * 中汇亿达([comstar](https://www.github.com/vnpy/vnpy_comstar)):银行间市场

        * 掘金([gm](https://www.github.com/vnpy/vnpy_gm)):国内证券(仿真)

        * 恒生云UF([uf](https://www.github.com/vnpy/vnpy_uf)):国内证券(仿真)

        * TTS([tts](https://www.github.com/vnpy/vnpy_tts)):国内期货(仿真)

    * 海外市场

        * Interactive Brokers([ib](https://www.github.com/vnpy/vnpy_ib)):海外证券、期货、期权、贵金属等

        * 易盛9.0外盘([tap](https://www.github.com/vnpy/vnpy_tap)):海外期货

        * 直达期货([da](https://www.github.com/vnpy/vnpy_da)):海外期货

    * 特殊应用

        * RQData行情([rqdata](https://www.github.com/vnpy/vnpy_rqdata)):跨市场(股票、指数、ETF、期货)实时行情

        * RPC服务([rpc](https://www.github.com/vnpy/vnpy_rpcservice)):跨进程通讯接口,用于分布式架构

3. 覆盖下述各类量化策略的交易应用(app):

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

    * [cta_backtester](https://www.github.com/vnpy/vnpy_ctabacktester):CTA策略回测模块,无需使用Jupyter Notebook,直接使用图形界面进行策略回测分析、参数优化等相关工作

    * [spread_trading](https://www.github.com/vnpy/vnpy_spreadtrading):价差交易模块,支持自定义价差,实时计算价差行情和持仓,支持价差算法交易以及自动价差策略两种模式

    * [option_master](https://www.github.com/vnpy/vnpy_optionmaster):期权交易模块,针对国内期权市场设计,支持多种期权定价模型、隐含波动率曲面计算、希腊值风险跟踪等功能

    * [portfolio_strategy](https://www.github.com/vnpy/vnpy_portfoliostrategy):组合策略模块,面向同时交易多合约的量化策略(Alpha、期权套利等),提供历史数据回测和实盘自动交易功能

    * [algo_trading](https://www.github.com/vnpy/vnpy_algotrading):算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、Iceberg、BestLimit等

    * [script_trader](https://www.github.com/vnpy/vnpy_scripttrader):脚本策略模块,面向多标的类量化策略和计算任务设计,同时也可以在命令行中实现REPL指令形式的交易,不支持回测功能

    * [paper_account](https://www.github.com/vnpy/vnpy_paperaccount):本地仿真模块,纯本地化实现的仿真模拟交易功能,基于交易接口获取的实时行情进行委托撮合,提供委托成交推送以及持仓记录

    * [chart_wizard](https://www.github.com/vnpy/vnpy_chartwizard):K线图表模块,基于RQData数据服务(期货)或者交易接口获取历史数据,并结合Tick推送显示实时行情变化

    * [portfolio_manager](https://www.github.com/vnpy/vnpy_portfoliomanager):交易组合管理模块,以独立的策略交易组合(子账户)为基础,提供委托成交记录管理、交易仓位自动跟踪以及每日盈亏实时统计功能

    * [rpc_service](https://www.github.com/vnpy/vnpy_rpcservice):RPC服务模块,允许将某一进程启动为服务端,作为统一的行情和交易路由通道,允许多客户端同时连接,实现多进程分布式系统

    * [data_manager](https://www.github.com/vnpy/vnpy_datamanager):历史数据管理模块,通过树形目录查看数据库中已有的数据概况,选择任意时间段数据查看字段细节,支持CSV文件的数据导入和导出

    * [data_recorder](https://www.github.com/vnpy/vnpy_datarecorder):行情记录模块,基于图形界面进行配置,根据需求实时录制Tick或者K线行情到数据库中,用于策略回测或者实盘初始化

    * [excel_rtd](https://www.github.com/vnpy/vnpy_excelrtd):Excel RTD(Real Time Data)实时数据服务,基于pyxll模块实现在Excel中获取各类数据(行情、合约、持仓等)的实时推送更新

    * [risk_manager](https://www.github.com/vnpy/vnpy_riskmanager):风险管理模块,提供包括交易流控、下单数量、活动委托、撤单总数等规则的统计和限制,有效实现前端风控功能

    * [web_trader](https://www.github.com/vnpy/vnpy_webtrader):Web服务模块,针对B-S架构需求设计,实现了提供主动函数调用(REST)和被动数据推送(Websocket)的Web服务器

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

    * REST Client([rest](https://www.github.com/vnpy/vnpy_rest)):基于协程异步IO的高性能REST API客户端,采用事件消息循环的编程模型,支持高并发实时交易请求发送

    * Websocket Client([websocket](https://www.github.com/vnpy/vnpy_websocket)):基于协程异步IO的高性能Websocket API客户端,支持和REST Client共用事件循环并发运行

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

6. 对接各类数据库的适配器接口(database):

    * SQL类

        * SQLite([sqlite](https://www.github.com/vnpy/vnpy_sqlite)):轻量级单文件数据库,无需安装和配置数据服务程序,VeighNa的默认选项,适合入门新手用户

        * MySQL([mysql](https://www.github.com/vnpy/vnpy_mysql)):主流的开源关系型数据库,文档资料极为丰富,且可替换其他NewSQL兼容实现(如TiDB)

        * PostgreSQL([postgresql](https://www.github.com/vnpy/vnpy_postgresql)):特性更为丰富的开源关系型数据库,支持通过扩展插件来新增功能,只推荐熟手使用

    * NoSQL类

        * DolphinDB([dolphindb](https://www.github.com/vnpy/vnpy_dolphindb)):一款高性能分布式时序数据库,适用于对速度要求极高的低延时或实时性任务

        * Arctic([arctic](https://www.github.com/vnpy/vnpy_arctic)):高性能金融时序数据库,采用了分块化储存、LZ4压缩等性能优化方案,以实现时序数据的高效读写

        * TDengine([taos](https://www.github.com/vnpy/vnpy_taos)):分布式、高性能、支持SQL的时序数据库,带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度

        * TimescaleDB([timescaledb](https://www.github.com/vnpy/vnpy_timescaledb)):基于PostgreSQL开发的一款时序数据库,以插件化扩展的形式安装,支持自动按空间和时间对数据进行分区

        * MongoDB([mongodb](https://www.github.com/vnpy/vnpy_mongodb)):基于分布式文件储存(bson格式)的文档式数据库,内置的热数据内存缓存提供更快读写速度

        * InfluxDB([influxdb](https://www.github.com/vnpy/vnpy_influxdb)):针对TimeSeries Data专门设计的时序数据库,列式数据储存提供极高的读写效率和外围分析应用

        * LevelDB([leveldb](https://www.github.com/vnpy/vnpy_leveldb)):由Google推出的高性能Key/Value数据库,基于LSM算法实现进程内存储引擎,支持数十亿级别的海量数据

7. 对接下述各类数据服务的适配器接口(datafeed):

    * 迅投研([xt](https://www.github.com/vnpy/vnpy_xt)):股票、期货、期权、基金、债券

    * 米筐RQData([rqdata](https://www.github.com/vnpy/vnpy_rqdata)):股票、期货、期权、基金、债券、黄金TD

    * 恒生UData([udata](https://www.github.com/vnpy/vnpy_udata)):股票、期货、期权

    * TuShare([tushare](https://www.github.com/vnpy/vnpy_tushare)):股票、期货、期权、基金

    * 万得Wind([wind](https://www.github.com/vnpy/vnpy_wind)):股票、期货、基金、债券

    * 天软Tinysoft([tinysoft](https://www.github.com/vnpy/vnpy_tinysoft)):股票、期货、基金、债券

    * 同花顺iFinD([ifind](https://www.github.com/vnpy/vnpy_ifind)):股票、期货、基金、债券

    * 天勤TQSDK([tqsdk](https://www.github.com/vnpy/vnpy_tqsdk)):期货

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

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

10. [社区论坛](http://www.vnpy.com/forum)和[知乎专栏](http://zhuanlan.zhihu.com/vn-py),内容包括VeighNa项目的开发教程和Python在量化交易领域的应用研究等内容。

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

注:以上关于功能特点的说明为根据说明文档发布时情况罗列,后续可能存在更新或调整。若功能描述同实际存在出入,欢迎通过Issue联系进行调整。

## 环境准备

* 推荐使用VeighNa团队为量化交易专门打造的Python发行版[VeighNa Studio-3.9.1](https://download.vnpy.com/veighna_studio-3.9.1.exe),集成内置了VeighNa框架以及VeighNa Station量化管理平台,无需手动安装
* 支持的系统版本:Windows 10以上 / Windows Server 2016以上 / Ubuntu 20.04 LTS以上
* 支持的Python版本:Python 3.7/ 3.8 / 3.9 / 3.10 64位(**推荐使用Python 3.10**)

## 安装步骤

在[这里](https://github.com/vnpy/vnpy/releases)下载Release发布版本,解压后运行以下命令安装:

**Windows**

```
install.bat
```

**Ubuntu**

```
bash install.sh
```

**Macos**

```
bash install_osx.sh
```

**注意:setup.cfg中列举了VeighNa框架安装所需的依赖库,requirements.txt中给出了这些依赖库的推荐安装版本。**

## 使用指南

1. 在[SimNow](http://www.simnow.com.cn/)注册CTP仿真账号,并在[该页面](http://www.simnow.com.cn/product.action)获取经纪商代码以及交易行情服务器地址。

2. 在[VeighNa社区论坛](https://www.vnpy.com/forum/)注册获得VeighNa Station账号密码(论坛账号密码即是)

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

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

注意:

* 在VeighNa Trader的运行过程中请勿关闭VeighNa Station(会自动退出)

## 脚本运行

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

```Python
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp


def main():
    """Start VeighNa 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)后运行下列命令启动VeighNa Trader:

    python run.py

## 贡献代码

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

1. [创建 Issue](https://github.com/vnpy/vnpy/issues/new) - 对于较大的改动(如新功能,大型重构等)建议先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发PR即可

2. Fork [VeighNa](https://github.com/vnpy/vnpy) - 点击右上角**Fork**按钮

3. Clone你自己的fork: ```git clone https://github.com/$userid/vnpy.git```
	* 如果你的fork已经过时,需要手动sync:[同步方法](https://help.github.com/articles/syncing-a-fork/)

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] -  [在此](https://github.com/vnpy/vnpy/compare?expand=1)点击**compare across forks**,选择需要的fork和branch创建PR

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

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

  * 使用[flake8](https://pypi.org/project/flake8/)检查你的代码,确保没有error和warning。在项目根目录下运行```flake8```即可。

## 其他内容

* [获取帮助](https://github.com/vnpy/vnpy/blob/dev/.github/SUPPORT.md)
* [社区行为准则](https://github.com/vnpy/vnpy/blob/dev/.github/CODE_OF_CONDUCT.md)
* [Issue模板](https://github.com/vnpy/vnpy/blob/dev/.github/ISSUE_TEMPLATE.md)
* [PR模板](https://github.com/vnpy/vnpy/blob/dev/.github/PULL_REQUEST_TEMPLATE.md)

## 版权说明

MIT

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.vnpy.com",
    "name": "vnpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "quant, quantitative, investment, trading, algotrading",
    "author": "Xiaoyou Chen",
    "author_email": "xiaoyou.chen@mail.vnpy.com",
    "download_url": "https://files.pythonhosted.org/packages/cb/73/19116ce9584d7dc0bf95ef51e0868d03b5691f27225e3984fe0f7f5db1cf/vnpy-3.9.1.tar.gz",
    "platform": null,
    "description": "# VeighNa - By Traders, For Traders.\r\n\r\n<p align=\"center\">\r\n  <img src =\"https://vnpy.oss-cn-shanghai.aliyuncs.com/veighna-logo.png\"/>\r\n</p>\r\n\r\n\ud83d\udcac Want to read this in **english** ? Go [**here**](README_ENG.md)\r\n\r\n<p align=\"center\">\r\n    <img src =\"https://img.shields.io/badge/version-3.9.1-blueviolet.svg\"/>\r\n    <img src =\"https://img.shields.io/badge/platform-windows|linux|macos-yellow.svg\"/>\r\n    <img src =\"https://img.shields.io/badge/python-3.10|3.11.|3.12-blue.svg\" />\r\n    <img src =\"https://img.shields.io/github/actions/workflow/status/vnpy/vnpy/pythonapp.yml?branch=master\"/>\r\n    <img src =\"https://img.shields.io/github/license/vnpy/vnpy.svg?color=orange\"/>\r\n</p>\r\n\r\nVeighNa\u662f\u4e00\u5957\u57fa\u4e8ePython\u7684\u5f00\u6e90\u91cf\u5316\u4ea4\u6613\u7cfb\u7edf\u5f00\u53d1\u6846\u67b6\uff0c\u5728\u5f00\u6e90\u793e\u533a\u6301\u7eed\u4e0d\u65ad\u7684\u8d21\u732e\u4e0b\u4e00\u6b65\u6b65\u6210\u957f\u4e3a\u591a\u529f\u80fd\u91cf\u5316\u4ea4\u6613\u5e73\u53f0\uff0c\u81ea\u53d1\u5e03\u4ee5\u6765\u5df2\u7ecf\u79ef\u7d2f\u4e86\u4f17\u591a\u6765\u81ea\u91d1\u878d\u673a\u6784\u6216\u76f8\u5173\u9886\u57df\u7684\u7528\u6237\uff0c\u5305\u62ec\u79c1\u52df\u57fa\u91d1\u3001\u8bc1\u5238\u516c\u53f8\u3001\u671f\u8d27\u516c\u53f8\u7b49\u3002\r\n\r\n:rocket: :rocket: :rocket: **\u9762\u5411\u4e13\u4e1a\u4ea4\u6613\u5458\u7684\u3010VeighNa Elite\u91cf\u5316\u7ec8\u7aef\u3011\u5df2\u7ecf\u6b63\u5f0f\u53d1\u5e03\uff0c\u9488\u5bf9\u4e13\u4e1a\u4ea4\u6613\u5458\u7fa4\u4f53\u5728\u6d77\u91cf\u7b56\u7565\u5e76\u53d1\u3001\u667a\u80fd\u79fb\u4ed3\u6362\u6708\u3001\u7b97\u6cd5\u62c6\u5355\u6267\u884c\u3001\u591a\u8d26\u6237\u4ea4\u6613\u652f\u6301\u7b49\u65b9\u9762\u7684\u9700\u6c42\u63d0\u4f9b\u4e86\u5b8c\u5584\u652f\u6301\u3002\u4e86\u89e3\u66f4\u8be6\u7ec6\u7684\u4fe1\u606f\u8bf7\u626b\u63cf\u4e0b\u65b9\u4e8c\u7ef4\u7801\u5173\u6ce8\u540e\uff0c\u70b9\u51fb\u83dc\u5355\u680f\u7684\u3010\u793e\u533a\u4ea4\u6d41 -> Elite\u4f1a\u5458\u670d\u52a1\u3011\u5373\u53ef**\uff1a\r\n\r\n<p align=\"center\">\r\n  <img src =\"https://vnpy.oss-cn-shanghai.aliyuncs.com/vnpy_qr.jpg\"/>\r\n</p>\r\n\r\n\u5728\u4f7f\u7528VeighNa\u8fdb\u884c\u4e8c\u6b21\u5f00\u53d1\uff08\u7b56\u7565\u3001\u6a21\u5757\u7b49\uff09\u7684\u8fc7\u7a0b\u4e2d\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u8bf7\u67e5\u770b[**VeighNa\u9879\u76ee\u6587\u6863**](https://www.vnpy.com/docs/cn/index.html)\uff0c\u5982\u679c\u65e0\u6cd5\u89e3\u51b3\u8bf7\u524d\u5f80[**\u5b98\u65b9\u793e\u533a\u8bba\u575b**](https://www.vnpy.com/forum/)\u7684\u3010\u63d0\u95ee\u6c42\u52a9\u3011\u677f\u5757\u5bfb\u6c42\u5e2e\u52a9\uff0c\u4e5f\u6b22\u8fce\u5728\u3010\u7ecf\u9a8c\u5206\u4eab\u3011\u677f\u5757\u5206\u4eab\u4f60\u7684\u4f7f\u7528\u5fc3\u5f97\uff01\r\n\r\n**\u60f3\u8981\u83b7\u53d6\u66f4\u591a\u5173\u4e8eVeighNa\u7684\u8d44\u8baf\u4fe1\u606f\uff1f** \u8bf7\u626b\u63cf\u4e0b\u65b9\u4e8c\u7ef4\u7801\u6dfb\u52a0\u5c0f\u52a9\u624b\u52a0\u5165\u3010VeighNa\u793e\u533a\u4ea4\u6d41\u5fae\u4fe1\u7fa4\u3011\uff1a\r\n\r\n<p align=\"center\">\r\n  <img src =\"https://vnpy.oss-cn-shanghai.aliyuncs.com/github_wx.png\"/, width=250>\r\n</p>\r\n\r\n\r\n## \u529f\u80fd\u7279\u70b9\r\n\r\n1. \u591a\u529f\u80fd\u91cf\u5316\u4ea4\u6613\u5e73\u53f0\uff08trader\uff09\uff0c\u6574\u5408\u4e86\u591a\u79cd\u4ea4\u6613\u63a5\u53e3\uff0c\u5e76\u9488\u5bf9\u5177\u4f53\u7b56\u7565\u7b97\u6cd5\u548c\u529f\u80fd\u5f00\u53d1\u63d0\u4f9b\u4e86\u7b80\u6d01\u6613\u7528\u7684API\uff0c\u7528\u4e8e\u5feb\u901f\u6784\u5efa\u4ea4\u6613\u5458\u6240\u9700\u7684\u91cf\u5316\u4ea4\u6613\u5e94\u7528\u3002\r\n\r\n2. \u8986\u76d6\u56fd\u5185\u5916\u6240\u62e5\u6709\u7684\u4e0b\u8ff0\u4ea4\u6613\u54c1\u79cd\u7684\u4ea4\u6613\u63a5\u53e3\uff08gateway\uff09\uff1a\r\n\r\n    * \u56fd\u5185\u5e02\u573a\r\n\r\n        * CTP\uff08[ctp](https://www.github.com/vnpy/vnpy_ctp)\uff09\uff1a\u56fd\u5185\u671f\u8d27\u3001\u671f\u6743\r\n\r\n        * CTP Mini\uff08[mini](https://www.github.com/vnpy/vnpy_mini)\uff09\uff1a\u56fd\u5185\u671f\u8d27\u3001\u671f\u6743\r\n\r\n        * CTP\u8bc1\u5238\uff08[sopt](https://www.github.com/vnpy/vnpy_sopt)\uff09\uff1aETF\u671f\u6743\r\n\r\n        * \u98de\u9a6c\uff08[femas](https://www.github.com/vnpy/vnpy_femas)\uff09\uff1a\u56fd\u5185\u671f\u8d27\r\n\r\n        * \u6052\u751fUFT\uff08[uft](https://www.github.com/vnpy/vnpy_uft)\uff09\uff1a\u56fd\u5185\u671f\u8d27\u3001ETF\u671f\u6743\r\n\r\n        * \u6613\u76db\uff08[esunny](https://www.github.com/vnpy/vnpy_esunny)\uff09\uff1a\u56fd\u5185\u671f\u8d27\u3001\u9ec4\u91d1TD\r\n\r\n        * \u9876\u70b9\u98de\u521b\uff08[sec](https://www.github.com/vnpy/vnpy_sec)\uff09\uff1aETF\u671f\u6743\r\n\r\n        * \u9876\u70b9HTS\uff08[hts](https://www.github.com/vnpy/vnpy_hts)\uff09\uff1aETF\u671f\u6743\r\n\r\n        * \u4e2d\u6cf0XTP\uff08[xtp](https://www.github.com/vnpy/vnpy_xtp)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08A\u80a1\uff09\u3001ETF\u671f\u6743\r\n\r\n        * \u534e\u946b\u5947\u70b9\uff08[tora](https://www.github.com/vnpy/vnpy_tora)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08A\u80a1\uff09\u3001ETF\u671f\u6743\r\n\r\n        * \u56fd\u6cf0\u541b\u5b89\uff08[hft](https://www.github.com/vnpy/vnpy_hft)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08A\u80a1\u3001\u4e24\u878d\uff09\r\n\r\n        * \u4e1c\u8bc1OST\uff08[ost](https://www.github.com/vnpy/vnpy_ost)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08A\u80a1\uff09\r\n\r\n        * \u4e1c\u65b9\u8d22\u5bccEMT\uff08[emt](https://www.github.com/vnpy/vnpy_emt)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08A\u80a1\uff09\r\n\r\n        * \u98de\u9f20\uff08[sgit](https://www.github.com/vnpy/vnpy_sgit)\uff09\uff1a\u9ec4\u91d1TD\u3001\u56fd\u5185\u671f\u8d27\r\n\r\n        * \u91d1\u4ed5\u8fbe\u9ec4\u91d1\uff08[ksgold](https://www.github.com/vnpy/vnpy_ksgold)\uff09\uff1a\u9ec4\u91d1TD\r\n\r\n        * \u878d\u822a\uff08[rohon](https://www.github.com/vnpy/vnpy_rohon)\uff09\uff1a\u671f\u8d27\u8d44\u7ba1\r\n\r\n        * \u6770\u5b9c\u65af\uff08[jees](https://www.github.com/vnpy/vnpy_jees)\uff09\uff1a\u671f\u8d27\u8d44\u7ba1\r\n\r\n        * \u4e2d\u6c47\u4ebf\u8fbe\uff08[comstar](https://www.github.com/vnpy/vnpy_comstar)\uff09\uff1a\u94f6\u884c\u95f4\u5e02\u573a\r\n\r\n        * \u6398\u91d1\uff08[gm](https://www.github.com/vnpy/vnpy_gm)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08\u4eff\u771f\uff09\r\n\r\n        * \u6052\u751f\u4e91UF\uff08[uf](https://www.github.com/vnpy/vnpy_uf)\uff09\uff1a\u56fd\u5185\u8bc1\u5238\uff08\u4eff\u771f\uff09\r\n\r\n        * TTS\uff08[tts](https://www.github.com/vnpy/vnpy_tts)\uff09\uff1a\u56fd\u5185\u671f\u8d27\uff08\u4eff\u771f\uff09\r\n\r\n    * \u6d77\u5916\u5e02\u573a\r\n\r\n        * Interactive Brokers\uff08[ib](https://www.github.com/vnpy/vnpy_ib)\uff09\uff1a\u6d77\u5916\u8bc1\u5238\u3001\u671f\u8d27\u3001\u671f\u6743\u3001\u8d35\u91d1\u5c5e\u7b49\r\n\r\n        * \u6613\u76db9.0\u5916\u76d8\uff08[tap](https://www.github.com/vnpy/vnpy_tap)\uff09\uff1a\u6d77\u5916\u671f\u8d27\r\n\r\n        * \u76f4\u8fbe\u671f\u8d27\uff08[da](https://www.github.com/vnpy/vnpy_da)\uff09\uff1a\u6d77\u5916\u671f\u8d27\r\n\r\n    * \u7279\u6b8a\u5e94\u7528\r\n\r\n        * RQData\u884c\u60c5\uff08[rqdata](https://www.github.com/vnpy/vnpy_rqdata)\uff09\uff1a\u8de8\u5e02\u573a\uff08\u80a1\u7968\u3001\u6307\u6570\u3001ETF\u3001\u671f\u8d27\uff09\u5b9e\u65f6\u884c\u60c5\r\n\r\n        * RPC\u670d\u52a1\uff08[rpc](https://www.github.com/vnpy/vnpy_rpcservice)\uff09\uff1a\u8de8\u8fdb\u7a0b\u901a\u8baf\u63a5\u53e3\uff0c\u7528\u4e8e\u5206\u5e03\u5f0f\u67b6\u6784\r\n\r\n3. \u8986\u76d6\u4e0b\u8ff0\u5404\u7c7b\u91cf\u5316\u7b56\u7565\u7684\u4ea4\u6613\u5e94\u7528\uff08app\uff09\uff1a\r\n\r\n    * [cta_strategy](https://www.github.com/vnpy/vnpy_ctastrategy)\uff1aCTA\u7b56\u7565\u5f15\u64ce\u6a21\u5757\uff0c\u5728\u4fdd\u6301\u6613\u7528\u6027\u7684\u540c\u65f6\uff0c\u5141\u8bb8\u7528\u6237\u9488\u5bf9CTA\u7c7b\u7b56\u7565\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u59d4\u6258\u7684\u62a5\u64a4\u884c\u4e3a\u8fdb\u884c\u7ec6\u7c92\u5ea6\u63a7\u5236\uff08\u964d\u4f4e\u4ea4\u6613\u6ed1\u70b9\u3001\u5b9e\u73b0\u9ad8\u9891\u7b56\u7565\uff09\r\n\r\n    * [cta_backtester](https://www.github.com/vnpy/vnpy_ctabacktester)\uff1aCTA\u7b56\u7565\u56de\u6d4b\u6a21\u5757\uff0c\u65e0\u9700\u4f7f\u7528Jupyter Notebook\uff0c\u76f4\u63a5\u4f7f\u7528\u56fe\u5f62\u754c\u9762\u8fdb\u884c\u7b56\u7565\u56de\u6d4b\u5206\u6790\u3001\u53c2\u6570\u4f18\u5316\u7b49\u76f8\u5173\u5de5\u4f5c\r\n\r\n    * [spread_trading](https://www.github.com/vnpy/vnpy_spreadtrading)\uff1a\u4ef7\u5dee\u4ea4\u6613\u6a21\u5757\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u4ef7\u5dee\uff0c\u5b9e\u65f6\u8ba1\u7b97\u4ef7\u5dee\u884c\u60c5\u548c\u6301\u4ed3\uff0c\u652f\u6301\u4ef7\u5dee\u7b97\u6cd5\u4ea4\u6613\u4ee5\u53ca\u81ea\u52a8\u4ef7\u5dee\u7b56\u7565\u4e24\u79cd\u6a21\u5f0f\r\n\r\n    * [option_master](https://www.github.com/vnpy/vnpy_optionmaster)\uff1a\u671f\u6743\u4ea4\u6613\u6a21\u5757\uff0c\u9488\u5bf9\u56fd\u5185\u671f\u6743\u5e02\u573a\u8bbe\u8ba1\uff0c\u652f\u6301\u591a\u79cd\u671f\u6743\u5b9a\u4ef7\u6a21\u578b\u3001\u9690\u542b\u6ce2\u52a8\u7387\u66f2\u9762\u8ba1\u7b97\u3001\u5e0c\u814a\u503c\u98ce\u9669\u8ddf\u8e2a\u7b49\u529f\u80fd\r\n\r\n    * [portfolio_strategy](https://www.github.com/vnpy/vnpy_portfoliostrategy)\uff1a\u7ec4\u5408\u7b56\u7565\u6a21\u5757\uff0c\u9762\u5411\u540c\u65f6\u4ea4\u6613\u591a\u5408\u7ea6\u7684\u91cf\u5316\u7b56\u7565\uff08Alpha\u3001\u671f\u6743\u5957\u5229\u7b49\uff09\uff0c\u63d0\u4f9b\u5386\u53f2\u6570\u636e\u56de\u6d4b\u548c\u5b9e\u76d8\u81ea\u52a8\u4ea4\u6613\u529f\u80fd\r\n\r\n    * [algo_trading](https://www.github.com/vnpy/vnpy_algotrading)\uff1a\u7b97\u6cd5\u4ea4\u6613\u6a21\u5757\uff0c\u63d0\u4f9b\u591a\u79cd\u5e38\u7528\u7684\u667a\u80fd\u4ea4\u6613\u7b97\u6cd5\uff1aTWAP\u3001Sniper\u3001Iceberg\u3001BestLimit\u7b49\r\n\r\n    * [script_trader](https://www.github.com/vnpy/vnpy_scripttrader)\uff1a\u811a\u672c\u7b56\u7565\u6a21\u5757\uff0c\u9762\u5411\u591a\u6807\u7684\u7c7b\u91cf\u5316\u7b56\u7565\u548c\u8ba1\u7b97\u4efb\u52a1\u8bbe\u8ba1\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u5728\u547d\u4ee4\u884c\u4e2d\u5b9e\u73b0REPL\u6307\u4ee4\u5f62\u5f0f\u7684\u4ea4\u6613\uff0c\u4e0d\u652f\u6301\u56de\u6d4b\u529f\u80fd\r\n\r\n    * [paper_account](https://www.github.com/vnpy/vnpy_paperaccount)\uff1a\u672c\u5730\u4eff\u771f\u6a21\u5757\uff0c\u7eaf\u672c\u5730\u5316\u5b9e\u73b0\u7684\u4eff\u771f\u6a21\u62df\u4ea4\u6613\u529f\u80fd\uff0c\u57fa\u4e8e\u4ea4\u6613\u63a5\u53e3\u83b7\u53d6\u7684\u5b9e\u65f6\u884c\u60c5\u8fdb\u884c\u59d4\u6258\u64ae\u5408\uff0c\u63d0\u4f9b\u59d4\u6258\u6210\u4ea4\u63a8\u9001\u4ee5\u53ca\u6301\u4ed3\u8bb0\u5f55\r\n\r\n    * [chart_wizard](https://www.github.com/vnpy/vnpy_chartwizard)\uff1aK\u7ebf\u56fe\u8868\u6a21\u5757\uff0c\u57fa\u4e8eRQData\u6570\u636e\u670d\u52a1\uff08\u671f\u8d27\uff09\u6216\u8005\u4ea4\u6613\u63a5\u53e3\u83b7\u53d6\u5386\u53f2\u6570\u636e\uff0c\u5e76\u7ed3\u5408Tick\u63a8\u9001\u663e\u793a\u5b9e\u65f6\u884c\u60c5\u53d8\u5316\r\n\r\n    * [portfolio_manager](https://www.github.com/vnpy/vnpy_portfoliomanager)\uff1a\u4ea4\u6613\u7ec4\u5408\u7ba1\u7406\u6a21\u5757\uff0c\u4ee5\u72ec\u7acb\u7684\u7b56\u7565\u4ea4\u6613\u7ec4\u5408\uff08\u5b50\u8d26\u6237\uff09\u4e3a\u57fa\u7840\uff0c\u63d0\u4f9b\u59d4\u6258\u6210\u4ea4\u8bb0\u5f55\u7ba1\u7406\u3001\u4ea4\u6613\u4ed3\u4f4d\u81ea\u52a8\u8ddf\u8e2a\u4ee5\u53ca\u6bcf\u65e5\u76c8\u4e8f\u5b9e\u65f6\u7edf\u8ba1\u529f\u80fd\r\n\r\n    * [rpc_service](https://www.github.com/vnpy/vnpy_rpcservice)\uff1aRPC\u670d\u52a1\u6a21\u5757\uff0c\u5141\u8bb8\u5c06\u67d0\u4e00\u8fdb\u7a0b\u542f\u52a8\u4e3a\u670d\u52a1\u7aef\uff0c\u4f5c\u4e3a\u7edf\u4e00\u7684\u884c\u60c5\u548c\u4ea4\u6613\u8def\u7531\u901a\u9053\uff0c\u5141\u8bb8\u591a\u5ba2\u6237\u7aef\u540c\u65f6\u8fde\u63a5\uff0c\u5b9e\u73b0\u591a\u8fdb\u7a0b\u5206\u5e03\u5f0f\u7cfb\u7edf\r\n\r\n    * [data_manager](https://www.github.com/vnpy/vnpy_datamanager)\uff1a\u5386\u53f2\u6570\u636e\u7ba1\u7406\u6a21\u5757\uff0c\u901a\u8fc7\u6811\u5f62\u76ee\u5f55\u67e5\u770b\u6570\u636e\u5e93\u4e2d\u5df2\u6709\u7684\u6570\u636e\u6982\u51b5\uff0c\u9009\u62e9\u4efb\u610f\u65f6\u95f4\u6bb5\u6570\u636e\u67e5\u770b\u5b57\u6bb5\u7ec6\u8282\uff0c\u652f\u6301CSV\u6587\u4ef6\u7684\u6570\u636e\u5bfc\u5165\u548c\u5bfc\u51fa\r\n\r\n    * [data_recorder](https://www.github.com/vnpy/vnpy_datarecorder)\uff1a\u884c\u60c5\u8bb0\u5f55\u6a21\u5757\uff0c\u57fa\u4e8e\u56fe\u5f62\u754c\u9762\u8fdb\u884c\u914d\u7f6e\uff0c\u6839\u636e\u9700\u6c42\u5b9e\u65f6\u5f55\u5236Tick\u6216\u8005K\u7ebf\u884c\u60c5\u5230\u6570\u636e\u5e93\u4e2d\uff0c\u7528\u4e8e\u7b56\u7565\u56de\u6d4b\u6216\u8005\u5b9e\u76d8\u521d\u59cb\u5316\r\n\r\n    * [excel_rtd](https://www.github.com/vnpy/vnpy_excelrtd)\uff1aExcel RTD\uff08Real Time Data\uff09\u5b9e\u65f6\u6570\u636e\u670d\u52a1\uff0c\u57fa\u4e8epyxll\u6a21\u5757\u5b9e\u73b0\u5728Excel\u4e2d\u83b7\u53d6\u5404\u7c7b\u6570\u636e\uff08\u884c\u60c5\u3001\u5408\u7ea6\u3001\u6301\u4ed3\u7b49\uff09\u7684\u5b9e\u65f6\u63a8\u9001\u66f4\u65b0\r\n\r\n    * [risk_manager](https://www.github.com/vnpy/vnpy_riskmanager)\uff1a\u98ce\u9669\u7ba1\u7406\u6a21\u5757\uff0c\u63d0\u4f9b\u5305\u62ec\u4ea4\u6613\u6d41\u63a7\u3001\u4e0b\u5355\u6570\u91cf\u3001\u6d3b\u52a8\u59d4\u6258\u3001\u64a4\u5355\u603b\u6570\u7b49\u89c4\u5219\u7684\u7edf\u8ba1\u548c\u9650\u5236\uff0c\u6709\u6548\u5b9e\u73b0\u524d\u7aef\u98ce\u63a7\u529f\u80fd\r\n\r\n    * [web_trader](https://www.github.com/vnpy/vnpy_webtrader)\uff1aWeb\u670d\u52a1\u6a21\u5757\uff0c\u9488\u5bf9B-S\u67b6\u6784\u9700\u6c42\u8bbe\u8ba1\uff0c\u5b9e\u73b0\u4e86\u63d0\u4f9b\u4e3b\u52a8\u51fd\u6570\u8c03\u7528\uff08REST\uff09\u548c\u88ab\u52a8\u6570\u636e\u63a8\u9001\uff08Websocket\uff09\u7684Web\u670d\u52a1\u5668\r\n\r\n4. Python\u4ea4\u6613API\u63a5\u53e3\u5c01\u88c5\uff08api\uff09\uff0c\u63d0\u4f9b\u4e0a\u8ff0\u4ea4\u6613\u63a5\u53e3\u7684\u5e95\u5c42\u5bf9\u63a5\u5b9e\u73b0\u3002\r\n\r\n    * REST Client\uff08[rest](https://www.github.com/vnpy/vnpy_rest)\uff09\uff1a\u57fa\u4e8e\u534f\u7a0b\u5f02\u6b65IO\u7684\u9ad8\u6027\u80fdREST API\u5ba2\u6237\u7aef\uff0c\u91c7\u7528\u4e8b\u4ef6\u6d88\u606f\u5faa\u73af\u7684\u7f16\u7a0b\u6a21\u578b\uff0c\u652f\u6301\u9ad8\u5e76\u53d1\u5b9e\u65f6\u4ea4\u6613\u8bf7\u6c42\u53d1\u9001\r\n\r\n    * Websocket Client\uff08[websocket](https://www.github.com/vnpy/vnpy_websocket)\uff09\uff1a\u57fa\u4e8e\u534f\u7a0b\u5f02\u6b65IO\u7684\u9ad8\u6027\u80fdWebsocket API\u5ba2\u6237\u7aef\uff0c\u652f\u6301\u548cREST Client\u5171\u7528\u4e8b\u4ef6\u5faa\u73af\u5e76\u53d1\u8fd0\u884c\r\n\r\n5. \u7b80\u6d01\u6613\u7528\u7684\u4e8b\u4ef6\u9a71\u52a8\u5f15\u64ce\uff08event\uff09\uff0c\u4f5c\u4e3a\u4e8b\u4ef6\u9a71\u52a8\u578b\u4ea4\u6613\u7a0b\u5e8f\u7684\u6838\u5fc3\u3002\r\n\r\n6. \u5bf9\u63a5\u5404\u7c7b\u6570\u636e\u5e93\u7684\u9002\u914d\u5668\u63a5\u53e3\uff08database\uff09\uff1a\r\n\r\n    * SQL\u7c7b\r\n\r\n        * SQLite\uff08[sqlite](https://www.github.com/vnpy/vnpy_sqlite)\uff09\uff1a\u8f7b\u91cf\u7ea7\u5355\u6587\u4ef6\u6570\u636e\u5e93\uff0c\u65e0\u9700\u5b89\u88c5\u548c\u914d\u7f6e\u6570\u636e\u670d\u52a1\u7a0b\u5e8f\uff0cVeighNa\u7684\u9ed8\u8ba4\u9009\u9879\uff0c\u9002\u5408\u5165\u95e8\u65b0\u624b\u7528\u6237\r\n\r\n        * MySQL\uff08[mysql](https://www.github.com/vnpy/vnpy_mysql)\uff09\uff1a\u4e3b\u6d41\u7684\u5f00\u6e90\u5173\u7cfb\u578b\u6570\u636e\u5e93\uff0c\u6587\u6863\u8d44\u6599\u6781\u4e3a\u4e30\u5bcc\uff0c\u4e14\u53ef\u66ff\u6362\u5176\u4ed6NewSQL\u517c\u5bb9\u5b9e\u73b0\uff08\u5982TiDB\uff09\r\n\r\n        * PostgreSQL\uff08[postgresql](https://www.github.com/vnpy/vnpy_postgresql)\uff09\uff1a\u7279\u6027\u66f4\u4e3a\u4e30\u5bcc\u7684\u5f00\u6e90\u5173\u7cfb\u578b\u6570\u636e\u5e93\uff0c\u652f\u6301\u901a\u8fc7\u6269\u5c55\u63d2\u4ef6\u6765\u65b0\u589e\u529f\u80fd\uff0c\u53ea\u63a8\u8350\u719f\u624b\u4f7f\u7528\r\n\r\n    * NoSQL\u7c7b\r\n\r\n        * DolphinDB\uff08[dolphindb](https://www.github.com/vnpy/vnpy_dolphindb)\uff09\uff1a\u4e00\u6b3e\u9ad8\u6027\u80fd\u5206\u5e03\u5f0f\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u9002\u7528\u4e8e\u5bf9\u901f\u5ea6\u8981\u6c42\u6781\u9ad8\u7684\u4f4e\u5ef6\u65f6\u6216\u5b9e\u65f6\u6027\u4efb\u52a1\r\n\r\n        * Arctic\uff08[arctic](https://www.github.com/vnpy/vnpy_arctic)\uff09\uff1a\u9ad8\u6027\u80fd\u91d1\u878d\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u91c7\u7528\u4e86\u5206\u5757\u5316\u50a8\u5b58\u3001LZ4\u538b\u7f29\u7b49\u6027\u80fd\u4f18\u5316\u65b9\u6848\uff0c\u4ee5\u5b9e\u73b0\u65f6\u5e8f\u6570\u636e\u7684\u9ad8\u6548\u8bfb\u5199\r\n\r\n        * TDengine\uff08[taos](https://www.github.com/vnpy/vnpy_taos)\uff09\uff1a\u5206\u5e03\u5f0f\u3001\u9ad8\u6027\u80fd\u3001\u652f\u6301SQL\u7684\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u5e26\u6709\u5185\u5efa\u7684\u7f13\u5b58\u3001\u6d41\u5f0f\u8ba1\u7b97\u3001\u6570\u636e\u8ba2\u9605\u7b49\u7cfb\u7edf\u529f\u80fd\uff0c\u80fd\u5927\u5e45\u51cf\u5c11\u7814\u53d1\u548c\u8fd0\u7ef4\u7684\u590d\u6742\u5ea6\r\n\r\n        * TimescaleDB\uff08[timescaledb](https://www.github.com/vnpy/vnpy_timescaledb)\uff09\uff1a\u57fa\u4e8ePostgreSQL\u5f00\u53d1\u7684\u4e00\u6b3e\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u4ee5\u63d2\u4ef6\u5316\u6269\u5c55\u7684\u5f62\u5f0f\u5b89\u88c5\uff0c\u652f\u6301\u81ea\u52a8\u6309\u7a7a\u95f4\u548c\u65f6\u95f4\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u533a\r\n\r\n        * MongoDB\uff08[mongodb](https://www.github.com/vnpy/vnpy_mongodb)\uff09\uff1a\u57fa\u4e8e\u5206\u5e03\u5f0f\u6587\u4ef6\u50a8\u5b58\uff08bson\u683c\u5f0f\uff09\u7684\u6587\u6863\u5f0f\u6570\u636e\u5e93\uff0c\u5185\u7f6e\u7684\u70ed\u6570\u636e\u5185\u5b58\u7f13\u5b58\u63d0\u4f9b\u66f4\u5feb\u8bfb\u5199\u901f\u5ea6\r\n\r\n        * InfluxDB\uff08[influxdb](https://www.github.com/vnpy/vnpy_influxdb)\uff09\uff1a\u9488\u5bf9TimeSeries Data\u4e13\u95e8\u8bbe\u8ba1\u7684\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u5217\u5f0f\u6570\u636e\u50a8\u5b58\u63d0\u4f9b\u6781\u9ad8\u7684\u8bfb\u5199\u6548\u7387\u548c\u5916\u56f4\u5206\u6790\u5e94\u7528\r\n\r\n        * LevelDB\uff08[leveldb](https://www.github.com/vnpy/vnpy_leveldb)\uff09\uff1a\u7531Google\u63a8\u51fa\u7684\u9ad8\u6027\u80fdKey/Value\u6570\u636e\u5e93\uff0c\u57fa\u4e8eLSM\u7b97\u6cd5\u5b9e\u73b0\u8fdb\u7a0b\u5185\u5b58\u50a8\u5f15\u64ce\uff0c\u652f\u6301\u6570\u5341\u4ebf\u7ea7\u522b\u7684\u6d77\u91cf\u6570\u636e\r\n\r\n7. \u5bf9\u63a5\u4e0b\u8ff0\u5404\u7c7b\u6570\u636e\u670d\u52a1\u7684\u9002\u914d\u5668\u63a5\u53e3\uff08datafeed\uff09\uff1a\r\n\r\n    * \u8fc5\u6295\u7814\uff08[xt](https://www.github.com/vnpy/vnpy_xt)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u671f\u6743\u3001\u57fa\u91d1\u3001\u503a\u5238\r\n\r\n    * \u7c73\u7b50RQData\uff08[rqdata](https://www.github.com/vnpy/vnpy_rqdata)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u671f\u6743\u3001\u57fa\u91d1\u3001\u503a\u5238\u3001\u9ec4\u91d1TD\r\n\r\n    * \u6052\u751fUData\uff08[udata](https://www.github.com/vnpy/vnpy_udata)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u671f\u6743\r\n\r\n    * TuShare\uff08[tushare](https://www.github.com/vnpy/vnpy_tushare)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u671f\u6743\u3001\u57fa\u91d1\r\n\r\n    * \u4e07\u5f97Wind\uff08[wind](https://www.github.com/vnpy/vnpy_wind)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u57fa\u91d1\u3001\u503a\u5238\r\n\r\n    * \u5929\u8f6fTinysoft\uff08[tinysoft](https://www.github.com/vnpy/vnpy_tinysoft)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u57fa\u91d1\u3001\u503a\u5238\r\n\r\n    * \u540c\u82b1\u987aiFinD\uff08[ifind](https://www.github.com/vnpy/vnpy_ifind)\uff09\uff1a\u80a1\u7968\u3001\u671f\u8d27\u3001\u57fa\u91d1\u3001\u503a\u5238\r\n\r\n    * \u5929\u52e4TQSDK\uff08[tqsdk](https://www.github.com/vnpy/vnpy_tqsdk)\uff09\uff1a\u671f\u8d27\r\n\r\n8. \u8de8\u8fdb\u7a0b\u901a\u8baf\u6807\u51c6\u7ec4\u4ef6\uff08rpc\uff09\uff0c\u7528\u4e8e\u5b9e\u73b0\u5206\u5e03\u5f0f\u90e8\u7f72\u7684\u590d\u6742\u4ea4\u6613\u7cfb\u7edf\u3002\r\n\r\n9. Python\u9ad8\u6027\u80fdK\u7ebf\u56fe\u8868\uff08chart\uff09\uff0c\u652f\u6301\u5927\u6570\u636e\u91cf\u56fe\u8868\u663e\u793a\u4ee5\u53ca\u5b9e\u65f6\u6570\u636e\u66f4\u65b0\u529f\u80fd\u3002\r\n\r\n10. [\u793e\u533a\u8bba\u575b](http://www.vnpy.com/forum)\u548c[\u77e5\u4e4e\u4e13\u680f](http://zhuanlan.zhihu.com/vn-py)\uff0c\u5185\u5bb9\u5305\u62ecVeighNa\u9879\u76ee\u7684\u5f00\u53d1\u6559\u7a0b\u548cPython\u5728\u91cf\u5316\u4ea4\u6613\u9886\u57df\u7684\u5e94\u7528\u7814\u7a76\u7b49\u5185\u5bb9\u3002\r\n\r\n11. \u5b98\u65b9\u4ea4\u6d41\u7fa4262656087\uff08QQ\uff09\uff0c\u7ba1\u7406\u4e25\u683c\uff08\u5b9a\u671f\u6e05\u9664\u957f\u671f\u6f5c\u6c34\u7684\u6210\u5458\uff09\uff0c\u5165\u7fa4\u8d39\u5c06\u6350\u8d60\u7ed9VeighNa\u793e\u533a\u57fa\u91d1\u3002\r\n\r\n\u6ce8\uff1a\u4ee5\u4e0a\u5173\u4e8e\u529f\u80fd\u7279\u70b9\u7684\u8bf4\u660e\u4e3a\u6839\u636e\u8bf4\u660e\u6587\u6863\u53d1\u5e03\u65f6\u60c5\u51b5\u7f57\u5217\uff0c\u540e\u7eed\u53ef\u80fd\u5b58\u5728\u66f4\u65b0\u6216\u8c03\u6574\u3002\u82e5\u529f\u80fd\u63cf\u8ff0\u540c\u5b9e\u9645\u5b58\u5728\u51fa\u5165\uff0c\u6b22\u8fce\u901a\u8fc7Issue\u8054\u7cfb\u8fdb\u884c\u8c03\u6574\u3002\r\n\r\n## \u73af\u5883\u51c6\u5907\r\n\r\n* \u63a8\u8350\u4f7f\u7528VeighNa\u56e2\u961f\u4e3a\u91cf\u5316\u4ea4\u6613\u4e13\u95e8\u6253\u9020\u7684Python\u53d1\u884c\u7248[VeighNa Studio-3.9.1](https://download.vnpy.com/veighna_studio-3.9.1.exe)\uff0c\u96c6\u6210\u5185\u7f6e\u4e86VeighNa\u6846\u67b6\u4ee5\u53caVeighNa Station\u91cf\u5316\u7ba1\u7406\u5e73\u53f0\uff0c\u65e0\u9700\u624b\u52a8\u5b89\u88c5\r\n* \u652f\u6301\u7684\u7cfb\u7edf\u7248\u672c\uff1aWindows 10\u4ee5\u4e0a / Windows Server 2016\u4ee5\u4e0a / Ubuntu 20.04 LTS\u4ee5\u4e0a\r\n* \u652f\u6301\u7684Python\u7248\u672c\uff1aPython 3.7/ 3.8 / 3.9 / 3.10 64\u4f4d\uff08**\u63a8\u8350\u4f7f\u7528Python 3.10**\uff09\r\n\r\n## \u5b89\u88c5\u6b65\u9aa4\r\n\r\n\u5728[\u8fd9\u91cc](https://github.com/vnpy/vnpy/releases)\u4e0b\u8f7dRelease\u53d1\u5e03\u7248\u672c\uff0c\u89e3\u538b\u540e\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\uff1a\r\n\r\n**Windows**\r\n\r\n```\r\ninstall.bat\r\n```\r\n\r\n**Ubuntu**\r\n\r\n```\r\nbash install.sh\r\n```\r\n\r\n**Macos**\r\n\r\n```\r\nbash install_osx.sh\r\n```\r\n\r\n**\u6ce8\u610f\uff1asetup.cfg\u4e2d\u5217\u4e3e\u4e86VeighNa\u6846\u67b6\u5b89\u88c5\u6240\u9700\u7684\u4f9d\u8d56\u5e93\uff0crequirements.txt\u4e2d\u7ed9\u51fa\u4e86\u8fd9\u4e9b\u4f9d\u8d56\u5e93\u7684\u63a8\u8350\u5b89\u88c5\u7248\u672c\u3002**\r\n\r\n## \u4f7f\u7528\u6307\u5357\r\n\r\n1. \u5728[SimNow](http://www.simnow.com.cn/)\u6ce8\u518cCTP\u4eff\u771f\u8d26\u53f7\uff0c\u5e76\u5728[\u8be5\u9875\u9762](http://www.simnow.com.cn/product.action)\u83b7\u53d6\u7ecf\u7eaa\u5546\u4ee3\u7801\u4ee5\u53ca\u4ea4\u6613\u884c\u60c5\u670d\u52a1\u5668\u5730\u5740\u3002\r\n\r\n2. \u5728[VeighNa\u793e\u533a\u8bba\u575b](https://www.vnpy.com/forum/)\u6ce8\u518c\u83b7\u5f97VeighNa Station\u8d26\u53f7\u5bc6\u7801\uff08\u8bba\u575b\u8d26\u53f7\u5bc6\u7801\u5373\u662f\uff09\r\n\r\n3. \u542f\u52a8VeighNa Station\uff08\u5b89\u88c5VeighNa Studio\u540e\u4f1a\u5728\u684c\u9762\u81ea\u52a8\u521b\u5efa\u5feb\u6377\u65b9\u5f0f\uff09\uff0c\u8f93\u5165\u4e0a\u4e00\u6b65\u7684\u8d26\u53f7\u5bc6\u7801\u767b\u5f55\r\n\r\n4. \u70b9\u51fb\u5e95\u90e8\u7684**VeighNa Trader**\u6309\u94ae\uff0c\u5f00\u59cb\u4f60\u7684\u4ea4\u6613\uff01\uff01\uff01\r\n\r\n\u6ce8\u610f\uff1a\r\n\r\n* \u5728VeighNa Trader\u7684\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u8bf7\u52ff\u5173\u95edVeighNa Station\uff08\u4f1a\u81ea\u52a8\u9000\u51fa\uff09\r\n\r\n## \u811a\u672c\u8fd0\u884c\r\n\r\n\u9664\u4e86\u57fa\u4e8eVeighNa Station\u7684\u56fe\u5f62\u5316\u542f\u52a8\u65b9\u5f0f\u5916\uff0c\u4e5f\u53ef\u4ee5\u5728\u4efb\u610f\u76ee\u5f55\u4e0b\u521b\u5efarun.py\uff0c\u5199\u5165\u4ee5\u4e0b\u793a\u4f8b\u4ee3\u7801\uff1a\r\n\r\n```Python\r\nfrom vnpy.event import EventEngine\r\nfrom vnpy.trader.engine import MainEngine\r\nfrom vnpy.trader.ui import MainWindow, create_qapp\r\n\r\nfrom vnpy_ctp import CtpGateway\r\nfrom vnpy_ctastrategy import CtaStrategyApp\r\nfrom vnpy_ctabacktester import CtaBacktesterApp\r\n\r\n\r\ndef main():\r\n    \"\"\"Start VeighNa Trader\"\"\"\r\n    qapp = create_qapp()\r\n\r\n    event_engine = EventEngine()\r\n    main_engine = MainEngine(event_engine)\r\n    \r\n    main_engine.add_gateway(CtpGateway)\r\n    main_engine.add_app(CtaStrategyApp)\r\n    main_engine.add_app(CtaBacktesterApp)\r\n\r\n    main_window = MainWindow(main_engine, event_engine)\r\n    main_window.showMaximized()\r\n\r\n    qapp.exec()\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    main()\r\n```\r\n\r\n\u5728\u8be5\u76ee\u5f55\u4e0b\u6253\u5f00CMD\uff08\u6309\u4f4fShift->\u70b9\u51fb\u9f20\u6807\u53f3\u952e->\u5728\u6b64\u5904\u6253\u5f00\u547d\u4ee4\u7a97\u53e3/PowerShell\uff09\u540e\u8fd0\u884c\u4e0b\u5217\u547d\u4ee4\u542f\u52a8VeighNa Trader\uff1a\r\n\r\n    python run.py\r\n\r\n## \u8d21\u732e\u4ee3\u7801\r\n\r\nVeighNa\u4f7f\u7528Github\u6258\u7ba1\u5176\u6e90\u4ee3\u7801\uff0c\u5982\u679c\u5e0c\u671b\u8d21\u732e\u4ee3\u7801\u8bf7\u4f7f\u7528github\u7684PR\uff08Pull Request\uff09\u7684\u6d41\u7a0b:\r\n\r\n1. [\u521b\u5efa Issue](https://github.com/vnpy/vnpy/issues/new) - \u5bf9\u4e8e\u8f83\u5927\u7684\u6539\u52a8\uff08\u5982\u65b0\u529f\u80fd\uff0c\u5927\u578b\u91cd\u6784\u7b49\uff09\u5efa\u8bae\u5148\u5f00issue\u8ba8\u8bba\u4e00\u4e0b\uff0c\u8f83\u5c0f\u7684improvement\uff08\u5982\u6587\u6863\u6539\u8fdb\uff0cbugfix\u7b49\uff09\u76f4\u63a5\u53d1PR\u5373\u53ef\r\n\r\n2. Fork [VeighNa](https://github.com/vnpy/vnpy) - \u70b9\u51fb\u53f3\u4e0a\u89d2**Fork**\u6309\u94ae\r\n\r\n3. Clone\u4f60\u81ea\u5df1\u7684fork: ```git clone https://github.com/$userid/vnpy.git```\r\n\t* \u5982\u679c\u4f60\u7684fork\u5df2\u7ecf\u8fc7\u65f6\uff0c\u9700\u8981\u624b\u52a8sync\uff1a[\u540c\u6b65\u65b9\u6cd5](https://help.github.com/articles/syncing-a-fork/)\r\n\r\n4. \u4ece**dev**\u521b\u5efa\u4f60\u81ea\u5df1\u7684feature branch: ```git checkout -b $my_feature_branch dev```\r\n\r\n5. \u5728$my_feature_branch\u4e0a\u4fee\u6539\u5e76\u5c06\u4fee\u6539push\u5230\u4f60\u7684fork\u4e0a\r\n\r\n6. \u521b\u5efa\u4ece\u4f60\u7684fork\u7684$my_feature_branch\u5206\u652f\u5230\u4e3b\u9879\u76ee\u7684**dev**\u5206\u652f\u7684[Pull Request] -  [\u5728\u6b64](https://github.com/vnpy/vnpy/compare?expand=1)\u70b9\u51fb**compare across forks**\uff0c\u9009\u62e9\u9700\u8981\u7684fork\u548cbranch\u521b\u5efaPR\r\n\r\n7. \u7b49\u5f85review, \u9700\u8981\u7ee7\u7eed\u6539\u8fdb\uff0c\u6216\u8005\u88abMerge!\r\n\r\n\u5728\u63d0\u4ea4\u4ee3\u7801\u7684\u65f6\u5019\uff0c\u8bf7\u9075\u5b88\u4ee5\u4e0b\u89c4\u5219\uff0c\u4ee5\u63d0\u9ad8\u4ee3\u7801\u8d28\u91cf\uff1a\r\n\r\n  * \u4f7f\u7528[flake8](https://pypi.org/project/flake8/)\u68c0\u67e5\u4f60\u7684\u4ee3\u7801\uff0c\u786e\u4fdd\u6ca1\u6709error\u548cwarning\u3002\u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u8fd0\u884c```flake8```\u5373\u53ef\u3002\r\n\r\n## \u5176\u4ed6\u5185\u5bb9\r\n\r\n* [\u83b7\u53d6\u5e2e\u52a9](https://github.com/vnpy/vnpy/blob/dev/.github/SUPPORT.md)\r\n* [\u793e\u533a\u884c\u4e3a\u51c6\u5219](https://github.com/vnpy/vnpy/blob/dev/.github/CODE_OF_CONDUCT.md)\r\n* [Issue\u6a21\u677f](https://github.com/vnpy/vnpy/blob/dev/.github/ISSUE_TEMPLATE.md)\r\n* [PR\u6a21\u677f](https://github.com/vnpy/vnpy/blob/dev/.github/PULL_REQUEST_TEMPLATE.md)\r\n\r\n## \u7248\u6743\u8bf4\u660e\r\n\r\nMIT\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A framework for developing quant trading systems.",
    "version": "3.9.1",
    "project_urls": {
        "Documentation": "https://www.vnpy.com/docs",
        "Homepage": "https://www.vnpy.com"
    },
    "split_keywords": [
        "quant",
        " quantitative",
        " investment",
        " trading",
        " algotrading"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cd5ed2dc77d4c931c46cc062d68f9af73e5e55479b81a32030974d9ba7ba6304",
                "md5": "aac036a1458607aacf0f5d01cabad58f",
                "sha256": "9e31e786d86aebd42bc4fb0275136924d232373358c2b98b0ec499662f5b208b"
            },
            "downloads": -1,
            "filename": "vnpy-3.9.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "aac036a1458607aacf0f5d01cabad58f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 141524,
            "upload_time": "2024-03-24T08:06:48",
            "upload_time_iso_8601": "2024-03-24T08:06:48.883465Z",
            "url": "https://files.pythonhosted.org/packages/cd/5e/d2dc77d4c931c46cc062d68f9af73e5e55479b81a32030974d9ba7ba6304/vnpy-3.9.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cb7319116ce9584d7dc0bf95ef51e0868d03b5691f27225e3984fe0f7f5db1cf",
                "md5": "89007b83740258d856e1a3bbcaacd093",
                "sha256": "82637b7d0b7f9e0f4a255b2545ee71b29f6d68da80685f3a931dd2bd10759c0a"
            },
            "downloads": -1,
            "filename": "vnpy-3.9.1.tar.gz",
            "has_sig": false,
            "md5_digest": "89007b83740258d856e1a3bbcaacd093",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 138874,
            "upload_time": "2024-03-24T08:06:52",
            "upload_time_iso_8601": "2024-03-24T08:06:52.511088Z",
            "url": "https://files.pythonhosted.org/packages/cb/73/19116ce9584d7dc0bf95ef51e0868d03b5691f27225e3984fe0f7f5db1cf/vnpy-3.9.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-24 08:06:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "vnpy"
}
        
Elapsed time: 0.21131s