注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

金融期货

算法交易

 
 
 

日志

 
 

为什么要自建量化交易平台?  

2017-01-08 13:10:05|  分类: 量化交易 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

量化交易平台概述

  量化交易是指借助现代统计学和数学的方法,利用计算机技术来进行交易的投资方式。它从历史数据中选择经数量模型验证的大概率事件制定策略,通过严格执行来获得持续稳定的超额回报。它具有严格的纪律性、完备的系统性、善用套利思想、依靠概率取胜等优势。

  这里的平台是指一套完整的服务于研制量化交易策略的开发支持环境。它通过选择合适的技术体系和技术架构,有效地缩短策略开发的时间和降低策略开发的难度。

  当前,专业量化机构和宽客打造的量化交易平台,通常有这些基本需求:

  覆盖量化交易完整生命周期,支持策略研发、策略回测、仿真交易、实盘交易全过程。

  支持多种主流程序开发语言。

  支持多个主要市场。

  我们提供的XAPI统一行情交易接口,接入了各大市场的数据和交易通道,可以屏蔽各交易所接入差异和复杂性,有效的降低了人力成本。

  在策略的实现过程中,引入复杂事件处理引擎(CEP)机制,对回测数据/仿真数据/实时数据/交易数据采用一致的事件模型。策略可以灵活的切换数据源而不用修改代码,做到在研究/回验/仿真/实盘各阶段真正的无缝迁移。

  用户可以选用的编程开发语言,包括C, C++, C#, Python,Matlab,Java等。

为什么要自建平台

  几年前,上期技术开放了CTP交易接口后,催生了国内一批期货交易软件的发展,当时他们的特点是基本采用封闭的自己设计的脚本编程语言,语法结构比较简单,有很多表达的限制;逐渐的量化平台实际上向2个方向在演化,一个是主要用于策略的研发环节,比较典型的就是Matlab和Python,因为它们有大量的数学库可以直接被调用,并且支持矩阵运算,像基于Python的zipline回测框架就比较常用;另外一个方向的重点是高效快速地执行策略,这类平台由于个性化的需求比较强,采用第三方平台常常不能满足需求,使得一些私募团队转向自建量化交易平台,基本上可以解决下面三个方面的问题:

  1、成本控制

  目前,商业化的第三方量化平台主要有2种收费模式,一种是以成交量为基数来计算,一种是以年费来计算,不管采用那个计费的方案,随着用户的交易规模的上升,管理的账户的数目的增加,平台费用都是比较大的一块支出;自建平台的话,只是在开始的付出一笔建设费,以后的总体运行支出就很少,而且,部署多套的话,也不会额外增加成本。成本方面实际上还有另外一种成本,就是因为平台的转换而投入的时间和学习成本。比如用户一开始选择了A平台,用了一段时间以后,发现A平台有些功能完成不了,于是切换到B平台,这样就会导致用户需要将A平台和B平台都学习一遍,这个成本在实际工作中都是非常高的。自建平台以后,一开始投入的学习时间和成本都能够得到很好的保护。

  2、策略安全

  用户开发的量化交易策略通常是最具商业价值的部分,所以,几乎所有的量化团队和个人对于的策略的安全性都是高度重视的。在目前的商业化平台中,有些平台的开发、回测、交易全过程都是在平台提供商的云端进行;有些平台虽然是在客户的本机开发,但是回溯测试还是会和服务器发生交互;这些情况下,用户对于策略的安全性的疑虑始终难以彻底打消。自建平台就完全不存在这方面的问题,用户的策略都完全在自己的掌控范围内,除了发出的交易指令,不需要和外界的服务器交互。

  3、功能定制

  第三方平台为了满足多个方面的用户需求,通常会做的大而全,这样的执行效率也会相应的下降;另外,这样的产品的生命周期通常跨度比较大,会出现在早期设计产品架构的时候,不容易预计到后面的新的应用,比如像现在新出现的期权交易,在多数平台上原先设计的时候,都不大可能考虑期权策略的交易。这样的话,用户如果要扩展定制一下新的功能,可能就会变得非常困难,甚至无法实现。而自己平台本身就是量身定做,对于功能扩展就可以很容易的实现。

平台的架构设计

  1、量化交易平台架构图

  这个架构在设计的过程中,充分的考虑了各个功能模块之间的解耦合。从大的结构来分的话,整个体系分成3层,Provider-XAPI-CTP完成了行情数据交易数据的连接;Strategy-Framework实现了策略的逻辑;最上面的CUI-From是和用户交互的界面层。

  为什么要自建量化交易平台? - star - 金融期货

  2、XAPI统一行情交易接口封装图

  这是XAPI统一行情交易接口的内部的实现示意图,在这个统一接口中,目前,我已经集成了以下的柜台API:

  • CTP期货、CTP期权

  • LTS证券、LTS期权

  • 金仕达期权

  • 上海黄金交易所飞鼠接口

  • UFX

  • Wind

  为什么要自建量化交易平台? - star - 金融期货

  3、XAPI支持的上层编程语言

  像期货套利策略、期权交易策略对于框架的依赖程度比较低,可以直接基于XAPI做开发,当前支持的编程语言有:

  • C

  • C++

  • C#

  • Matlab

  • Python

  • Java

  • Com

  为什么要自建量化交易平台? - star - 金融期货

预制模块

  1、XAPI

  这个模块在前面已经提到,主要是现在市场上的交易与行情API太多,分别对接每一个API特别麻烦,如果能统一用一套API接入就会很省事。 目前的统一行情交易接口,实现了以下3点:

  • 统一的结构体

  • 统一的调用方式

  • 灵活的加载方式

  2、Data压缩

  自定义的二进制行情数据存储格式,支持兼容Bar和Tick数据,支持无限深度行情,支持除权除息信息。将行情使用此格式编码后再用7z或zip压缩后再存储。 行情格式名定为Protobuf Data Zero(.pd0),Protobuf表示所用的核心库,0表示了此种编码的特点。如果采用这个数据格式记录数据,可以将数据文件的大小缩小到原先的30分之一。

  3、DataReceiver

  这个模块主要是让用户建立自己的数据中心,每天用户可以使用这个行情接收器做行情数据的落地保存。记录的格式就是上面介绍的.pd0格式,为了方便用户在Python和Matlab中调用,我们提供了转换到hdf5格式的辅助工具。

  4、APIProvider

  这个模块是用于连接上层的OpenQuant和XAPI统一行情交易接口层。

  5、DataSimulator

  很多客户有自己的历史数据文件或数据源,但每次将历史数据导入到OpenQuant中是一件很麻烦的事情,如果能直接读取数据文件进行回测不就很方便了。所以我们在这提供了一种直接读取数据进行回测的方法。

七禾网


  评论这张
 
阅读(368)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017