在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:PandoraTrader开源软件地址:https://gitee.com/wuchangsheng/PandoraTrader开源软件介绍:PandoraTraderA Trade Platform起名由来:据百度百科介绍,Pandora 是希腊神话中赫菲斯托斯用粘土做成的第一个女人。 平台特色:基于c++开发,支持多种交易API,跨平台的高频量化交易平台 高效
灵活
易用
安全稳定
组件架构:PandoraTrader平台架构如下图所示,用户策略是程序的核心,各个组件相互配合,都是为用户策略服务。 用户策略(User Strategy)可以通过Pandora策略平台订阅行情,获取持仓,挂单,合约信息等;可以下单,撤单;策略平台会通过回调通知的方式,通知用户策略。 Pandora策略平台,通过实盘交易接口 Trade API 和MarketData API的组件可以连接到期货公司的柜台,通过这两个组件,实现行情订阅,下单和撤单等操作。 Pandora策略平台,通过回测交易接口,SimTrade API和SimMdAPI,可以连接到回测平台(PandoraSimulator)。 模块连接示意图 用户策略 ┌────────────────────────────┐ │ │ │ User Strategy │ │ │ └────────────────────────────┘ | | | Get Info Orders Call Back 获取信息 报撤单 回调通知 | | | 策略平台(内嵌风控) 回测模拟系统 ┌────────────────────────────────┐ ┌───────────────────────┐ | | | | | |-----Sim Trade API-----| | | Pandora Basic Strategy | | PandoraSimulator | | |-----Sim Md API--------| | | | | | └────────────────────────────────┘ └───────────────────────┘ | | Trade API MD API 交易接口 行情接口 | | 期货公司 柜台(CTP, QDP etc.) ┌────────────────────────────────┐ | | | broker | | CTP QDP Femas etc. | | | └────────────────────────────────┘ | | | | CFFEX SHFE DCE ZCE 中金所 上期所 大商所 郑商所 该平台对交易策略进行抽象,提供统一的中间层接口给策略,策略需要的信息都通过平台提供的中间层进行访问,不关注交易接口的细节,从而实现策略开发和交易接口开发的分离。同一个策略通过调整交易接口组件,改变交易柜台,甚至是进行回测模拟。可以有效验证策略逻辑的正确性。上图中的Trade API可以替换成飞马,QDP等柜台的api,交易api替换,策略可以不用调整。MD API同样可以替换成别的api,甚至是组播,广播数据。平台支持 Linux 版本,develop分支支持Ubuntu,如遇到不兼容,需要支持其他Linux版本或者别的API组件,可与作者联系(邮件地址:[email protected])! 程序展示仓库路径
分支说明
目录结构: PANDORATRADER │ PandoraTrader.sln │ README.md │ ├─Interface │ ├─lib-----------------------------------------------------平台支持库文件 │ │ ├─Debug │ │ │ │ │ ├─Release │ │ │ │ │ └─X64 │ │ ├─Debug │ │ │ │ │ └─Release │ │ │ ├─include-------------------------------------------------平台公共头文件 │ │ │ ├─CTPTradeApi64-------------------------------------------X64 CTP API 6.3.15 │ │ │ └─CTPTradeApi32-------------------------------------------Win32 CTP API 6.3.15 │ ├─PandoraTrade-----------------------------------------------实盘交易程序 │ ReadMe.txt │ PandoraTrader.vcxproj │ stdafx.cpp │ stdafx.h │ targetver.h │ PandoraTrader.vcxproj.user │ PandoraTraderConfig.xml-------------------------------策略交易配置文件,负责配置行情(前置地址,用户,密码等),交易(前置地址,用户,密码,授权等),策略配置文件等 │ PandoraDemoStrategyTrader.cpp-------------------------策略交易平台主程序,负责实例化策略,行情和交易,并初始化他们 │ ├─PandoraSimulator-------------------------------------------回测验证程序 │ PandoraSimulator.vcxproj │ PandoraSimulator.vcxproj.user │ PandoraSimulator.vcxproj.filters │ PandoraSimulator.cpp----------------------------------回测平台主程序,负责实例化回测系统,包括策略,模拟交易模块和模拟撮合等 │ HisMarketDataIndex.xml--------------------------------回测历史数据文件表 │ PandoraSimulatorConfig.xml----------------------------回测使用配置文件 │ ├─PandoraStrategy--------------------------------------------用户策略库 │ PandoraStrategy.vcxproj │ PandoraStrategy.vcxproj.user │ PandoraStrategy.vcxproj.filters │ cwEmptyStrategy.cpp---------------------------------------空策略cpp │ cwEmptyStrategy.h-----------------------------------------空策略(啥操作都不执行,用于检验连接登录等)的头文件 │ cwStrategyDemo.h------------------------------------------演示策略头文件 │ cwStrategyDemo.cpp----------------------------------------演示策略cpp │ └─cwStrategys------------------------------------------------系统策略库,提供编写好的策略以及必要的支撑 │ ├─include │ cwMarketDataBinaryReceiver.h-----------------------二进制形式数据接收存储策略 │ cwMarketDataReceiver.h-----------------------------csv形式数据接收存储策略 │ └─lib-----------------------------------------------------回测模拟器和策略的库文件 ├─X64 │ ├─Debug │ │ │ └─Release │ ├─Debug │ └─Release 快速入门:这是为了您能够快速使用该平台的介绍说明。 如果您在Linux下使用,请您从develop分支上获取最新内容,使用CMAKE,G++来编译工程 git clone -b develop https://github.com/pegasusTrader/PandoraTrader.git 进入工程目录后: 编译debug: mkdir builddebug cd builddebug cmake -DCMAKE_BUILD_TYPE=DEBUG .. make 编译Release: mkdir buildrelease cd buildrelease cmake -DCMAKE_BUILD_TYPE=RELEASE .. make 如果您在Windows下使用,建议您用visual studio来做工程管理和编译,按配置好的工程快速开始Pandora量化之旅。
如果需要历史数据,可以用cwMarketDataReceiver或cwMarketDataBinaryReceiver提供的类,作为策略类编译一个行情存储程序。用计划任务的方式定时启动,来收取历史数据。cwMarketDataReceiver存下csv文件,cwMarketDataBinaryReceiver存下的是bin的二进制文件。这两个策略要正确配置行情和交易配置信息,因为需要从交易柜台获取当前有交易合约,从而实现自动订阅合约。也可以自行编写行情存储程序来自动收行情,程序启动之后,从交易spi中获取合约信息,订阅行情,然后将行情存储下来。Simulator定义的行情csv文件列如下 Localtime,MD,InstrumentID,TradingDay,UpdateTime,UpdateMillisec,LastPrice,Volume,LastVolume,Turnover,LastTurnover,AskPrice5,AskPrice4,AskPrice3,AskPrice2,AskPrice1,BidPrice1,BidPrice2,BidPrice3,BidPrice4,BidPrice5,AskVolume5,AskVolume4,AskVolume3,AskVolume2,AskVolume1,BidVolume1,BidVolume2,BidVolume3,BidVolume4,BidVolume5,OpenInterest,UpperLimitPrice,LowerLimitPrice 策略开发用户策略可以是一个空白策略,什么都不做处理;可以是一个工具性策略,比如自动止盈止损程序;可以是一个配对交易策略(Pairs Trading);甚至可以是一个做市商策略。可以套利套保,可以做波段,甚至是高频做市商。 致谢
建议反馈:如果有什么疑问和建议,您可以发送有邮件给[email protected]于作者取得联系。欢迎加入QQ群(615093081)参与讨论。 捐赠如果您喜欢这个项目,您可以在您经济允许情况下对该项目进行捐赠,以帮助和激励作者们更好地维护这项目。 全部评论
专题导读
上一篇:LeyeOA: LeyeOA 是一个基于 JDBC SERVLET JSP MYSQL 等技术开发的 简易OA 办公自动化 ...发布时间:2022-03-25下一篇:react-amap: 基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中。 ...发布时间:2022-03-25热门推荐
热门话题
阅读排行榜
|
请发表评论