开源期货软件开发-期货软件 开源
介绍
VNPY是VNPY官方推出的一款国内期货量化交易开源软件。 VNPY隶属于上海良贝信息技术有限公司,是国内使用的综合性开源量化交易框架。 我公司上海良贝信息技术有限公司是中国大陆从事量化相关软件的信息及软件服务企业。 公司位于上海。 在国内市场,我们的客户定位包括个人量化交易爱好者、高校、证券公司、基金管理公司。 、银行和投资公司等金融企业。
精通量化,从回测开始,VNPY官方系列量化交易软件产品紧跟金融市场日新月异的发展,不断开拓新领域,不断延伸新的产品和服务策略。 在金融领域,我公司建立了完整的产品系列。
下图是VPNY窗口,代码开源
回测过程中,双击参数记录显示参数组资金曲线
登录后点击上方的“FORK”按钮,选择FORK。 开源托管页面:
《CTP接口视频教程》
《VNPY操作演示视频》
加入VNHub量化社区,开设个人量化专栏
目前,VNPY在大家的不断迭代和努力下不断更新和成熟。 使用GIT工具更新更方便。
QQ群:256163463
VNPY官方微信公众号
VNPY开源版,推荐使用PyCharm+Anacanda配置环境进行开发环境安装。 VNPY需要的插件有: PyQT5, pyqtgraph, numpy, pandas, Talib 除了Talib,Anacanda默认的base configuration已经包含了这些插件,不需要安装。 由于Anacanda内置了Python环境,所以不需要自己安装Python。 可以理解为Anacanda是Python安装包的超集,实现了插件间的兼容,推荐使用。 Talib安装包下载:其他参考文章
《VNPY开发环境快速入门教程》、《VNPY新手FAQ》、《VNPY 3.0架构图》、《VNPY攻略自动生成回测文件功能代码解析》、《为什么VNPY 3.0以后的版本不使用数据库设计架构?》 VNPY3.0 5种调用行情数据的方法》
以上6篇文章均在此链接
如果您支持我们的开源项目,请点击上方的“Fork”按钮。 为了及时更新代码,推荐使用Gitdesktop软件差异更新项目,这样就不用每次都下载压缩包了。 《VNTrader开源项目采用Github Desktop差异更新代码步骤》
VNPY官网VNTA证券期货程序
VNPY 官方 VNTrader
(基于期货CTP接口的量化交易开源软件)
《VNPY正式发布VNTrader期货CTP框架开发环境配置快速入门教程》
关于VNPY的架构,得益于近年来量化交易、大数据、人工智能等技术的发展,Python已经在2022年的编程语言榜单中名列第一。 对于金融工程等专业,Python语言是在校期间学习的,所以无论是从招聘专业人才的角度,还是对开发效率的要求,Python语言都是首选。 Python 在量化交易领域,近90%的专业机构使用Python开发量化策略。
虽然 Python 并不完美,但我们选择编程语言是因为它的优点。 Python结合底层C++开发,弥补了Python的不足。 C++封装的DLL文件成为原生CTP API的桥梁。 通过Python向C++ DLL注册回调函数,C++回调即可触发Python的回调。 它不仅仅针对某个Python版本像C++调用Python。 在数据方面,我们放弃了数据库,因为经过测试CSV的读取性能是MSSQL等关系型数据库的100倍。 即便是时序数据库和NOSQL也远远落后于csv文件的读取速度,更快的性能,返璞归真,简化开发环境是VNPY3.0及以后版本使用csv文件存储数据的原因。
目录说明:
strategy 策略存放目录 temp CTP接口setting.ini 账号和服务器配置文件生成的临时流文件存放目录
#### 最后一个 CTP 本地 API
thostmduserapi_se.dllCTP接口 原生市场接口,在VNPY客户端代码中 thosttraderapi_se.dllCTP接口 原生交易接口,在VNPY客户端代码中 thostmduserapi_se.lib只存在于编译vnctpmd.dll的C++代码中 thosttraderapi_se.lib只存在于编译vnctpmd ThostFtdcMdApi中。 .dll的C++代码中的h只存在于编译vnctpmd.dll和vnctptd.dll的C++代码中 ThostFtdcTraderApi.h只存在于编译vnctpmd.dll和vnctptd.dll的C++代码中.dll和vnctptd.dll的C++代码中的.h只存在于编译vnctpmd.dll和vnctptd.dll的C++代码中
####VNPY模块 以下文件均在VPNY客户端代码中
VNTrader.py 启动程序包括入口方法main()。 注意项目目录下有一个.idea目录。 这是 PyCharm 等 IDE 读取的配置文件。 主要配置ui.example_pyqt5_ui.py路径,必读。 ,必须以VNTrader.py为父进程开源期货软件开发,不能以IDE为父进程,这需要注意启动方式,否则会提示如下错误。 追溯(最近调用最后):文件“D:/vntrader-master/VNTrader/VNTrader/VNTrader.py”,第 20 行,在 import ui.example_pyqt5_ui as example_uiModuleNotFoundError: No module named 'ui.example_pyqt5_ui'
觉得环境建不起来? 最有可能的原因是没看懂进程的根目录是什么,与Python、pycharm、Anacanda的安装环境无关。
先说“进程路径”的概念。 如果先打开Pycharm,再用Pycharm打开项目,Pycharm的IDE进程就是父进程。 Pycharm安装目录被识别为进程目录,而这个目录没有工程文件,自然找不到工程文件ui.example_pyqt5_ui.py,同时找不到IDE配置文件.idea目录。
这是windows的进程概念,与Python和项目无关。 正确的方法是双击VNTrader.py打开工程。 此时VNTrader.py进程为父进程,会从VNTrader.py路径为根目录读取模块和配置文件。
很多用户不理解进程路径的概念。 很明显,Python、pycharm、Anacanda环境都安装好了,但是无法正常运行。
如何正确启动VNPY程序:当IDE(如Pycharm)未运行时,双击VNTrader.py启动Pycharm(操作系统会以VNTrader.py为父进程,读取.idea目录配置VNTrader.py 目录下的文件,以及该目录下的所有文件)。
还有一种不推荐的方法:配置Windows全局系统环境路径字段,但是不推荐这种方法,因为插件太多,处理起来太麻烦,每台运行项目的电脑都要设置。 ui.example_pyqt5_ui文件路径为:VNTrader(CTP6.6.1)\QDarkStyleSheet-master\example\ui\example_pyqt5_ui.py
module_backtest.pymodule_backtestreport.pymodule_backtestwindow.pymodule_combinekline.pymodule_config.pymodule_instrumentgroup.pymodule_kline.pymodule_md.pymodule_myindicatrix.pymodule_strategy.pymodule_strategybacktestprocess.pymodule_strategyprocess.pymodule_talib.pymodule_td。
####Ctypes技术开发的代理DLL(代码开源) 以下文件均在VNPY客户端代码中
vnctpmd.pyPython ctypes封装; vnctpmd.dllCTP接口原生交易接口代理库,用于配合ctypes方式封装的CTPMarket.py参考; vnctpmd.inivnctptd.pyPython ctypes封装; vnctptd.dllCTP接口原生交易接口代理库,用ctypes打包的CTPTrader参考; vnctptd.inivnctpmdType661.py Python类型定义,对应CTP6.6.1版本; vnctptdType661.pyPython类型定义,对应CTP6.6.1版本;
####K线补全服务(可选服务,此API可独立使用) 以下文件均在VNPY客户端代码中,因为使用了SSL,依赖库需要安装VC2013运行库64位版本,否则会提示找不到vnklineservice.dll
vnklineservice.pyvnklineservice.dllvnklineservice.ini
基于GPLV3开源协议,任何组织和个人都可以免费下载使用,无需付费。
请注意,您需要在期货开盘时间前后20分钟登录CTP接口服务器。 期货开市时间为9:00-11:30、1:30-15:00、21:00-2:30
模拟账户支持(支持股指期货、股指期权、商品期货、商品期权模拟交易)(网站只能在工作日白天访问,其他时间关闭网站)
基于CTP接口的开源特性,打破了付费软件的垄断,使用VNTrader开源项目也可以解决自制轮子带来的周期长、门槛高的问题。 VNTrader是专门针对商品期货CTP界面的GUI窗口程序。 支持多种Python策略组成策略池开源期货软件开发,支持回测,支持多周期量化交易。
注意目前的行情服务器是SIMNOW模拟的,所以数据可能不正确。 8月底,实时行情K线服务与SIMNOW将分开服务。
VNPY官方提供的CTP开源项目客户端源码支持国内149家期货公司的CTP接入,支持股指期货、股指期权、商品期货、商品期权程序交易和量化交易模拟回测。
全新架构,性能再次升级,python的便捷,C++的性能,比老版本好用,性能大幅提升。 属于VNPY正式发布的重点新架构产品。
VNTrader的Python和底层C++代码全部开源,这是一个性能提升很大的大版本
VNPY官网
划重点:未来VNTrader继承的强大功能与旧版本完全不同。 该版本不仅性能卓越、开源,而且结合了C++的特性和底层模拟(获得国家发明专利),成为最好的程序化交易利器。
摒弃历史上出现过的大杂烩版本,国内商品期货、股指期货程序化交易CTP接口专属版,本着“简单、高性能、精细回测、功能强大、入门更简单”的特点”。
软件架构
软件架构说明
需要安装的模块 Python3.0 + PyQT5 + numpy+ pandas + qdarkstyle+pyqtgraph
蟒蛇下载
下载 Pycharm
除了通过Pycharm安装模块(有时点击“Plugins”->“+”并不能正常显示可安装模块),还可以通过anacoda安装模块
默认英文版,安装中文版插件即可
注意:Python、IDE、VNTrader DLL模块必须一致,必须同时是32位或64位。
支持Windows平台
安装教程 安装Python3.0 安装Pycharm 在Pycharm中安装PyQT插件 在Pycharm中,菜单“运行”->“运行”说明
VNTrader是VNPY官方推出的一款国内期货量化交易开源软件。 主要支持CTP接口,支持国内149家期货公司的程序化交易。 程序化交易是免费的。 支持股指期货、商品期货、股指期权、商品期权,支持中国8大合规交易所中的5家,包括上海期货交易所、大连期货交易所、郑州期货交易所、中国金融服务交易所、能源交易所。
参与贡献Fork本仓库新建Feat_xxx分支提交代码新建Pull Request