By Traders, For Traders.
vn.py是一套基于Python的开源量化交易系统开发框架,于2015年1月正式发布,在开源社区6年持续不断的贡献下一步步成长为全功能量化交易平台,目前国内外金融机构用户已经超过600家,包括:私募基金、证券自营和资管、期货资管和子公司、高校研究机构、自营交易公司、交易所、Token Fund等。
全新的《vn.py全实战进阶》系列在线课程,已经在官方微信公众号[vnpy-community]上线,覆盖CTA策略(已完成)、期权波动率交易(更新中)等内容。购买请扫描下方二维码关注后,点击菜单栏的【进阶课程】按钮即可:
在使用vn.py进行二次开发(策略、模块等)的过程中有任何疑问,请查看vn.py项目文档,如果无法解决请前往官方社区论坛的【提问求助】板块寻求帮助,也欢迎在【经验分享】板块分享你的使用心得!
针对vn.py的金融机构用户,创建了一个专门的【vn.py机构用户群】(QQ群号:676499931),主要分享机构应用方面相关的问题,如:银行间市场接入、资管O32系统、分布式部署等内容。请注意本群只对金融机构用户开放,加群时请注明:姓名-机构-部门。
功能特点
全功能量化交易平台(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用。
覆盖国内外所有交易品种的交易接口(vnpy.gateway):
海外市场
数字货币
特殊应用
开箱即用的各类量化策略交易应用(vnpy.app):
Python交易API接口封装(vnpy.api),提供上述交易接口的底层对接实现。
简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心。
跨进程通讯标准组件(vnpy.rpc),用于实现分布式部署的复杂交易系统。
Python高性能K线图表(vnpy.chart),支持大数据量图表显示以及实时数据更新功能。
社区论坛和知乎专栏,内容包括vn.py项目的开发教程和Python在量化交易领域的应用研究等内容。
官方交流群262656087(QQ),管理严格(定期清除长期潜水的成员),入群费将捐赠给vn.py社区基金。
环境准备
安装步骤
在这里下载最新版本,解压后运行以下命令安装:
Windows
install.bat
Ubuntu
bash install.sh
使用指南
在SimNow注册CTP仿真账号,并在该页面获取经纪商代码以及交易行情服务器地址。
在vn.py社区论坛注册获得VN Station账号密码(论坛账号密码即是)
启动VN Station(安装VN Studio后会在桌面自动创建快捷方式),输入上一步的账号密码登录
点击底部的VN Trader Lite按钮,开始你的交易!!!
注意:
脚本运行
除了基于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)的流程:
创建 Issue - 对于较大的改动(如新功能,大型重构等)最好先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发PR即可
Fork vn.py - 点击右上角Fork按钮
Clone你自己的fork: git clone $userid/vnpy.git
从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!
在提交代码的时候,请遵守以下规则,以提高代码质量:
项目捐赠
过去6年中收到过许多社区用户的捐赠,在此深表感谢!所有的捐赠资金都投入到了vn.py社区基金中,用于支持vn.py项目的运作。
先强调一下:vn.py是开源项目,可以永久免费使用,并没有强制捐赠的要求!!!
捐赠方式:支付宝3216630132@qq.com(*晓优)
长期维护捐赠清单,请在留言中注明是项目捐赠以及捐赠人的名字。
其他内容
文章原创于外盘期货官网:http://www.haoyaya.com.cn/