Package: vnpy
VeighNa - By Traders, For Traders.💬 Want to read this inenglish? GohereVeighNa是一套基于Python的开源量化交易系统开发框架，在开源社区持续不断的贡献下一步步成长为多功能量化交易平台，自发布以来已经积累了众多来自金融机构或相关领域的用户，包括私募基金、证券公司、期货公司等。:rocket: :rocket: :rocket:面向专业交易员的【VeighNa Elite量化终端】已经正式发布，针对专业交易员群体在海量策略并发、智能移仓换月、算法拆单执行、多账户交易支持等方面的需求提供了完善支持。了解更详细的信息请扫描下方二维码关注后，点击菜单栏的【社区交流 -> Elite会员服务】即可：在使用VeighNa进行二次开发（策略、模块等）的过程中有任何疑问，请查看VeighNa项目文档，如果无法解决请前往官方社区论坛的【提问求助】板块寻求帮助，也欢迎在【经验分享】板块分享你的使用心得！针对VeighNa的金融机构用户，创建了一个专门的【VeighNa机构用户群】（QQ群号：676499931），主要分享机构应用方面相关的问题，如：银行间市场接入、资管O32系统、分布式部署等内容。请注意本群只对金融机构用户开放，加群时请注明：姓名-机构-部门。功能特点多功能量化交易平台（trader），整合了多种交易接口，并针对具体策略算法和功能开发提供了简洁易用的API，用于快速构建交易员所需的量化交易应用。覆盖国内外所拥有的下述交易品种的交易接口（gateway）：国内市场CTP（ctp）：国内期货、期权CTP Mini（mini）：国内期货、期权CTP证券（sopt）：ETF期权飞马（femas）：国内期货恒生UFT（uft）：国内期货、ETF期权易盛（esunny）：国内期货、黄金TD顶点飞创（sec）：ETF期权顶点HTS（hts）：ETF期权中泰XTP（xtp）：国内证券（A股）、ETF期权华鑫奇点（tora）：国内证券（A股）、ETF期权国泰君安（hft）：国内证券（A股、两融）东证OST（ost）：国内证券（A股）东方财富EMT（emt）：国内证券（A股）飞鼠（sgit）：黄金TD、国内期货金仕达黄金（ksgold）：黄金TD融航（rohon）：期货资管杰宜斯（jees）：期货资管中汇亿达（comstar）：银行间市场掘金（gm）：国内证券（仿真）恒生云UF（uf）：国内证券（仿真）TTS（tts）：国内期货（仿真）海外市场Interactive Brokers（ib）：海外证券、期货、期权、贵金属等易盛9.0外盘（tap）：海外期货直达期货（da）：海外期货特殊应用RQData行情（rqdata）：跨市场（股票、指数、ETF、期货）实时行情RPC服务（rpc）：跨进程通讯接口，用于分布式架构覆盖下述各类量化策略的交易应用（app）：cta_strategy：CTA策略引擎模块，在保持易用性的同时，允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制（降低交易滑点、实现高频策略）cta_backtester：CTA策略回测模块，无需使用Jupyter Notebook，直接使用图形界面进行策略回测分析、参数优化等相关工作spread_trading：价差交易模块，支持自定义价差，实时计算价差行情和持仓，支持价差算法交易以及自动价差策略两种模式option_master：期权交易模块，针对国内期权市场设计，支持多种期权定价模型、隐含波动率曲面计算、希腊值风险跟踪等功能portfolio_strategy：组合策略模块，面向同时交易多合约的量化策略（Alpha、期权套利等），提供历史数据回测和实盘自动交易功能algo_trading：算法交易模块，提供多种常用的智能交易算法：TWAP、Sniper、Iceberg、BestLimit等script_trader：脚本策略模块，面向多标的类量化策略和计算任务设计，同时也可以在命令行中实现REPL指令形式的交易，不支持回测功能paper_account：本地仿真模块，纯本地化实现的仿真模拟交易功能，基于交易接口获取的实时行情进行委托撮合，提供委托成交推送以及持仓记录chart_wizard：K线图表模块，基于RQData数据服务（期货）或者交易接口获取历史数据，并结合Tick推送显示实时行情变化portfolio_manager：交易组合管理模块，以独立的策略交易组合（子账户）为基础，提供委托成交记录管理、交易仓位自动跟踪以及每日盈亏实时统计功能rpc_service：RPC服务模块，允许将某一进程启动为服务端，作为统一的行情和交易路由通道，允许多客户端同时连接，实现多进程分布式系统data_manager：历史数据管理模块，通过树形目录查看数据库中已有的数据概况，选择任意时间段数据查看字段细节，支持CSV文件的数据导入和导出data_recorder：行情记录模块，基于图形界面进行配置，根据需求实时录制Tick或者K线行情到数据库中，用于策略回测或者实盘初始化excel_rtd：Excel RTD（Real Time Data）实时数据服务，基于pyxll模块实现在Excel中获取各类数据（行情、合约、持仓等）的实时推送更新risk_manager：风险管理模块，提供包括交易流控、下单数量、活动委托、撤单总数等规则的统计和限制，有效实现前端风控功能web_trader：Web服务模块，针对B-S架构需求设计，实现了提供主动函数调用（REST）和被动数据推送（Websocket）的Web服务器Python交易API接口封装（api），提供上述交易接口的底层对接实现。REST Client（rest）：基于协程异步IO的高性能REST API客户端，采用事件消息循环的编程模型，支持高并发实时交易请求发送Websocket Client（websocket）：基于协程异步IO的高性能Websocket API客户端，支持和REST Client共用事件循环并发运行简洁易用的事件驱动引擎（event），作为事件驱动型交易程序的核心。对接各类数据库的适配器接口（database）：SQL类SQLite（sqlite）：轻量级单文件数据库，无需安装和配置数据服务程序，VeighNa的默认选项，适合入门新手用户MySQL（mysql）：主流的开源关系型数据库，文档资料极为丰富，且可替换其他NewSQL兼容实现（如TiDB）PostgreSQL（postgresql）：特性更为丰富的开源关系型数据库，支持通过扩展插件来新增功能，只推荐熟手使用NoSQL类DolphinDB（dolphindb）：一款高性能分布式时序数据库，适用于对速度要求极高的低延时或实时性任务Arctic（arctic）：高性能金融时序数据库，采用了分块化储存、LZ4压缩等性能优化方案，以实现时序数据的高效读写TDengine（taos）：分布式、高性能、支持SQL的时序数据库，带有内建的缓存、流式计算、数据订阅等系统功能，能大幅减少研发和运维的复杂度TimescaleDB（timescaledb）：基于PostgreSQL开发的一款时序数据库，以插件化扩展的形式安装，支持自动按空间和时间对数据进行分区MongoDB（mongodb）：基于分布式文件储存（bson格式）的文档式数据库，内置的热数据内存缓存提供更快读写速度InfluxDB（influxdb）：针对TimeSeries Data专门设计的时序数据库，列式数据储存提供极高的读写效率和外围分析应用LevelDB（leveldb）：由Google推出的高性能Key/Value数据库，基于LSM算法实现进程内存储引擎，支持数十亿级别的海量数据对接下述各类数据服务的适配器接口（datafeed）：迅投研（xt）：股票、期货、期权、基金、债券米筐RQData（rqdata）：股票、期货、期权、基金、债券、黄金TD恒生UData（udata）：股票、期货、期权TuShare（tushare）：股票、期货、期权、基金万得Wind（wind）：股票、期货、基金、债券天软Tinysoft（tinysoft）：股票、期货、基金、债券同花顺iFinD（ifind）：股票、期货、基金、债券天勤TQSDK（tqsdk）：期货跨进程通讯标准组件（rpc），用于实现分布式部署的复杂交易系统。Python高性能K线图表（chart），支持大数据量图表显示以及实时数据更新功能。社区论坛和知乎专栏，内容包括VeighNa项目的开发教程和Python在量化交易领域的应用研究等内容。官方交流群262656087（QQ），管理严格（定期清除长期潜水的成员），入群费将捐赠给VeighNa社区基金。注：以上关于功能特点的说明为根据说明文档发布时情况罗列，后续可能存在更新或调整。若功能描述同实际存在出入，欢迎通过Issue联系进行调整。环境准备推荐使用VeighNa团队为量化交易专门打造的Python发行版VeighNa Studio-3.9.0，集成内置了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）安装步骤在这里下载Release发布版本，解压后运行以下命令安装：Windowsinstall.batUbuntubash install.shMacosbash install_osx.sh注意：setup.cfg中列举了VeighNa框架安装所需的依赖库，requirements.txt中给出了这些依赖库的推荐安装版本。使用指南在SimNow注册CTP仿真账号，并在该页面获取经纪商代码以及交易行情服务器地址。在VeighNa社区论坛注册获得VeighNa Station账号密码（论坛账号密码即是）启动VeighNa Station（安装VeighNa Studio后会在桌面自动创建快捷方式），输入上一步的账号密码登录点击底部的VeighNa Trader按钮，开始你的交易！！！注意：在VeighNa Trader的运行过程中请勿关闭VeighNa Station（会自动退出）脚本运行除了基于VeighNa Station的图形化启动方式外，也可以在任意目录下创建run.py，写入以下示例代码：fromvnpy.eventimportEventEnginefromvnpy.trader.engineimportMainEnginefromvnpy.trader.uiimportMainWindow,create_qappfromvnpy_ctpimportCtpGatewayfromvnpy_ctastrategyimportCtaStrategyAppfromvnpy_ctabacktesterimportCtaBacktesterAppdefmain():"""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）的流程:创建 Issue- 对于较大的改动（如新功能，大型重构等）建议先开issue讨论一下，较小的improvement（如文档改进，bugfix等）直接发PR即可ForkVeighNa- 点击右上角Fork按钮Clone你自己的fork:git clone https://github.com/$userid/vnpy.git如果你的fork已经过时，需要手动sync：同步方法从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!在提交代码的时候，请遵守以下规则，以提高代码质量：使用flake8检查你的代码，确保没有error和warning。在项目根目录下运行flake8即可。其他内容获取帮助社区行为准则Issue模板PR模板版权说明MIT