# vnapi **Repository Path**: jollylog/vnapi ## Basic Information - **Project Name**: vnapi - **Description**: VNAPI接口架构采用金融行业标准的上海期货交易所(以下简称上期)CTP接口架构,回调函数名称与CTP架构也较为一致。(注:上期CTP 接口支持国内8大合规交易所中的5所 ,支持商品期货、股指期货、商品期权、股指期权,但不提供证券A股行情,CTP架构已成为金融行业接口标准, 大部分券商给用户提供的行情接口都是基于模仿CTP架构设计的。) - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: https://www.vnpy.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2023-10-31 - **Last Updated**: 2023-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VNAPI #### 一、Python CTP开源框架(2017年被诽谤版)介绍: ![https://gitee.com/vnpypro/vnapi/raw/master/vnapi/image/1.png](https://gitee.com/vnpypro/vnapi/raw/master/vnapi/image/1.png) VNAPI ![效果](https://gitee.com/vnpypro/vnapi/raw/master/vnapi/image/jg.png) 标准CTP架构 C++ Demo架构图 微信扫码右方微信公众号,保持联系 ![https://images.gitee.com/uploads/images/2021/1127/144239_33e658b5_1204097.png](https://images.gitee.com/uploads/images/2021/1127/144239_33e658b5_1204097.png) 时隔6年,VNPY再次推出vnapi python ctp框架,该版本是在2017年被诽谤版基础上的版本,已更新到较新的CTP6.6.1版, ,这个产品定位是作抛砖引玉之用,适合用户学习Python量化和扩展功能。 提供以下例子 1. 读配置文件订阅行情下单交易例子、成交回报、登录回调、结算单回调 2. 查询6种持仓和可用资金,权益的例子 3. 查询合约保证金比例的例子 4. 登录、退出登录、订阅行情、取消订阅行情 5. 读配置文件2种下单方式交易例子 6. 价差套利交易例子 7. 控制台TIck数据采集源代码 直接运行demo.py开始采集数据,保存至TickData_Detail文件夹内,以csv文件格式保存 支持多品种同时采集 VNAPI接口架构采用金融行业标准的上海期货交易所(以下简称上期)CTP接口架构,回调函数名称与CTP架构也较为一致。(注:上期CTP 接口支持国内8大合规交易所中的5所 ,支持商品期货、股指期货、商品期权、股指期权,但不提供证券A股行情,CTP架构已成为金融行业接口标准, 大部分券商给用户提供的行情接口都是基于模仿CTP架构设计的。) #### 为什么要再发这个产品 (1)我是quant林,早年供职于上海的量化私募,后于2017年推出的免费Python期货CTP接口开源框架,采用GPLV3开源协议,简单易学, 适合学习入门和扩展开发,就在1.0版发布后不久,我的vnapi 1.0(当时不叫vnapi)就遭受了非法金融经营者的不实舆论攻击,他们甚至诽谤文下方还放上非法金融相关产品广告。 从那次被诋毁到现在2.10版的重新推出已过了快7年,人生又有几个7年? 由于非法金融具有伪装性和渗透性,前几年利用开源开源旗号不断侵蚀我国合规金融市场,某币圈网红公开宣传非法金融, 其带有非法金融交易功能的软件甚至短暂的上了某期货公司官网,后他们又于2021年11月被上海证监局调查。 在过去7年中,我在打击非法金融的战线上贡献了自己的力量,付出了大量时间和精力的代价,说不清楚这样做是为了自救, 还是别的原因,但我忠心的希望金融从业者们牢记合规底线,勿给非法金融可趁之机。 为记住那段历史,本次发布的vnapi2.10 期货CTP接口底层代码,正是源于2017年4月的1.0开源版本的稍作整理,已升级到最新的CTP版本, 1.0版就是被诋毁造谣的那个版本,vnapi改名前的1.0 版本曾被北京大学出版社《python3.x全栈开发》收录并重点介绍, 现在vnapi2.0作为一款Python CTP接口的框架,和当初1.0一样,是基于Ctypes技术,简单易学,主要目的是为了为开发者 提供一个通俗易懂的python后端开源框架,并非为了提供一款面面俱到的商业产品,适合入门学习和在此基础上继续拓展开发。 我还采用PyQt技术开发为前端开发的 vntrader6客户端(https://www.vnpy.cn), 基于我开发的vnapi的另一个回调版本, 面向的是专业机构客户,VNTrader系列可以说在vnapi 1.0后端框架技术上迭代产生的, 当初的1.0,和今天发布的2.0,以及VNTrader、Virtualapi产品均属于我和上海量贝软件的原创产品, 我于2014年还获得基于AR增强现实技术的国家发明专利一项。 我另有正在申请3项量化交易发明专利,这些技术已授予用于上海量贝作为技术积累可用于商业技术开发。 也希望谣言发布者们知晓,靠谣言诋毁一个执迷于技术的程序员和技术创业者是不可能成功的。 承载着7年的维权经历与梦想,引来了vnapi2.10版本的发布,这个产品定位是作抛砖引玉之用,适合用户学习Python量化和扩展功能, 而非堆砌功能,请各位以宽容的眼光去对待他。 (2)vnapi 遵循 开源协议GPL v3 简单的说:对基于GPL v3协议的源代码,若个人或机构仅仅是自己使用,则可以闭源。 若基于该开源代码,开发出程序或衍生产品用于商业行为则也需开源。 官方网站:http://www.vnpy.cn ####二、 Quant林作品 Virtualapi 仿真回测API接口介绍: 仿真回测接口和配套数据可免费下载,该量化交易回测方案正申请国家发明专利。 ![效果](http://www.vnapi.cn/img2/s06.jfif) ![效果](http://www.vnapi.cn/img2/s03.jpg) ![效果](http://www.vnapi.cn/img2/s02.jpg) 由于仿真接口同时需要行情和交易接口的实现,而作为行情服务商不能提供交易接口,所以交易接口暂时按上海期货交易所的CTP接口方式实现(上期所CTP接口同时提供了行情和交易,而A股程序化接口通常由券商按合规要求提供),这样就完成了量化仿真回测的闭环。 对量化开发者而言,行情数据接口形式不同决定了策略开发模式的不同,而在采用不同交易接口实现时代码仅有微小区别。所以在VNPY仿真回测后接入生产环境实盘时可按合规要求替换为自己交易接口即可简单实现。 ![效果](http://www.vnapi.cn/img2/s04.gif) 标准CTP架构 C++ Demo架构图 ![效果](http://www.vnapi.cn/img2/s05.gif) 仿真回测 C++ Demo架构图 上期CTP结口资源列表 http://www.virtualapi.cn/download.html 实盘开通CTP接口 http://www.kaihucn.cn 上期CTP原生接口只提供C+++ API, 其他编程语言都是由第三方个人或公司封装的框架,比如Python框架,JAVA框架,C#框架等。而VNAPI也计划在提供原生C++ API基础上会适当封装一些其他语言的开源框架,开源链接可以在 http://www.vnapi.cn 找到。 关于仿真回测数据文件 VNAPI仿真数据回测接口的数据文件是在本地存储,由配置文件指定存储路径,API会自动读取路径数据文件进行行情数据回放。 kdata 目录下是沪深A股1分钟周期的K线数据,是和 http://www.vnapi.cn 仿真回测接口匹配数据。 setting目录下是个股回测用的数据文件列表,比如list_000001.csv是股票000001数据文件列表,数据文件列表指定数据文件按交易日由先到后排序,在仿真回测时会依次被仿真回测dll文件读取回放历史行情数据。 allfile.csv保存了kdata目录所有的数据文件,供备用。 #### 软件架构 软件架构说明 VNAPI采用和上海期货交易所CTP接口相同架构,也是采用了金融行业的接口标准。 #### 安装教程 1. 目前仅提供Windows API; 2. 数据格式采用CSV格式; #### 使用说明 1. VNAPI目前提供基于C++ API 的Demo,以后会Python,JAVA等框架,也有计划提供分布式回测框架。 目前仿真是基于1分钟K线的 ,也请按上述官方联系方式联系。 2. 对Python接口,可以参考CTP的Python框架,比如VN.PY,Python等 3. 对JAVA接口,可参考CTP的JAVA框架,以后可能官方提供。 4. 对C#接口,可参考老版本的海风C#版CTP框架。 5. CTP原生接口可以在 http://www.virtualapi.cn/download.html 找到资源,提供链接是为了便于大家理解CTP架构,文档非常详细。 #### 参与贡献 1. Fork 本仓库 2. 新建分支 3. 提交代码 4. 新建 Pull Request