PandoraTrader
高频量化交易平台 C++ Trade Platform for quant developer 【浮生着甚苦奔忙,量化之路阻且长。 行行代码凝心血,十年辛苦不寻常】
Install / Use
/learn @pegasusTrader/PandoraTraderREADME
PandoraTrader
浮生着甚苦奔忙,量化之路阻且长。 行行代码凝心血,十年辛苦不寻常。
A Trade Platform
起名由来:
据百度百科介绍,Pandora 是希腊神话中赫菲斯托斯用粘土做成的第一个女人。
众神赠予使她拥有更诱人的魅力的礼物:火神赫菲斯托斯给她做了华丽的金长袍;爱神维纳斯赋予她妩媚与诱惑男人的力量;众神使者赫耳墨斯教会了她言语的技能。神灵们每人给她一件礼物,但唯独智慧女神雅典娜拒绝给她智慧。
古希腊语中,潘是所有的意思,多拉则是礼物。“潘多拉”即为“拥有一切天赋的女人”,在此,则寓意为“拥有一切技能的交易平台”。
我们设计这样一个交易平台拥有设计者赋予各种技能,唯独不携带智慧;这个智慧是属于策略设计者的,期待策略设计者设计优秀的策略给予交易软件足够的智慧,能够在飘荡的市场上乘风破浪,挂云帆济沧海。
Star History
平台特色:
基于c++开发,支持多种交易API,跨平台的高频量化交易平台
高效
- c++
- 低延时, 直连柜台,无需其他服务器支持
灵活
- 行情交易接口,作为系统组件,可任意组合
- 行情或交易接口切换,策略无需调整
- 支持多种交易接口,如CTP,QDP,Femas等
易用
- 跨平台支持Linux和Windows
- 友好策略接口,只需关注策略逻辑
- 仓位挂单等信息本地维护,策略可同步获取,简化逻辑
- 支持自动开平模式
- Tick级别回测
安全稳定
- 2017年初稳定运行至今
- 内嵌风控,撤单次数和自成交不再成烦恼
为什么要用PandoraTrader:
组件架构:
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分支支持Centos 7.3,如用Ubuntu系统请自行将Ubuntu文件夹中的库拷贝替换,如遇到不兼容,需要支持其他Linux版本或者别的API组件,可与作者联系(邮件地址:pandoratrader@163.com)!
程序展示
.
commit-push-pr
83.9kCommit, push, and open a PR
