对于一个开源 Python 量化交易平台项目的建议有哪些?

论坛 期权论坛 期权     
用Python的交易员   2018-10-22 00:18   28023   11
题主目前在国内一家对冲基金的负责期权交易部门。前期在调研了国内现有的期权做市商和高频交易平台后:RTS(太弱)、Horizon(太复杂)、Orc(得自己开发整套系统接口)、风软(功能过得去,但太封闭) 等等,没有找到满意的解决方案,遂决定自主开发。

整个平台核心完全基于python开发,交易接口的封装使用了C++的boost.python库,参与了之前的中金所期权测试和郑商所期权做市商比赛,上几张截图:

波动率管理

风控和希腊值管理

做市报价



春节长假期间突然萌发了启动一个开源量化交易平台项目的想法,原因包括:
1.    国内很多的机构和个人量化投资者,在受够了一些商业软件的束缚后(TB、金字塔等)想基于柜台API进行直接开发,然后在C++的.h头文件、网上一些不成体系的开发指南、不知道如何构建程序核心架构等等问题中赚的一头雾水后放弃,知乎上就有不少相关的提问。
2.    国外有相当多类似的项目,比如AlgoTrader、Tradelink、Marketcetera等等开源交易平台有着大量的用户和活跃的社区。目前国内据我所知只有海风的AT平台项目(基于C#),QuantBox项目目前更多只是一个柜台API的统一化封装(当然封装的非常漂亮,有兴趣的建议直接看源代码)。
3.    在题主的整个求学经历中,发现最佳的学习方式之一就是自己当老师,当你试着把某种知识教给别人时,你对这种知识的掌握会更加深入。
4.    抛砖引玉,题主只是交易员出身,编程算是半路出家,不专业的地方很多,通过这个项目和业内人士多多交流。
5.    国内目前最大量化交易社区应该是C#(交易)和Matlab(研发),TB之类的就算了。而能兼顾交易和研发的python社区居然十分弱小,实在是不能忍。


整个平台主要使用了以下几种技术:
C++boost.python封装API
python实现核心功能
PyQt事件循环和GUI

开源项目中不会包括策略之类的算法逻辑以及上面截图中的业务逻辑(商业机密啊)。


想请教对于这么一个开源项目的建议,比如:
开源协议(GPL、LGPL等等?)
发布平台(GitHub、开源中国?)
社区建设(QQ群、知乎、豆瓣?)
项目维护
等等

总之题主应该属于尽管会编程,但仍然是程序员圈子的圈外人这么个状态,所以任何建议都欢迎。

最后求一个知乎专栏的邀请。

2015/3/4更新
突然发现可以编辑问题,更新下目前的项目状态:
已经放出了LTS API的python封装以及事件驱动引擎,项目地址是http://github.com/vnpy/vnpy
项目的主页发布在vn.py,回头教程会放在这个上面


2015/5/6更新
再次更新目前的项目状态:
1. 完成了CTP的Python封装,发布在github上vn.py下的vn.ctp中
2. 完成了基于vn.lts和vn.ctp的DEMO交易程序开发,发布在vn.demo中,可以通过nuitka编译为独立的exe程序脱离Python环境运行
3. 在http://vnpy.org发布了5篇系列教程,包括API的封装设计、事件驱动引擎、DEMO程序的交易接口对接,接下来还会发布中层主引擎设计以及GUI开发等内容弄
4. 创建了交流QQ群,在QQ里直接搜索“vn.py框架交流群”
分享到 :
0 人收藏

11 个回复

倒序浏览
2#
薛璇  1级新秀 | 2017-3-15 16:33:13 发帖IP地址来自
目前正在做衍生品定价系统,日本市场,用.net实现,可以交流一下.
3#
黑黑  2级吧友 | 2016-9-23 23:07:51 发帖IP地址来自
美林最近两年在弄得Quartz交易系统就是主要用python写的,使用的对象是trader, quants 和developer, 项目干了好几年,现在看起来进展不错呢。所以用python 写肯定没问题。
Python/Java 只要控制好了GC, Python用一些多线程包解决GIL, 做高频系统都没大问题。开发效率比C++高多了。
题外话,高盛90年代开发的Slang, 也是基于弱类型解释型语言,到现在还工作的好好的。
4#
李辉  3级会员 | 2016-5-28 11:31:12 发帖IP地址来自
看到这个帖子感觉到国内的量化投资还是很有发展的。支持各位。
5#
左宗明  4级常客 | 2016-3-4 19:34:24 发帖IP地址来自
作为一个最近一直在玩python的程序猿,想学一下量化交易有什么建议吗
6#
印钞机  4级常客 | 2015-8-20 04:58:17 发帖IP地址来自
很好的项目,把复杂的ctp封装成简单的开平仓动作即可,让策略研究者集中精力在最需要做的事情上,而不是被coding搞懵。
7#
MarsZhangLing  3级会员 | 2015-3-18 12:59:05 发帖IP地址来自
没啥特别的建议,个人比较熟悉C++,准备搞个C++的和你类似东东,或许就是你公司那个C++团队做的事情,不过我只打算弄个简单的,给自己用了。在C++平台上弄Python,个人是非常支持。而且开源更加不错。而且站在交易员的角度,软件的功能性肯定非常棒,建议做的时候还是多咨询下程序员,倘若架构再弄的不错的话。就是个非常优秀的东东了。
8#
万矿  3级会员 | 2015-2-25 15:32:12 发帖IP地址来自
支持开源!很多现有量化平台对用户的限制太多,用户容易被绑在一个平台上。
9#
Enjoy  3级会员 | 2017-2-13 15:52:40 发帖IP地址来自
Python应该很快成为主力,至少主力之一,库全面,胶水语言开发快啊,速度慢着东西只有在高频交易里才会出现,很多时候就是想法验证,策略分析,Python便宜实惠上手快,主要是省时省力,顶一下!
10#
qifei  2级吧友 | 2015-2-25 23:45:36 发帖IP地址来自
现在在国外,大多数学校都开始把python作为编程的入门语言了。在国外python早已风靡。鉴于国内总是慢国外10年左右,可以预见,10年后国内python也将风靡。那个时候,这个项目的存在,应该是大功一件了。
11#
hongming cao  2级吧友 | 2016-10-31 14:24:33 发帖IP地址来自
来定楼主了,您的项目还在继续吗?
感觉楼主好厉害的样子,我只会orc系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:206
帖子:10
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP