《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个开源量化交易平台开发框架——vnpy。
vn.py是一套基于Python的开源量化交易系统开发框架,它通过一套标准化的交易平台体系,对接国内诸多不同类型的金融市场:证券、期货、期权、外汇、数字货币等,并且使用经过充分实盘检验的量化策略引擎,来完成从数据维护、策略开发、回测研究到实盘自动交易的整个业务流程。
目标用户
-
• 基于Python语言来开发自己的量化交易程序,充分利用Python社区强大的数据研究和机器学习生态
-
• 通过一套标准化的交易平台体系,对接国内外诸多不同类型的金融市场:证券、期货、期权、外盘等
-
• 使用经过充分实盘检验的量化策略引擎,来完成从数据维护、策略开发、回测研究到实盘自动交易的整个业务流程
-
• 对平台进行各种定制扩展,满足个性化的交易需求:增加交易接口,修改GUI图形界面,基于事件驱动引擎开发复杂策略应用
-
• 掌控交易程序的源代码细节,杜绝各种程序后门,避免被窃取策略、截获交易信号、偷盗账号密码等风险
-
• 节约为量化交易平台付出的资金成本,不必再支出上万每年的软件授权费或者每笔成交的额外加点
应用场景
-
• 专业个人投资者:使用VeighNa Trader直连期货公司的CTP期货柜台,实现从策略开发到实盘自动交易的CTA业务流程
-
• 创业型私募:基于RpcService构建服务器端的统一报盘通道,允许交易员在自己的本地电脑自行开发各类交易策略应用
-
• 券商资管部门:对接证券公司统一部署的O32资管系统,基于事件驱动引擎定制开发多策略复杂系统
支持的接口
国内市场
-
• CTP(ctp):期货、期货期权
-
• CTP测试(ctptest):期货、期货期权
-
• CTP Mini(mini):期货、期货期权
-
• 飞马(femas):期货
-
• CTP期权(sopt):ETF期权
-
• 顶点飞创(sec):ETF期权
-
• 顶点HTS(hts):ETF期权
-
• 恒生UFT(uft):期货、ETF期权
-
• 易盛(esunny):期货、黄金TD
-
• 中泰XTP(xtp):A股、两融、ETF期权
-
• 国泰君安统一交易网关(hft):A股、两融
-
• 华鑫奇点股票(torastock):A股
-
• 华鑫奇点期权(toraoption):ETF期权
-
• 中亿汇达Comstar(comstar):银行间市场
-
• 东方证券OST(ost):A股
-
• 融航(rohon):期货资管
-
• TTS(tts):期货
-
• 飞鼠(sgit):黄金TD
-
• 金仕达黄金(ksgold):黄金TD
海外市场
-
• 盈透证券(ib):海外多品种
-
• 易盛9.0外盘(tap):外盘期货
-
• 直达期货(da):外盘期货
特殊应用
量化策略应用
CTA策略 (CtaStrategy):基于策略模板快速开发趋势类量化策略,支持K线和Tick回测,提供多进程和遗传算法参数优化
算法交易 (AlgoTrading):提供多种智能交易算法:TWAP、Sniper、Iceberg、BestLimit、Arbitrage、Grid、DMA等
价差套利 (SpreadTrading):支持一条主动腿和多条被动腿,基于任意价差比例自动计算价差盘口和组合持仓,实现价差算法交易
期权策略 (OptionMaster):针对波动率套利策略,内置波动率曲面计算、组合Greeks风控、自动Delta对冲和波动率算法交易
行情录制 (DataRecorder):根据需求实时录制Tick或者K线行情到数据库中,图形化管理模式,满足策略回测和实盘初始化需求
其他辅助:CTA策略图形化回测(CtaBacktester),CSV数据加载工具(CsvLoader),交易风险管理(RiskManager)等
数据分析图例
安装使用
环境准备
推荐使用vn.py团队为量化交易专门打造的Python发行版VNStudio-2.5.0,内置了最新版的vn.py框架以及VN Station量化管理平台,无需手动安装
支持的系统版本:Windows 7以上/Windows Server 2008以上/Ubuntu 18.04 LTS
支持的Python版本:Python 3.7 64位(注意必须是Python 3.7 64位版本)
安装
从https://github.com/vnpy/vnpy/releases下载安装包并解压
Windows:install.bat
Ubuntu:bash install.sh
MacOS:bash install_osx.sh
使用
1、在SimNow注册CTP仿真账号,并获取经纪商代码以及交易行情服务器地址。
2、在vn.py社区论坛注册获得VN Station账号密码并启动VN Station
3、点击底部的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()
-
运行
python run.py
—END—
开源地址:https://github.com/vnpy/vnpy
开源协议:MIT
原文始发于微信公众号(开源技术专栏):基于Python的开源量化交易系统开发框架
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/53808.html