基于cep技术量化交易系统构建

基于cep技术量化交易系统构建

ID:33637968

大小:7.63 MB

页数:60页

时间:2019-02-27

上传者:U-22505
基于cep技术量化交易系统构建_第1页
基于cep技术量化交易系统构建_第2页
基于cep技术量化交易系统构建_第3页
基于cep技术量化交易系统构建_第4页
基于cep技术量化交易系统构建_第5页
资源描述:

《基于cep技术量化交易系统构建》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

万方数据基于CEP技术的量化交易系统构建5.1.5规则约束⋯⋯⋯⋯⋯⋯⋯⋯⋯5.2类图设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5.2.1消息类设计⋯⋯⋯⋯⋯⋯⋯⋯5.2.2对象类设计⋯⋯⋯⋯⋯⋯⋯⋯5.3状态变更⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5.4系统调用时序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5.5配对交易策略实现⋯⋯⋯⋯⋯⋯⋯⋯5.5.1配对交易策略说明⋯⋯⋯⋯⋯5.5.2配对交易策略实现⋯⋯⋯⋯⋯53配对交易策略实现小结⋯⋯⋯第六章总结与展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.61总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯62展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯目录——』IIIIIIIIIIIIIIIII——..................Y2704309............39.⋯⋯,⋯⋯⋯⋯⋯⋯⋯.⋯.⋯⋯.⋯.⋯⋯⋯⋯⋯...⋯⋯.⋯40.⋯⋯⋯⋯⋯⋯⋯⋯..⋯⋯.⋯⋯.⋯⋯⋯⋯⋯⋯...⋯.⋯.⋯41⋯⋯⋯⋯⋯⋯.⋯⋯⋯..⋯.⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯..⋯43⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.z19⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯..50⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯52⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯53⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5:;.⋯⋯⋯⋯⋯⋯⋯⋯..⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..51;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.56.⋯⋯⋯.⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.56⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.56⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.58⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯.⋯.⋯⋯⋯⋯⋯60 万方数据基于CEP技术的量化交易系统构建摘要摘要随着国内证券市场的快速发展和金融创新的不断出现,大型投资机构和高净值人士对量化交易工具的需求越米越多,但是具体的需求却千差万别。而量化交易平台可以满足这些不同需要的策略开发、回测、运行的需求。本文首先介绍量化交易平台的相关理论和方法,然后进行量化交易平台的需求分析,包含策略开发与评估环境、策略运行环境以及CEP周边系统接口三个不要的功能需求。策略开发评估环境需要能够快速开发策略,调试完成后进入回测环境,根据回测的结果对该策略进行评估,通过评估后,策略进入运行环境,通过为策略进行权限管理,开始通过不同的方式为不同的客户提供服务。而量化交易系统需要通过CEP周边系统接口和外部系统通信来完成获取行情或发出委托等交互工作。然后,讨论系统架构,通过应用架构视图来完成子系统划分和应用分层,通过逻辑架构定义出子系统的各种主要功能。系统应用架构进行了分层设计,白底向上分为接口服务层、策略引擎层、基础服务层和应用服务层。接口服务层复杂周边系统的通信,策略引擎层提供策略高速安全运行的核心引擎,基础服务层提供策略交易的基础服务,比如订单管理子系统,而应用服务层提供外部用户的多种不同应用。技术架构视陶勾画出整个量化交易平台的技术实现方式,其中的核心是高速引擎和IAF框架,通过IAF技术框架,可以完成对周边接口的高效管理和监控,然后设计出系统的物理部署拓扑,描述整个平台的部署结构。在架构设计基础上完成了量化交易平台的详细设计,并对相对独立的核心子系统一订单管理子系统进行单独的设计实现,并阐述该子系统和其他部分的交互关系。同时,在量化交易平台上实现了配对交易策略。通过对量化交易平台的架构设计,部署出满足多种不同用户类型的量化交易平台对中国量化交易的快速发展具有重要意义。关键词量化交易复杂事件处理回测交易接口 万方数据基于CEP技术的量化交易系统构建ABSTRACTWiththerapiddevelopingofthedomesticcapitalmarket,largeinvestmentinstitutionsandhighnetworthindividualinvestorsdemandquantitativetradingtoolsmoreandmore.However,thedemandsaredifferinthousandsofways.Quantitativetradingplatformcanmeetthedifferentrequirementsforstrategies’developing,testingandexecution.Thisthesisintroducesquantitativetradingplatform’stechnologiesfirstlY,andthenanalysistherequirements.Itcouldbedividedintothreecategories,strategiesdevelopmentandevaluationenvironment,strategiesdeployingenvironmentandCEPperipheralinterfaces.Strategiesdevelopmentandevaluationenvironmentisusedtoquicklydevelop,debugandbacktesttradingstrategies,andthenevaluatethestrategy.Accordingtotheperformance,suitablestrategieswillbedeployediritetheproductjveenvironmentwithlimitsofauthoritytoprovideservicestodifferentcustomers.ThequantitativetradingsysteminteractswithexternalsystemsthroughtheCEPperipheralinterface.Then,itdiscussesthesystemarchitectureandimplementation.TheapplicationVJewofarchitectureshowssubsystemsandapplicationlayers.Thewholeplatformisbottomupdividedintofourlayers,inchdinginterfacelayer,thecoreenginelayer,basicserviceslayerandapplicationservicesone.Interfacelayerinteractswiththeoutsystems.Thecoreenginelayerprovideshigh—performanceandsaferuntimeenvironment.Andthebasicserviceslayercontainsbasiccommonservicesfortradingstrategies,suchasordermanagementsubsystem.Applicationserviceslayerprovidesvariableservicestoendusers.Andlogicalviewhigh]jghtsdetai1informationofallthesubsystems.Technicalarchitectureviewshowsthetechnologyapproachofquantitativetradingplatform.ThecoretechnologiesaretheCEPengineandIrAframework.Theframeworkadministratesalltheadapter、seffectively.Atlast,usingdeploysviewtoshowhowtodeploythewholesystem.2 万方数据基于CEP技术的量化交易系统构建ABSTRACTAccordingtothearchitecture,designedandimplementedthemainsubsystems.What’Smore,designedindependentlythecoresubsystem,ordermanagementsubsystem,andexpoundshowthesysteminteractswithotherpartsoftheplatform.Meanwhile,apairstradingstrategyiSimplementedontheplatform.Basedonthequantitativesystemarchitecture,theplatformisdeployedtomeetvariablerequirementsofdifferentendusers.TheplatformiSsignificanttotherapiddevelopingofChina’Squantitativetrading.Keywordsalgorithmictrading,complexeventprocessing,systembacktesting,tradinginterfaces 万方数据基于CEP技术的量化交易系统构建第一章绪论中国资本市场经过近几年的快速发展,金融创新不断出现,大量的金融衍生品为量化交易提供了越来越大的空间,国内市场已经具备了实施量化交易的摹本环境,随着金融创新产品的不断出现,量化交易的空间越来越大。近年来,国内量化交易进入快速发展阶段,不少券商开始构建量化交易平台,对外提供量化交易服务。1.1论文研究背景技术进步带来了金融资产交易方式的革命。如今交易过程的每一个步骤,从订单输入到交易场所再到后台清算,都实现了高度自动化。交易技术创新显著减少了由交易中介导致的成本和摩擦,从而能够促进更加高效的风险分摊和风险对冲,提升市场的流动性和价格的有效性,并最终降低企业的资本成本。量化交易包括算法交易、策略交易,足目前国际金融市场主流的交易手段,已经在欧美等成熟市场得到了广泛的应用,伦敦证券交易所2011年程序化交易占所有交易的60%以上,而美国市场则高达70%以上。大部分基金公司、机构投资者都使用算法交易来降低冲击成本、寻找最优价格。量化交易(AlgorithmicTrading)正是这场意义深远的技术革命的重要体现。根据AyeshaandKaljuvee(2007)的定义,算法交易是指在运用程序交易同时处理一篮子证券的基础上,强调以各种算法拆分订单以实现最优执行价格并最小化市场影响的交易技术。当投资者有大量证券资产需要交易时,一般都会把交易拆细,分批执行。但是,这就出现了一个问题:如何安排这些交易对是最有利的?一般交易者都希望交易不要对市场产生太大的冲击,同时也希望交易不会拖延太久导致市场价格向不利于交易者的方向变动。但是,这是一个两难:市场冲击是交易速度的增函数;等待风险则足交易速度的减函数。当交易执行速度较快时,等待风险很小,冲击成本很大;交易执行慢时,冲击成本很小,等待风险很大。算法交易的核心问题之一就是是在冲击成本与等待风险之问进行平衡,找出最优执行方案。完整的以降低冲击成本为目的的算法交易由交易计划制定和智能路由两部分构成。交易员首先给出指定交易量的买入或者卖出指令,算法根据目标基准和市场条件等制定交易计划,确定交易时机和下单量,并智能地将订单发送至流动性最好的交易场所,从而实现风险可控、成本叫+控的订单执行。实现算法的计算机程序系统则能够高速接入市场,在一分钟内产生数千个交易指令,并4 万方数据基于CEP技术的量化交易系统构建第一章绪论在瞬间取消或者更新原有的指令,将大额委托化整为零,在控制执行风险的前提下尽可能减小对市场的冲击,寻求最佳的执行路径。事实上对于管理资产规模不断扩大的机构投资者而言,交易成本对其总体收益的影响正在日益增大。市场的发展伴随着更加严格的监管,使得证券交易变得日益复杂并且难以获利。在过去的五年中,自动化和新的技术正通过金融工程改变着经纪人与投资者追求更低交易成本的方法,推动了基于模型的算法交易技术得到越来越广泛的应用。成本竞争的加剧迫使公司大量投资于他们的交易和执行平台,华尔街上电子与算法交易应用的扩张速度令人惊讶。据AiteGroup的统计预测,美国的算法交易使用率逐年升高,到2010年将有超过50%的交易量由算法交易完成。而欧洲投资界同样也大量使用算法交易,目前的使用率已经接近三分之一。事实上,在投资管理公司中算法交易更加普及,全美约90%投资经理在建立投资组合时至少使用一次算法交易,在英国这一数字也达到了77%。由于量化交易需要搭配先进的信息平台及完善的应用程序设计,并且对交易网络和信息传输的速度有较高要求,因此亚洲地区的算法交易发展起步晚于欧美。但与欧美市场相比,亚洲市场的股票流动性更差并且成交难度更大,导致了交易成本较高,所以算法交易的价值也更为突出。部分亚洲领先市场的算法交易发展迅速,在2010年香港、日本和新加坡证券市场的算法交易使用率已经超过了30%,并且预测未来增速同样可观。而国内市场近年随着金融创新的不断出现,对量化交易的需求在迅猛增加。如何有效应对这种趋势成为近几年证券公司信息化建设的新的挑战,证券公司也掀起了进行量化交易平台系统建设的风潮。班Ⅺ420052043620072()082009∞船蔓美国誓欧洲亚洲图1-1算法交易在全球的使用率增长情况觥燃麟|耋猕燃册 万方数据幕于CEP技术的量化交易系统构建第一章绪论1.2论文内容和意义虽然量化交易在国内大部分机构尚处于系统研究和初步试验阶段,但考虑到目前国内资本市场上的交易成本较高,尤其是不可见交易成本较高,许多机构投资者都对降低交易成本有着迫切的需求,量化交易在中国发展前景看好。以下因素将进一步推动量化交易在我国高速发展:(1)日益壮大的指数基金是算法交易潜在的最大用户。目前指数基金在A股开放式基金中的资产规模占比可以达到12%以上。2009年以来,己获批或已发行的指数基金达16只,其中60%是基金公司首发的指数产品,指数基金的发展明显提速,基金公司对指数产品的重视前所未有。而指数基金管理的主要目的是最小化跟踪误差,每次买卖价格是控制跟踪误差的关键,而这正是算法交易的强项。(2)机构投资者管理资产规模的扩大使算法交易提上议程。随着机构投资者所管理资产规模的日益扩大,每次在市场上的进出对市场的影响会逐渐显露。为了尽量减少对市场的冲击、降低交易成本,同时隐藏自己的交易目的、提高交易执行的效率,机构投资者会逐渐把部分交易转移到算法交易执行上来。(3)投资者和金融产品多样化为算法交易提供催化剂。目前国内市场的投资者构成己初具多样化的态势:公募基金、私募基金、保险资管、券商资管、信托公司、财务公司、众多散户等等,投资者的多样化必然带来对交易执行要求的多样化。同时,目前交易所市场已有股票、权证、ETF、封闭式基金、债券等金融工具,而股指期货等衍生工具也呼之欲出,金融工具的多样化丰富了可能的投资策略,进而对交易执行提出了新的要求。这些都是国内发展量化交易良好的催化剂。实际上,国内证券公司对于算法交易、策略交易的应用已经从实验室性质的研究走向生产上线,为满足优质客户对于算法交易、策略交易的需求,一些有远见的券商开始引进世界最先进的CEP产品来搭建自己的事件驱动型量化交易平台,从而跨越了JP摩根等国际投行曾经走过的老路,这样可以有两个优点:·可以提高编写、运行策略的效率,避免金工人员从一般编程语言的底层开始写策略,不再担心复杂策略的稳定性;●可以保证策略的持续升级,跟踪市场动态,避免策略本身的知识产权流失,不再受制于专用算法工具的软件公司。从国内外的算法交易、策略交易实践上来看,算法交易、策略交易会形成较高的换手率,其主流用户是高端客户,即:机构客户、私募基金、QFII和高 万方数据基于CEP技术的量化交易系统构建笫一章绪论净值人士,因此多属于是众多券商的优质客户。这对这些优质客户的需求,通过量化交易平台,向高端客户提供公司级的整体服务,是某证券公司获取增量高端客户、体现券商服务差异化的有效手段。为此,某证券公司在对市场复杂事物处理平台进行总体评估后选择Apama建设量化交易系统。1.3论文章节安排本文详细阐述量化交易系统的架构设计和构建过程。论文分为六个章节。第一章绪论首先介绍了国内外量化交易的整体趋势,论述量化交易平台建设的核心意义以及论文的章节结构。第二章量化交易平台相关理论和方法,介绍量化交易平台涵盖的范围和各个部分的作用,进一步介绍了进行量化交易平台建设的核心技术一主流的CEP平台和资本市场基础服务。第三章平台需求分析和高层设计,首先进行量化交易平台需求分析,在此基础上对量化交易平台架构设计工作,论述基于ITA的架构设计过程,通过系统应用架构,逐步设计出系统分层和更个分层功能及耦合关系。通过逻辑架构介绍系统的逻辑划分以及各个子系统的关系,而技术架构介绍核心平台以及系统交互所采用的技术框架,部署视图描述了系统部署要求和拓扑结构。第四章量化交易平台详细设计与实现探讨了相关子系统的主要功能和实现。第五章对量化交易平台的核心子系统进行了完整的封装和实现,并在此平台上实现了一个配对交易策略。最后对整个设计和实现进行客观的评述,并根据这个分析对未来的研究和应用方向进行展望。 万方数据基于CEP技术的量化交易系统构建第二章量化交易、F台相关理论和方法第二章量化交易平台相关理论和方法量化交易平台建设涵盖的具体范围和建设的方法在国内资本市场上并无统一的定义和成熟的方法论,尤其是采用的技术手段差异较大,通过大量的调研和分析,我们确认量化交易平台涵盖策略开发评估、策略运行、平台管理和周边接口四大部分。实现方法上采用事件驱动的CEP(ComplexEventProcessing)技术。2.1量化交易平台概述量化交易平台的建设目标是提供快速策略开发、调试、回测、运行、第三方系统接入以及多种管理功能。具体包括策略研发、策略运行、策略管理、行情资讯、多协议接入和第三方系统接口等功能。同时系统需要兼顾■次开发的功能,保证随着业务应用的不断发展,系统能够有效进行扩充。其核心子系统包含:1策略开发与评估策略研发是策略交易平台的重要组成功能,决定了策略交易的效率和实用性。研发系统应该包括对策略、指标、信号等基本元素的支持,同时应当具备主流丌发工具的特性基础开发库的支持。除了功能上的完备,还需要具有完善的图形化策略开发、图形分析展示等可视化技术分析的开发能力,来满足最终用户多样化的展现需求。2策略运行环境策略运{/-包含生产环境和测试环境,是策略执行和测试的平台。策略运行系统要具有高可用性、负载均衡和横向性能扩展能力,满足不同业务需求。策略运行系统包括策略执行、回测、报告、临控、交易管理、资源管理等功能。同时支持与门户、网卜交易软件无缝整合。(1)生产运行环境策略执行功能是策略运行的基础功能,在保证策略高速执行的同时,也要保证策略执行的可控性,如支持通过设置策略运行优先级等调整策略运行占用的资源。此外,对于公共计算资源,例如基础计算、常用指标等要作为公共组件实现共享和管理提高效率,在同一个策略执行平台上,每个时刻同一品种的相同指标应当只计算一次。同时策略执行应有相关安全机制,在出现异常情况(如价格延迟过大、仓位资金异常等)保证策略不进行错误的操作。(2)策略测试运行环境 万方数据基于CEP技术的量化交易系统构建第二章量化交易、F台相关理论和方法回测功能是策略测试、研究的重要组成部分。系统应该提供统一的回测模块,为所有策略提供回测服务,毋须另外开发。回测环境作为公用的测试环境,所有策略开发完成后可直接进行测试。回测应分为历史和实盘两种。此外还要支持跨市场、跨品种、数据频率和时间间隔以的测试。回测应支持数据回放速度控制。回测的模拟成交方式应该包括概率成交、价量成交、延迟成交、部分成交等,同时还需要开放模拟成交接口,方便配合白定义的模拟成交策略进行测试。模拟委托应当支持目前主流的价格委托方式(收盘、均价、买卖等),同时应当支持针对不同的策略设置模拟的费率、冲击成本,并提供自定义参数设置和调整支持等。除了市场数据的回测模拟,还需要支持白定义事件流等进行事件响应模拟。回测的指标应支持指定任意周期(日、周、月、N月或任意指定的再平衡日序列)。3平台管理系统策略运行过程中的运行参数、状态、实时数据、信号、策略涉及的子策略、公共指标、性能统计分析和系统硬件资源等都需要进行监控并提供统一可定制的查询监控页面。策略运行中产生的日志需要进行统一管理。相关的数据都需要提供对外访问接口,支持订阅推送信息,并与集中监控系统对接。4行情资讯策略交易平台需要支持高速实时行情、历史行情,也需要支持结构化数据、非结构化数据等外部数据源转化为内部事件。行情资讯不仅为策略运行、开发提供服务,也可以作为独立的数据服务提供给外部订阅者。系统要支持不同市场、品种、频率的行情数据、结构化数据(财务数据、行业数据等)和非结构化数据(年报、新闻公告、研究报告)等多种类型的数据。行情数据应支持多个数据源,数据应带有进入系统的时间戳并能自动选择最新的行情数据。5第三方系统接口策略交易平台需要与交易系统、行情系统、黑盒策略等第三方系统配合来提供不同的策略交易服务,满足多样化的策略交易需求。策略交易平台的第三方系统接口应该具备标准化、击兕范化和二次开发的能力。上线时应当提供相关接口,连通证券公司现有交易系统和行情系统,同时也要支持常见第三方黑盒交易和金融工程研究系统(如SAS、Matlab、VBA、天软金融工程平台、铭创资产管理系统等)的接入。在上述接口之外,应该提供二次接口开发包和相关新接口的丌发服务,为了后续拓展提供支持。 万方数据基于CEP技术的量化交易系统构建第二章量化交易、F台相关理论和方法2.2CEP技术平台介绍CEP(ComplexEventProcessing)是一种基于内存计算的面向数据流的实时数据分析技术,主要用于高速的复杂数据模式识别,在国外并广泛应用月资本市场的量化交易和风险控制领域。目前主流的CEP技术平台有多个,我们评估认为,ProgressApama是适合用来构建中国资本市场的量化交易平台,该产品采用模块化及可扩展性的设计,其核心功能可概括如下:·监控由消息传输基础设施或者某种引用数据传输进入的事件。·分析该类事件,可单一事件分析,或者针对有共性与或有连续事件综合分析。·依据分析,采取应对行动,如触发下单指令事件。“Tic“k1S“t08res‘;蒋TC吼E)陇qm图2-1ApamaCEP技术平台传统的“存储一索引一查询”数据架构模型要求索引必须根据新来数据不断更新。每秒钟高达数万次的数据处理速率会产生大量的运算成本。Apama⑧架构颠覆这种传统模式的架构,索引“查询”,而不是“数据”。如今有了Apama@,输入的数据无需更新索引便可立即检索,并随后进行高性能分析。实质上在Apama⑧内部是事件“查找”查询,因此极大幅的降低了运算成本和缩短了时间延迟。在Apama@内的查询被界定在“监控器”内,并且在高性能引擎中内执行,除了事件“引擎”之外,Apama@结构还包含:·实时的图表型仪表盘以监控及同应用软件交互。·一种集成框架以集成Apama@于事件处理环境、数据库和现有应用环境。·一种既兼顾商业用户又考虑传统开发员的集成开发环境。·一套全面的多语言的应用程序界面(APIs)。lO攀一一一 万方数据基于CEP技术的量化交易系统构建第二章量化交易iF台相关理论和方法·可监控包括延迟性测量的系统性健康监控能力。Apama@率先应用于商业CEP,并相应地成为使用最广、实践时间最长的方案。值得一提的是,作为CEP在资本市场上应用的先行者,几乎通用于所有资产类别(股票、固定收益、外汇、商品以及这类资产的衍生品)和市场参与者(买方、卖方、交易所、监管机构以及其他机构等)。黼arketpresence———————翼’●●i。-‘●图22CEP平台魔力四象限受益于其多年的经验和对资本市场的专注,Apama@已经开发及培育出大量其他CEP引擎企业无法比及的技术资产。这些资产包括CapitalMarketFoundation,提供大量的模块以运行通用计算及服务平台,满足Progress@庞大客户群中绝大多客户的需求(如行情数据管理、头寸和PAL计算、风险控制)。2.3资本市场基础服务ProgressApama资本市场基础服务(CMF)由一系列在ProgressApama复杂事件处理(CEP)平台上创建资本市场应用程序而建立的基础组件和服务服务组成。CMF的首要目标是为资本市场量化交易的策略开发人员提供强有力的策略丌发基础,使其能够集中精力创建自有的交易策略,而不是将精力浪费在构建和测试公共组件上。 万方数据基于CEP技术的量化交易系统构建第二章量化交易·F台相关理论和方法SolutionAccelerators(e.g.AlgorithmicTradingAccelerator,FXAggregation..}I鲨篷鋈錾鎏i鬃溱豢鬻豢鬻i鬻鬻ll鋈黉鬻蕤豢豢豢i鏊鬻瀵蒸攀鬻蕤戮蕤黍鋈图2—3资本市场基础服务CMF组件及服务分为三种功能群:基础设施组件及服务提供CMF应用软件框架及各种使用功能。这些组件及服务并非针对具体的资本市场应用策略。分析组件及服务包括全部有关行情数据处理以及其他分析方法,例如仓位跟踪和拓展性数学功能。订单管理组件及服务涵盖全部相关的订单处理及风险防护功能。 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计量化交易系统的系统建设目标是为某证券公司内部部门(自营、资管)和高端客户(机构客户、私募基金、QFII和高净值人士)提供完整的策略开发、回测和运行管理的统一环境。3.1需求分析量化交易平台包括策略开发、策略运行管理与回测评估(提供管理功能,支持权限管理、版本管理、运行监控等,提供策略回测和评估的客户端)、行情资讯(Level1、Level2等)第三方系统接口(大集中、网上交易、资管、QFII)等功能。i—j时系统提供二次开发的功能,方便根据业务需求,在现有系统基础上拓展功能。3.1.1策略研发需求策略研发是量化交易平台的重要组成功能,决定了策略交易的效率和实用性。研发系统应该包括对策略、指标、信号等基本元素的支持,同时应当具备主流开发工具的特性基础开发库的支持。除了功能上的完备,还需要具有完善的图形化策略开发、图形分析展示等可视化技术分析的开发能力。主要包括如下几个方面:策略、指标、信号支持平台提供完整的程序化交易、算法交易支持。同时能够调用子策略、指标,接收和发送预定和自定义信号。指标是定制的技术分析库,除了能在策略中引用不同指标,指标应与图形分析工具和报告等功能集成。信号(事件)提供信息交互功能,实现对市场交易机会、特殊事件等的交互。信号应该支持第三方接口,支持内部和外部的订阅推送。策略开发语言开发语言应当在保证执行效率的同时,具备脚本语言的简洁性,方便非IT人员学习和开发,方便撰写适用于金融市场的业务逻辑。同时应该内置支持金融交易相关的数据类型,例如行情数据等。此外,对行情、交易、资金等应该提供相关的基础操作库支持或内置功能支持。策略开发工具开发工具,需要具备主流EclipseIDE的基本功能,包括解决方案式工程类型、代码自动完成、语法高亮、语法错误检测、本地调试(回测)、版本管 万方数据基于CEP技术的量化交易系统构建第三章iF台需求分析和高层设计理、外部策略和指标引用等、策略提交等功能。提供图形化的界面开发工具,实现固化流程的图形化开发、基础策略的代码自动生成,方便业务人员直接开发。刚时开发语言要具有与分析图表交互的能力,可以推送信号和数据到图表,并且可以支持指标叠加分析。策略开发库策略开发库包含如下资源:基础库、基础策略、预置策略、指标等。基础库包括行情、交易管理、仓位管理、市场扫描、时间函数、科学计算函数等。基础策略是包含相关公用基础功能的策略,应该包括开仓、平仓等。预置策略是一些常用的策略,满足客户的常见需求,如VWAP等。指标库是专门的技术分析库,作为技术分析的重要工具,在策略开发库中也应该作为基础的功能库提供,包括MACD、RSt、K叫等常见指标,同时要支持添加自定义指标。回测系统应该提供统一的回测模块,为所有策略提供回测服务。回测应为公用的模块,所有策略开发完成后可直接进行测试。此外还要支持跨市场、跨品种、数据频率和时间问隔以的测试。回测应支持数据回放速度控制。模拟委托应当支持目前主流的价格委托方式(收盘、均价、买卖等),同时应当支持针对不同的策略设置模拟的费率,并提供自定义参数设置和调整支持等。除了市场数据的回测模拟,还需要支持自定义事件流等进行事件响应模拟。回测的指标应支持指定任意周期(日、周、月、N月或任意指定的再平衡日序列)。回测界面除了可设置上述测试参数外,凹测的结果数据还要能保存在服务器和本地,支持服务端和本地的数据回放。策略报告策略报告是策略执行和回测相关数据生成的分析结果,应包含策略运行过程中的所有信息,按照统计结果和实际详细信息进行汇总和明细展示,包括但不限于资金、持仓、盈亏、交易明细、信号触发说明等。策略报告还需具有一定的分析优化功能,提供相关接口方便定制和第三方系统获取。3.1.2策略运行需求策略运行是策略执行和测试的平台。策略运行系统要具有高可用性、负载均衡和横向性能扩展能力,满足不同业务需求。策略运行系统包括策略执行、回测、报告、监控、交易管理、资源管理等功能。同时支持与相关业务系统无缝整合。14 万方数据基于CEP技术的量化交易系统构建第三章’f,台需求分析和高层设计执行策略执行功能是策略运行的基础功能,在保证策略高速执行的同时,也要保证策略执行的可控性,如支持通过设置策略运行优先级等调整策略运行占用的资源。此外,对于公共计算资源,例如基础计算、常用指标等要作为公共组件实现共享和管理提高效率,在同一个策略执行、F台上,每个时刻同一品种的相同指标应当只计算一次。同时策略执行应有相关安全机制,在出现异常情况下避免策略进行错误的操作。监控策略运行过程中的运行参数、状态、实时数据、信号、性能统计分析和系统资源等都需要进行监控并提供统一可定制的查询监控页面。策略运行中产生的日志需要进行统一管理。相关的数据需要提供对外访问接口,支持订阅推送信息。交易管理交易管理主要针对策略交易相关的功能进行管理。交易管理包括订单管理、持仓管理、资金管理、费用管理、交易统计分析和交易同志。所有交易相关的功能都需要提供对外接口,方便实时监控。策略评估客户端依托平台上述基础功能,给策略使用者提供一个进行策略评估测试的环境。客户根据自己的权限进行策略参数的调整,并可以启动停止修改相应的策略状态,满足证券公司在策略验证、运行、权限管理、监控的实际需要。3.1.3平台管理需求管理平台提供整个策略平台的统一权限控制和辅助管理功能,包括平台用户管理、策略管理以及操作日志等。同时应该提供安全通信和登陆认证,实现双因素认证、通信加密等。用户管理用户管理应该分为运维用户和普通用户两个体系,运维用户体系控制管理人员的平台管理权限,包括对所有监控对象的访问、控制权限。普通用户体系提供用户策略执行、策略升发、策略相关资源访问等业务操作权限的控制。普通用户体系应该支持分级管理,按照公司账户、操作员账户进行控制。公司账户可以管理操作员账户的策略开发、运行、访问权限。同时普通账户体系应该与交易系统的资金账户建立映射关系,能够对映射关系进行管理。策略管理策略管理应包括权限控制、版本控制、提交和发布审核、加密等功能。策 万方数据摹于CEP技术的量化交易系统构建第三章平台需求分析和高层发计略权限控制应该包括不同账户的对策略查看、修改、发布等控制。策略版本控制要维护策略的不同版本,按照版本对策略进行独立管理。策略审核功能应该提供对策略发布、修改的审核和留痕功能。操作日志平台所有的关键操作都应该保存日志并可以控制是否记录,与平台所有的日志(运行日志、交易日志等)实现统一的管理、备份,并提供相关的操作访问接口。3.1.4行情资讯需求量化交易平台需要支持高速实时行情(Level2)、历史行情,也需要支持资讯数据等外部数据源转化为内部事件。行情资讯不仅为策略运行、开发提供服务,也可以作为独立的数据服务提供给外部订阅者。系统要支持不同市场(证券、期货)、品种、频率的行情数据、资讯数据。行情数掘应支持多个数据源,数据应带有进入系统的时间戳并能自动选择最新的行情数据。行情系统主要分为如下两种。实时行情系统实时行情系统提供实时跨市场多品种的高频市场数据,内部策略开发、运行接口,同时可以作为实时行情提供给第三方系统。历史行情系统历史行情系统提供多市场、多品种、多频率的市场数据和分析数据提供策略运行、开发和回测接口,同时可以作为第三方历史数据源,如本地回测数据源。3.1.5第三方系统接口需求量化交易平台需要与交易系统、行情系统、黑盒策略等第三方系统配合来提供不同的策略交易服务,满足多样化的策略交易需求。量化交易平台的第三方系统接口应该具备标准化、规范化和二次开发的能力。上线时应当提供相关接口,连通证券公司现有交易系统和行情系统,同时也要支持常见第三方黑盒交易和金融工程研究系统(如Matlab、Quantlib、R、SAS等)的接入。在上述接口之外,应该提供二次接口开发包和相关新接口的开发服务,为了后续拓展提供支持。交易系统接口交易系统接口为量化交易平台提供交易功能支持,应当具有标准接口规范,支持国内现货、期货等多个市场和国际市场的接入能力。 万方数据基于CEP技术的量化交易系统构建第三章j『,.台需求分析和高层设汁交易系统接口应作为统一的交易通道接口,所有交易订单都通过此接口委托到不同的交易系统。接口应该具备对订单请求进行解包、路由的二次开发功能,方便证券公司白行开发交易系统接口。基于统一交易接口,支持证券公司现有的集中交易系统、网上交易、资管系统、期货交易系统、OFII交易系统等。同时要提供必要的新接口开发服务和二次开发功能,方便对接多市场多交易系统。交易接口需要与策略运行系统结合,支持交易通道状态、交易流量、通道功能控制等管理功能。黑盒策略接口针对黑盒策略应该提供标准接口,默认应该具备常见的第三方白行开发的策略交易系统接入(如Matlab、Quant]ib、R、SAS等)。通过上述策略执行平台和管理平台的标准接口,为第三方系统提供除了策略执行外的完整的策略交易服务(包括行情、信号、交易管理、权限等)。通用协议(FIX协议接口)系统提供标准的FIX接入服务,支持FIX协议的策略交易指令(FIX4.2、FIX4.4及后续的版本)。3.2平台架构设计基于对量化交易平台整理功能的把握和细致分析,决定对采用ITA(InformationTechnologyArchitecture)进行架构设计。●科学的架构描述体系基于ITA(InformationTechnologyArchitecture)的架构描述标准,有效降低沟通成本。●可扩展性原则架构设计中充分考虑系统可扩展性,包括系统的多核扩展、多机扩展的设计考虑。●安全性原则架构设计中充分考虑系统安全性,保证客户核心资产的充分保护,并保持成本和标准的、F衡。●合规性原则架构设计过程遵守客户业务规则和IT运维规则。3.2.1系统应用架构从应用角度上,可以把系统分为接口服务层、策略引擎层、基础服务层和最上层的应用服务层。 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计图3—1系统应用架构图应用服务层应用服务层是整个量化平台的应用实现,通过对应用服务层的不断扩展来满足量化交易平台不断变化的需求。项目建设的目标包含策略研发、策略运行、平台管理等多种服务。●策略研发开放的“白盒”开发平台,提供可视化的策略开发、调试、监控和管理环境,除本身自带“拖拉拽”的方式生成模型外(用户也可以用EPL语言手工编写),还可与多种建模工具对接(如:Matlab、QuantLib等)对接,使已有模型重用。生成的模型最终被编译为本机二进制代码,保证了大吞吐量和低时延。·策略运行实现策略的执行、回测、策略报告生成、策略监控、交易管理、资源管理等功能。支持策略的模拟测试和实盘测试两种方式,对模拟测试,直接转换历史数据为事件流,按照事件的时间,可视化回放,回放速度任意可调;对实盘测试,系统能够以当前的实时行情来测试策略。对实现策略的执行监控,执行监控的指标包括:CPU效率、数据流吞吐量和延迟监控、内存使用、数据流的接收和处理数量等。生成的策略报告中包含订单、信号、盈亏、交易成本、冲击成本等,可以通过页面查看,也支持导出为常见格式,如PDF、EXCEL等。在交易管理中,可对括订单、持仓、资金、交易通道、费用等进行配置控制,提供交易统计分析、交易日志查看、交易盈亏控制等功能。·平台管理 万方数据基于CEP技术的量化交易系统构建第三章、『台需求分析和高层设计对系统用户分级分层次进行授权和访问管理,支持集中交易账户与系统账户的映射管理。支持策略权限控制和审核,支持策略加密。可对策略进行版本管理。可以与某证券公司现有风控系统对接。对系统关键操作、事件记录并提供日志访问和管理接口。●行情咨洵对实时行情支持跨市场多品种高频市场行情数据广播、支持作为外部行情源。对历史行情支持跨市场多品种高频市场行情数据订阅、支持作为外部行情源。可以接入第三方的结构化和非结构化数据。基础服务层基础服务层运行着一些“原子”的基础组件,这些组件按照一定的业务逻辑组合并稍作扩展,就可形成应用服务层的应用,如:算法交易、订单管理、套利交易、组合交易等。本节就重点组件介绍如F:●订单管理和传统的委托单状态管理不同,量化交易的委托单状态管理子系统(OrderManagementSub—system)在管理的范围和状态变更通知机制上有很大不同:1.管理的范围。传统的委托单状态管理由柜台系统管理,通常管理从柜台接收到委托指令开始,到委托指令离开交易所结束。但是量化交易的OMS管理的范围,从策略开始生成委托单开始,经过风险控制(firewall),到经过柜台系统,交易所处理,以及被处理后,调整后重新委托,经过多次循环直到策略要求的交易结束的整个过程。2.通知变更的机制不同。传统的委托单状态管理通常采用查询指令来主动查询委托单不断变化的状态,通常情况下查询的频率不高,并不会根据委托单状态的变更做大量的调整。而量化交易平台因为要支撑大量高并发用户,这些用户使用的策略往往需要根据委托单状态做出开始的调整,如果使用查询机制,柜台系统的压力会非常大,效率会大幅下降,可能会导致滑价,甚至是策略的失效,所以,量化交易系统的OMS不能采用查询机制,而需要采用推送机制。和投资机构相比,券商的量化交易平台需要满足众多不同类型客户的多种多样的需求,能够快速实现、修『F和回测验证是最基本和最重要的需求之一。量化交易的类型很多,其中绝大多数都包含交易功能。和传统的交易客户端的交易功能不同,量化交易的交易功能需要根据委托单的状态的不断调整委托单来保证按照算法设计预期进行快速的成交,那么委托单的状态管理就成为其中的关键问题。从海外量化交易系统建设的经验上,委托单的状态管理作为量化交易系统的基础服务进行设计和封装。 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计●交易路由服务接收策略交易引擎发送过米的订单信息,将这些信息发送到相应的交易通道,最终送达指定的交易所,实现订单传输的多路由支持,通道负载均衡,流量控制等功能,消除交易通道的单点故障。·成交回报服务从交易柜台获取成交回报数据,主动推送给交易策略引擎和订阅成交回报服务的高层业务系统。●头寸服务包含账户管理和头寸管理,保持与交易柜台之间的同步和通讯,进行交易账户的头寸控制,在头寸异常时采取主动预警,禁止交易等措施。·策略管理实现策略的加载、运行、监控、回测,能够根据用户身份进行严格的策略执行权限控制。●虚拟交易所支持沪深市场不I—J品种分别T十l和T+O交易等方式的虚拟撮合,可以在对历史数据快速回溯计算时使用,而且也接真实行情每天试运行情况下提供快速可配置的撮合功能。撮合方式能够实现概率成交、价量成交、延迟成交、部分成交等多种成交模式。其中价量成交中支持以“不超过委托相反方向盘口二个档位内的价格全部成交”的撮合规则。提供开放的模拟成交接口,可以白行开发模拟成交策略进行测试。●对账服务将策略交易平台的成交记录与日终柜台成交数据进行对账,以柜台成交数据为准进行对账处理。·交易查询服务提供资金、股票、账户、委托、成交、撤单等全方位的委托查询服务。·行情服务用于接入上交所、深交所DBF行情数据、上交所Level2行情数据、钱龙行情,上期行情、高频历史行情数据以及其它行情数据(如:海外市场、外汇等)。提供历史行情数据的接入服务。·资讯服务提供财务、股本、行业数据、宏观数据的数据接入服务,包括结构化数据和非结构化数据的接入服务。·分析函数库20 万方数据基于CEP技术的量化交易系统构建第三章、卜台需求分析和高层设计提供常见的技术指标分析、科学计算函数、日期函数,提供开放的函数库接口,并提供专业分析函数库的集成,比如Matlab、Quantlib、R,同时,用户可根据自身需要灵活自定义函数指标。●日志管理在系统各个环节记录业务处理记录,通过统一的日志管理系统对外部提供系统日志查询服务。策略引擎层策略引擎层包含具体的交易策略和算法,包括主动型算法、被动型算法,还包括其它业务模型。用户可以白定义任意多的模型或交易算法。算法服务层的模型或算法和应用服务层的应用是低耦合的,从而保证了策略的独立性和可扩展性,并且可以不断优化算法。用户可以白定义任意数量的算法。接口服务层接口服务层实现核心策略系统与外围系统的IO处理,使用基于高性能的ApamaIAF技术,具备对订单请求进行解包、路由策略开发的支撑功能,能够实现高吞吐量和低时延数据传输能力,特别适合于算法交易这样的高性能处理系统,是整个系统实时分析处理的坚实基础。·FIX协议接口采用平台提供的FIX协议的适配器,能够连同所有基于FIX4.2.2以上标准的的资本市场接口,达到i00多种,其中大多数接口都使用基于FIX协议进行灵活配置的。APMAA的FIX接口通过配置后,可以直连任何遵守FIX的订单执行柜台或者报价目的地。·系统接出服务策略交易系统交易后的数据可通过系统接出服务导出到其它后台系统,如:会计系统、风险控制系统、数据中心等。 万方数据基十CEP技术的量化交易系统构建第三章,r台需求分析和高层设汁3.2.2系统逻辑架构图3—2系统逻辑架构图如图3—2所示,系统逻辑上可以划分为如下几个部分:策略交易CEP平台这部分为系统的核心功能,由ProgressApama复杂事件处理引擎来提供整个量化交易平台所需的事件驱动型高性能分析和运算。策略管理包括策略的上传、策略审批、策略发布、策略启动、策略停止等功能。业务服务平台业务服务层包含两部分,一部分是CEP网关(后台进程),完成业务逻辑和CEP交互;另外一部分是浏览器/服务器模式的应用,展示策略前端使用界面。3.2.3系统技术架构整个量化交易平台包含很多相对独立的子系统,他们在具体的技术实现上采用的技术架构有较大的不同。策略运行和回测环境采用CEP平台技术、周边系统接IZl基于IAF技术框架,而平台管理采用J2EE架构实现,本文不再赘述J2EE技术架构。 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计图3—3系统技术架构图Apama引擎提供一个快速、灵活的分析基础架构实现高效实时分析应用,为了可以有效、高效地提交连续性智能,Apama引擎层具备如下能力:●提供持续、“实时”分析结果·产生可扩展的动态实时分析·在不同处理速度下灵活提交分析信息·为全面语境、精确度提供深层次的信息·能够驱动即时建议和行动·提供访问实时信息的简易途径·支持快速、灵活的分析开发过程·支持负载均衡技术为了分析处理外部发生的实时事件,Apama引入了集成适配器框架(IntegrationAdapterFramework,以下简称IAF)。使用IAF框架可以非常简单地创建适配器来进行Apama与消息总线或其他信息源的集成。使用IAF创建的适配器可以和外部的消息系统进行通讯,解析一些格式化的消息,并且非常灵活地将它们转换成Apama的事件。所有不同的消息源接收的事件都会通过IAF转换成统一的内部格式,这就使得Apama可以在内部将各种外部信息源的事件进行关联和处理。基于IAF开发的适配器支持双向的事件信息通讯。除了可以接收不同外部信息源产生的事件并且进行格式化来支持Correlator进行统一处理,IAF也可 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计以接收ApamaCorrelator产生的事件并转换成外部系统所支持的特定的格式(例如,消息服务总线或者交易所可以识别的订单)。Apama适配器是支持Apama触发外部系统操作的关键机制一将Apama内部的事件转换成外系统可以识别的特定格式并发送到外部系统。与外部系统将消息封装成标将消息转换成双向通讯准格式蠡瞻瓯g滓件事件翔影外部系统动态热载秘卸鬣动态蟹改图3—4IAF架构图如图3—4所示,ApamaIAF框架包含了三个主要的组件。·Transport层:直接与外部的消息源或外部系统进行通讯。它的功能通过Apama提供的或者客户自己实现的Trasport层Plug—in来实现。编程语言可以是C,C++或者Java.●Codec层:将Transport层接收的外部消息转换成标准的格式,或者将ApamaCorrelator发送过来的事件转换成外部系统的特定格式。Codec层由Apama提供或者客户自己实现。编程语言可以是C,C++或者Java.·SemanticMapper层:使用XML配置文件中定义的一组映射规则,将Codec层产生的标准化格式的消息转换成Apama事件,或者将ApamaCorrelator发送出来的事件转换成Codec层可以识别的标准格式。IAF提供了高度可配置和方便维护的接口和消息/事件的映射关系配置。使用IAF创建的适配器可以随时重新配置和升级而不需重新启动。IAF的动态插件加载机制可以使用户非常方便的定制与特定外部系统的通讯方式。IAF框架将语义映射(SemanticMapper)层和Transport层分离,这就赋予了Apama相当大的灵活性。同一个Transport层与外部系统的连接可以有不同24 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计的应用。一旦Transport层与一个外部的消息源/系统建立了连接,这个连接可以支持在其之上构建各种应用。IAF是一种基于服务器的运行时服务,所有基于IAF开发的适配器都会在运行时被IAF调用。一个IAF进程可以支持一个或多个IAF开发的适配器。IAF可以和Correlator部署在同一台服务器上也可以部署在不同的服务器上。此外,IAF也可以在多台服务器上同时运行。3.2.4系统拓扑结构图3—5系统拓扑图本系统建设之后,可以支持策略交易的平台接口标准化,以及对外服务和对内研发、运维、管理等业务应用。系统的生产环境部署有5个物理服务器,分别是Web应用服务器、策略交易核心服务器、接口服务器、应用数据库服务器、以及策略交易核心服务器测试。其中,接口服务器的服务模块基于APAMA的标准接口框架IAF实现,从而满足FIX协议、多协议外部统~接入需求。3.2.5系统安全设计系统的安全设计覆盖三个方面,算法安全性、数据安全和访问控制安全3个层次。 万方数据基于CEP技术的量化交易系统构建第三章平台需求分析和高层设计算法安全性保证算法是券商的核心资产,以使用本平台实现的算法需要进行合理有效的安全保护。系统通过物理隔离和加密技术来保证算法安全。物理隔离,把不同等级用户的重要算法,通过不同的操作系统帐号或者虚拟化平台进行隔离,其他人员不能访问算法所在的虚拟主机或者没有系统权限访问对应的帐号,从而借助操作系统安全和防火墙来保证算法安全。系统后续建设可以考虑物理主机和网络的分离。加密技术针对有服务器和目录访问权限的用户的安全控制。本系统采用加密技术,算法设计人员完成算法设计后,此后该算法无法被作为正常的算法文件打开和阅读,但是可以被平台引擎iiF确地识别、解析和运行。数据安全保证敏感的落地数据如用户密码等信息不保存明文,采用不可逆算法加密保存。访问安全控制访问安全控制是系统管理中用户管理的一部分。使用基于角色的用户管理体系来保证系统管理的安全性。●角色前端应用软件提供的应用权限的安全控制体系是按照角色进行控制的,系统提供一个初始化的角色,系统管理员可以通过这个角色来初始化登陆添加用户或角色。●用户前端应用软件的应用权限中的用户都对应于各个角色中,权限通过组来限制。用户通过组来获得各种权限。只有系统管理员才‘可以建立新的用户,并且将用户加入到相应的角色中。用户登陆系统时只需要输入用户名和密码,而不需要输入或选择对应的角色名称,系统将自动将用户向他所属的角色进行匹配,如果这个用户属于多个角色,则这个用户将自动获得多个角色的权限。●权限权限类型:查看(可查看数据),编辑(可补录数据),完全控制(可查看、补录、删除数据)。在管理工具中,可将各种访问权限赋予各个角色,通过角色来完成用户权限的限制。 万方数据基于CEP技术的量化交易系统构建第Uq章量化交易、卜台详细设计与实现第四章量化交易平台详细设计与实现根据架构设计的系统划分,本章对策略开发和评估环境、策略运行环境、周边系统接口、策略管理以及业务服务平台部分进行详细的设计和实现。4.1策略开发与评估环境量化交易系统的评估环境是量化交易平台的重要组成部分。评估环境与生产环境是独立的。在评估环境下,通过强大的策略研发工具,为策略开发人员提供集成化的策略开发环境,包括易用的图形拖拽策略丌发器、策略基础库、虚拟交易所、高速的回测机制、自定义的策略回测报告等内容。4.1.1策略开发语言和开发环境策略开发语言采用EPL(EventProcessingLanguage)。这种基于事件的语言功能(EPL)提供了一个简洁而功能强大的机制,可以定义极为复杂的算法。EPL也可以与标准的Java一起使用,提供了最大的应用灵活性。EPL支持策略的嵌套调用,在策略中可以调用系统内置的指标,指标库町以由用户自行扩展。系统通讯基于Event的事件(信号)处理模式,Event是策略之间以及Apama与外部Adapter通讯的桥梁。通过Event,系统可以接入外部数据或信号,也可以将Apama内部的处理结果发送给外部。行情、订单、成交、资金信息、外部资讯、系统运行状态、日志等等都可以为Event,因此通过自定义Event,系统处理的策略可以随业务类型的不断扩展,策略不只限于量化交易,还可以扩展到风险控制、订单路由、资源控制等各个业务。策略开发工具采用可在ApamaStudio综合开发环境。该开发环境构建在开源IDE工具Eclipse之上,可以以项目的方式同时创建、开发多个策略解决方案。ApamaStudio具有代码自动完成、语法高亮、语法错误检测等特性,能够大幅度提高开策略发效率。更加方便的是,ApamaStudio提供了断点和单步调试功能,能够在策略编写过程中的迅速定位错误,进行调试。对于内部内的软件开发人员,ApamaStudi0提供了Deve]oper的视图,可以直接访问策略引擎。EPI。开发的策略可以与Apama的Dashboard无缝集成,将策略执行过程中的重要信息推送到展示界面,实现图形化展示。Apama中可以直接进行Dashboard的丌发,Dashboard中提供了70余种图表和界面控件,可以以拖拉的方式直接进行所见即所得式的界面开发,即使是非IT人员也可以快速实现自 万方数据基于CEP技术的量化交易系统构建第四章量化交易平台详细设计与实现定义的包含诸如蜡烛图、折线图、饼图、雷达图等图表的展示界面。在展示界面中可以进行多指标叠加分析。该环境以独特的方式,支持业务用户和I,f用户的应用。对于业务用户来说,EventModeler提供了图形化的开发环境,交易人员或金融工程师可以使用它来开发和部署算法策略。通过点击界面,可以实现完整的交易脚本的规范制定,其中包括启动交易的条件,这样可以将开发周期从数月、几周减少到几天,甚至几小时。ApamaStudio内还囊括了SmartB]ocks。SmartBlocks是预装组件,例如封装交易分析、订单管理功能和集成业务,从而很容易将它们整合到不同应用中。SmartBlocks中u丁以“原封不动”地被插入到系统中,或对其进行修改,以满足新要求。开发人员还可以使用创建自己的SmartBlocks。ApamaStudio中还可以进行业务集成,实现策略回测、策略提交等业务功能。4.2策略运行环境系统的核心是策略运行环境。策略交易核心引擎具有高可用性、负载均衡和横向性能扩展能力,满足不同业务需求。在交易引擎之上,系统构建了策略执行、策略运行监控、交易管理等功能。可以与大集中、网上交易系统、资产管理系统、QFII等外围系统实现规范整合。由于策略核心引擎强大的处理能力,可以保证策略的高速、正确执行。系统中的公芡计算资源如基础计算、常用指标等以公共组件的形式存在,可为不同的策略共享。各策略中引用相同参数的指标只有一个实例运行,当指标值改变时以Event的方式推送,所有订阅该指标的策略都会立即收到。系统中的策略执行可以实现QOs,当策略触发交易条件时,可以按用户级别实现下单的先后优先级处理。系统中内建交易风控功能,按照预先设置的风控策略对策略执行进行检查。当出现价格延迟过大、仓位资金异常等异常情况时,可以执行预定的步骤,保证策略执行的正确性。4.2.1高可用运行环境策略交易核心引擎具有高可用性、负载均衡和横向性能扩展能力,满足不同业务需求。在Apama交易引擎之上,系统构建了策略执行、策略回测、策略监控、交易管理等功能。可以与大集中、网上交易软件、资产管理、QFII等外围系统无缝整合。策略运行引擎可以实现双活或者多活的热备,其热备特点是: 万方数据基于CEP技术的量化交易系统构建第四章量化交易平台详细设计与实现l-完全依赖于CEP平台自身提供的机制来进行主点失败检测,自动切换到备点,不需要第三方的检测工具。2.切换时问非常迅速,根据配置不同,可以实现最快3秒之内切换到备点。完全实现了热备份,所有的状态信息都不会丢失。3.可以实现多平台互备。4.根据CEP平台启动的时间长短来确定主备点,当原主点失败恢复后,不需要切换回去。4.2.2策略运行监控策略运行的重要信息以事件(Event)的方式传递到统一的监控平台,可监控的信息包含策略运行过程中的运行参数、状态、实时数据、信号、策略涉及的子策略、公共指标、性能统计分析和系统硬件资源等。因为采用了异步传输机制,监控信息的传输不会影响到策略本身的执行效率。监控平台以图表、图形的方式展示策略运行状态。策略运行中产生的日志采用异步的方式记录到数据库中,通过日志查询界面进行展示。系统对外提供获取监控信息和系统口志的访问接口,第三方系统可通过接口获取相关信息,也可以订阅相关事件,数据发布服务可按订阅情况进行消息的主动推送。4.3CEP周边系统接口算法交易平台需要与交易系统、行情系统、金融数学函数库等周边系统配合,满足多样化的量化交易需求。4.3.1交易类系统接口交易系统接口为算法交易平台的生产环境提供交易功能支持,具有标准接口规范,通过AGC集中交易系统支持国内沪深两市的现货,通过上期平台支持国内期货和金融期货。算法交易平台的评估环境不接入交易系统接口。在灾备设计方面,系统内部实现多路交易系统切换和主备机制,消除了算法服务器引起的单点故障。主备交易服务之间通过心跳机制来实现互相切换,当各用服务连续5次(可以配置)收不到主用服务的心跳回包时就切换至1作状态。当备用交易服务启动工作的时候,需要向CEP平台获取当前用户信息进行用户登录操作。当29 万方数据基于CEP技术的量化交易系统构建第四章量化交易、卜台详细设计与实现所有用户都登录成功后,再向CEP平台获取所有未结束的委托单信息并启动查询成交回报线程。同时可以接收新的业务处理。系统基于统一交易接口,支持某证券公刮现有的柜台系统、上期技术期货交易系统等交易系统。同时交易系统接口支持配置化,方便以后的接口扩展和升级。图4-1交易接口与策略运行系统结合,控制等管理功能。AGC适配器主各交易服务支持交易通道状态、交易流量、通道功能集中交易系统适配器,完成对于沪深两市证券市场的委托指令、撤单指令和资金余额查询、回报查询,以及其他的对应指令封装。其中委托、撤单等指令为同步处理,回报采用异步独立线程轮洵机制。上期技术综合交易平台商品期货和金融期货交易系统适配器,完成对国内期货市场的委托指令、撤单指令和资金余额查询、回报查询,以及其他的对应指令封装。其中委托、撤单等指令为同步处理,回报采用异步独立线程轮询机制。4.3.2行情类系统接口行情接口支持股票、期货等多市场实时行情(包括交易所和主流第三方供应商的数据)和外部市场数据源。针对凹测环境,支持标准数据库接n,提供对海量高频历史行情的数据的回测支持。接口以标准接口形式提供,支持作为独立行情源为平台内部和外部订阅者提供行情数据服务和研究数据服务。系统内部实现多路行情源切换和主备机制,消除单点故障。 万方数据基于CEP技术的量化交易系统构建第四章量化交易平台详细设计与实现4.3.3行业标准数学系统接口量化交易平台需要提供标准Plug—in接口规范,允许常见金融工程工具(如Matlab、Quantlib、R等)的接入。在上述接口之外,应该提供二次接口开发包和相关新接口的开发规范,为了后续拓展,如SAS、TinySoft提供支持,满足多样化的策略交易需求。4.4策略管理≮乏Id。箩@j<>矿~———。\<一一/簧墨员一尊差兰耋銎二一_::::警/互S、’i’、、.‘、L.、L苎!竺竺苎竺L夕甲’④◇。’≤厂|吴74.4.1策略上传和策略参数发布为了支持策略管理者方便添加、修改策略的参数。策略参数的发布支持两种方式,一种是图形化界面发布,另一种是xml文件发布,参数xml文件随策略文件一起上传至服务器,不管以哪种方式发布策略参数,WEB策略展示端都能动态将策略参数展示出来。(1)图形化界面发布界面如下: 万方数据基fCEP技术的量化交易系统构建第四章量化交易平台详细设计与实现图4—3策略发布页面(2)xml文件发布,文件格式如下:</param></param></param></params>节点说明:Cnname:参数中文说明Enname:参数英文名称,需要与策略中使用的名称一样Paramtype:参数类型,number:数字型(int、float、double、long),string:字符型,当Inputtype为input。前端需要校验用户输入值的类型Inputtype:输入框类型,类型有:input:输入框,select:下拉选择框,checkbox:复选框,radio:单选框defaultValue:默认值valueList:如果Inputtype是input以外的,此参数必须的,格式:label=value$1abel=value,如:快速EMA=L2$慢速EMA=26。32 万方数据基于CEP技术的量化交易系统构建第四章量化交易,lt台详细设计与实现4.4.2策略状态变化流程图4—4策略状态变化图如图4—4所示,生产环境的策略生命周期包含上传、审批、发布、运行、异常以及使用中等多种状态,其状态随着管理流程的不断变化而发生变更。 万方数据基十CEP技术的量化交易系统构建第四章量化交易!『台详细设计与实现4.4.3权限管理,,——、0-4‘≤!≥>;;川。八-、、~—/<)/\早一毒,,‘、、、、户、/她矾嘲用户纽_望!兰)≮善...、..。刑ude,,用户投甩襁\-f/、■一7、、、’。‘一.‘‘‘“cI”.r,7:。。雠,,?‘、÷c二咄?。确矗≥一.。.,·‘≮<Ⅸ州e>>j■⋯誓:‘确£|u如)’。。-.÷、/0删。j删曲一1、.、~|、.。’。‘::≯———~.@④@@。:丢尹图4—5权限管理用例图作为企业级的应用,系统拥有完善的权限管理功能,可以给每个客户设置不同的权限。各个客户的用户账号有自身的特征信息属性,且根据在用户类型和操作主体的差异,其权限受至fJH<同范围的限制。系统中不同的用户,可以使用的算法交易策略有所区别。系统提供专门的管理界面,能够对交易策略的适用客户进行授权,并保存以供使用。岗位管理概述:岗位权限管理员负责定义岗位,并为岗位分配权限,可定义岗位的策略分配权限。可查询所有岗位,也可新增岗位定义,维护岗位中成员。岗位权限管理员可以对岗位进行筛选查询。点击“新增”,在打开的页面中输入“岗位编码”、“岗位名称”和“岗位描述”,选择“岗位数据权限”和“岗位类型”,之后点击“提交”,即可新增一个岗位:巍键鹣位。ij隧擅爝硒:。辫整皂旃:;糍搜撼舞粳鼹:藤舔辩牵瓣罐,,潜搜粪型:秉缡譬澄委t;瞵绶豢逑;一IIII■料—翟豳■。■翻图4—6岗位管理新增页面点击“失效”/“恢复”,可以禁用/启用岗位;点击“修改”,可以修改岗位的详细信息;点击“查看加入人员”,可以查看所有拥有该岗位的用户: 万方数据摹于CEP技术的量化交易系统构建第四章量化交易平台详细设计与实现袅效标恚操作有效l熊裁|修改查看加入人员有效I巍效l修改查看加入人员有效}一热藏l停敬查看加入人员图4—7岗位管理修改页面用户管理概述:用户权限管理员可查看所有用户人员资料,并可为其配置岗位,用户的策略分配权限在其所属岗位的策略分配权限范围内。输入“员工编号”或“姓名”,选择“所属岗位”或“所属部门”,作为查淘条件,可对用户进行筛选查询;所有用户的岗位及岗位权限根据业务管理的需要定义和分配,不存在自带岗位、默认权限以及权限间的捆绑。粳懿缝掺嘲:I鞴位箍稼滗位编玛~一⋯⋯_~"⋯~·⋯⋯m,,⋯、*一’j7⋯t一⋯)⋯'_1、一^‘豢缡管理爨ie∞慧疑璎1010戳想镣溪:1020想够袋躐蠲嚣遵僳瓣缝le0巷队拳《链濑豳瓢謦理串黧置j10-40攀I!:|慧窿靛褥舔澜1050fj营烂部譬瑾岗1055鬻虹部箍籁圃酸艇(撩酾鞠13k麓淫审粼嚣)lo∞翳藕蕤静莰撩髓词1070i薹慧鼗静蠲罂1080l_|I:i】多潞馒诗缮l密90≯j酶窆麟生声犬曼1095簟豳■蠲4.4.4系统留痕管理图4-8权限维护页面概述:系统对用户的登录、退出以及与权限变动有关的操作进行记录,具有对记录的分类查询功能。在系统的一切操作均可以实现留痕管理,包括每次具体的访问模块、具体的访问时间、该次访问的登录IP、在每个模块的具体操作内容及设置变化。具体展示形式及字段可以根据业务要求进行设置。4.5业务服务平台业务服务层包含两部分,一部分是CEP网关(后台进程),完成业务逻辑和 万方数据基于CEP技术的量化交易系统构建第四章量化交易平台详细设计与实现CEP交互;另外一部分是浏览器/服务器模式的应用,展示策略前端使用界面。CEP网关,通过高级编程语言实现交易控制的业务流程、算法交易的业务流程等业务流程。核心技术有:●通过MVC的设计模式,实现业务逻辑与界面展示的分离。·基于标准接口的模块化设计。各个模块就接口规范进行松耦合设计,针对接口变化采用桥梁模式进行适配。·使用分布式部署结构,支持负载均衡和无限横向扩展·高性能、高可靠的消息推送技术。使用apache开源的消息总线产品activeMQ。BS应用部分采用传统的J2EE,这里主要关注CEP网关和外部系统的通信协议的构建。4.5.1业务服务层用例业务服务层完成外部系统向量化交易平台的指令下单,交易指令包含“执行”和“演算”两种模式,用户可以使用执行模式,直接下达交易指令,量化交易策略自动完成交易;而“演算”指令模式下,当量化交易策略捕捉到交易机会后,系统会首先提示最终用户,如果最终用户确认交易,则交易开始执行,用户可以选择取消,主动放弃这次交易机会。(1)交易指令用例QFII重统<一>一(D⋯⋯<<⋯includ—e>>⋯~≤≥一一一一又竺:,⋯⋯一⋯,:≥>.,’。。。岫,,、、、’、、j?”嫡。’。|、÷。。.:’t一||。、。、.,+、、<——、t较露苗曩j\、———/图4—9交易指令用例图(2)查询指令用例查询指令完成对策略执行状态,交易执行明细以及交易执行指令的查询。秒j。誓擎.一\.◇ 万方数据基于CEP技术的量化交易系统构建第四章量化交易、lt台详细设计与实现钟I【蓑统./7—————、.<>、≯—一——/-r,,。_。+,<≤I口d矗"/一———————————~::::一佛№"又、兰兰:!兰兰:竺竺/::一.::-~-‘铡9‘岫爹一一—————~—、1~、、、..汹咄§兰要:竺兰!竺竺/。’、一,l。@、,\④图4一10查询指令用例图4.5.2与现有客户端对接方案涉及到算法交易的所有的界面采用B/S结构(WEB)开发,包括查看策略、策略参数设置、指令状态查询、下达指令等。现有客户端(网上交易、自营资管、QFii、RQFii)只需要通过这些定制的界面通过.net或者c++内置的webBrowers嵌入即可。客户端和网页之问通过互相调用api函数来实现通信。 万方数据基于cEP技术的量化交易系统构建第五章订单管理子系统详细设计与实玑第五章订单管理子系统详细设计与实现订单管理子系统相对独立,并对策略快速开发和测试具有非常重要的意义,因此,作为一个独立的章节进行讨论。其核心作用是,接受用户(策略及其使用者)的委托请求,向交易柜台转发请求,接受交易柜台成交信息,进行整个生命周期的状态管理,在每一次状态变更后,回调最终用户操作。同时用户可以随时查看当前的状态。5.1用例分析通过系统分析,系统有4个参与者,包括OrderPublisherStateContainer(委托者)、OrderReceiverStateContainer(柜台代理)、OrderUpdate(最新状态)和orderstatus(状态管理)。。,。。,。。。。沁。,。。。;叁:一/蹙耩状卷、、‰Ⅶ。一,∥矿森e————Cance上0rder是一个撤单指令,其中主要包含要撤销的委托单的orderld,注意这里并不是委托单号。Cance]Order的结构相对简单,只是包含了OrderId,其类型是string,OrderId需要和要撤单的NewOrder的Id一致,否则会被系统拒绝。出于系统扩展的考虑,添加dictionary类型的变量extraParams,可用于存储撤单原因等附加信息。OrderUpdate提供Order的所有状态的完整快照。用来传递状态变更信息。表5-2OrderUpdate字段说明字段名称字段类型字段描述orderIdsirlngNewOrder中的orderIdsymbolstrlng证券代码,一般是原来传入的代码,但是可以做修改。DrlCefloat委托价格Sidestrlng买卖方向typeStrlng委托类型quantityInteget’总委托数量inMarketboolean是否已经在交易所撮合队列中。isViSibleboolean是否对交易所可见modifiableb001ean是否可以修改,针对中国市场,此处恒为falseeancelledboolean是否已撤单。包含的状态有废单和已经撤销的委托orderChangeRejecteboolean最近的修改操作是否失败dexternal1yModifjedboo]ean委托单是否被外部系统修改unknownstateboolean是否是不可知的状态marketorder工dStrlng委托单号。此处是指柜台返回的在撮合系统中的委托单号qtyExecutedInteger已经执行的数量qtyRemainingInteger未执行的数量lastSharesInteger最近一次成交的成交数量.1astPricefloat最近一次成交的成交价格ftoatavgPrice平均成交价格StatUSStrlng委托单状态描述extraParamsdiCtionary其它扩展参数实现。 万方数据基于CEP技术的量化交易系统构建第五章订单管理子系统详细设计与实现5.2.2对象类设计OrderPublisherStateContainer用来提交委托、撤单以及定义委托单状态变更时的回调函数。1.OrderPublisherStateContainer核心方法addUpdateListener方法,两个输入参数name和callback,name用来标志listener的名称,callback参数的类型为函数指针,指向一个输入参数为整数和OrderState指针的函数。这个函数是用户自定义的函数,每一次委托单状态的变更都会回调这个函数,用户可以通过的OrderState的判断来确定针对委托单变更需要采取的操作。submit方法用来提交一个新的委托单,使用一个NewOrder类型的输入参数。这个函数完成OrderPublisherStateContainer和NewOrder之间的一对一的绑定,同时初始化OrderState,并打开对该委托单的OrderUpdate的监听。canccl方法用来对submJt函数绑定的委托单进行撒单操作,使用一个CancelOrder类型的输入参数。cancel方法调用cancelWithExtraParams方法来完成具体的执行。handleUpdates是OrderPublisherStateContainer的私有方法,当监听到该委托单的状态变更后,调用这个方法来更新OrderPublisherStateContainer的OrderState。2.OrderPublisherStateContainer交互接I]OrderPublisherStateContainer的提供丰富的外部接口,通过这些接口,委托单的发出者能够准确的获取该委托单的丰富信息。比如,获取ContainerID的方法。赫鬻瓣震熏麓纛黼羹蠢麓蠢43 万方数据基于CEP技术的量化交易系统构建第五章订单管理f系统详细设计与实现OrderReceiverStateContainer用来接收委托单,并处理各种柜台操作(成交、委托)导致的状态变化。用在和柜台接口交互的Apama文件中。这里仅介绍比较常用的方法。1.OrderReceiverStateContainer核心方法receiveOrder方法中,传入参数为NewOrder,用来绑定NewOrder,方法首先根据传入的NewOrder初始化OrderUpdate,并发送出去,OrderPublisherStateContainer能够收到这个信息,此时委托单的状态为”sendtoadapter”。其中setupNeworderReceiver方法完成NewOrder的整个receivet的初始化工作。acknowledge方法,传入参数是市场的委托单号。用在委托确认后的状态设置,OrderReceiverStateContainer会更新委托单状态中的marketorderid字段,并把status设置为“inmarket”。然后同步状态信息。fill方法,传入参数是成交价格和成交数量。同在收到该委托单的一个成交信息时,OrderReceiverStateContainer更新最近成交价格、最近成交量、已成交数量、已成交金额、剩余数量等信息,并更新委托单状态为”partdeal”,然后同步状态信息。fillwithoptionalFinalise方法来完成真正的业务逻辑。userCancel方法,用来确认收到了一个对该委托的~个撤单请求,状态会更新为”Userrequestedcancel”。然后同步状态信息。commitCancel方法,在收到了市场的已经撤单完成信息时被调用,调整状态为”cancelled”然后同步状态信息。2.0rderReceiverStateContainer参乏互接口和OrderPublisherStateContainer类似,作为接收端的状态管理者,OrderReceiverStateContainer也提供了很多类似的交互接口供外部调用查询,这里不再一一赘述。OrderStateOrderStave用来封装OrderUpdate,并提供了大量的查询接口。每一个OrderPublisherStateContainer和OrderReceiverStateContainer都有一个orderState的成员变量,并通过消息不断进行同步。1.OrderState的全局变量OrderState中的全局变量分为核心状态变量、创建状态变量、状态转化变量以及交易跟踪变量等,分别记录不同的类型的状态变化。核心状态变量 万方数据基于CEP技术的量化交易系统构建第五章盯单管理子系统详细设汁与实现OrderUpdatenewState,是私有变量,用来保存最近的状态更新的OrderUpdate。previousPrice,私有变量,用来保存上一次变化的价格,类型为float:previousQuantity私有变量,用来保存上一次变化的数量,类型为integer:previousQtyRemaining,私有变量,用来保存上一次变化的剩余的待执行数量,类型为integer:previousQtyExecutcd,私有变量,用来保存上一次变化的执行数量,类型为integer:previousExtraParams,私有变量,用来保存上一次变化的参数,类型为dictionary:newOrder,私有变量,用来保存原始的委托单,类型为NewOrder:prefix,私有变量,用来保存前缀,这个变量供日志使用,类型为string:创建相关变量issueTime,私有变量,用来保存state创建时间,类型为float:记录发送目标的变量usingFirewall,私有变量,用来保存是否使用防火墙,类型为boolean:firewalITargetService,私有变量,用来保存所使用的防火墙的服务ID,类型为string:marketId,私有变量,用来保存目标的市场,类型为string:exchangeId,私有变量,用来保存目标的交易所,类型为string:serviceId,私有变量,用米保存委托单管理的服务ID,类型为string:brokerld,私有变量,用来保存券商或者营业部的ID,类型为string:bookId,私有变量,用来保存订单簿ID,类型为string:ownerId,私有变量,用来保存用户ID,类型为string:状态变量acknowledged,私有变量,用来保存已报的状态,类型为boolean:final,私有变量,用来保存最终的状态,表示整个委托单的生命周期结束,类型为boolean:sent,私有变量,用来保存已经发送,但是还没有收到委托确认的状态。,类型为boolean:isCancellingOrder,私有变量,用来保存正在撤单的状态,类型为boo]ean:45 万方数据基于CEP技术的量化交易系统构建第五章订单管理子系统详细设计与实现最新交易细节的状态变量isJus;New,私有变量,用来保存最近操作是否是新提交委托的状态,类型为boolean:isJustSoftRejected,私有变量,用来保存最近操作是否是不是被拒绝的状态,类型为boolean:isJustAcknow]edged,私有变量,用来保存最近操作是否被市场确认的状态,类型为b001ear:isJustCancelApplied,私有变量,用来保存最近操作是否开始撤单请求的操作,类型为boolean:isJusLCancelCommitted,私有变量,用来保存最近操作是否撤单确认的操作,类型为boole&n:1‘sJustCancel}{ejected,私有变量,用来保存最近操作是否撤单确认失败的操作,类型为boolean:is3ustExecuted,私有变量,用来保存最近操作是否是一笔成交,类型为boolean:1’sJustFina],私有变量,用来保存最近操作是否结束整个生命周期的操作,类型为boolean:状态变化变量cash,私有变量,用来保存当前的总交易金额,类型为float:rejectedQuanLny,私有变量,用来保存被防火墙废单的数量,类型为integer:rejectedPrice,私有变量,用来保存被防火墙废单的价格,类型为float:rejectedExtraParams,私有变量,用来保存废单的参数,类型为dictionary:2.OrderState的函数OrderState中的方法主要分为两类,一类对应OrderPublisherStateContainer和OrderReceiverStateContainer中改变order状态的方法,比如,acknowledge、userCancel等等,当OrderReceiverStateContainer调用与之对应的方法时,orderState对象调用这些方法完成状态的更薪。Acknowledge方法用来在委托确认成功后维护委托单的状态,会更新状态委托单号,产生新的OrderUpdate,同步状态。擎蔫骥飘蔫藕麓麓自麟i《瓣《i麓 万方数据基于CEP技术的量化交易系统构建第五章订单管理予系统详细设计与实现UserCancel方法用来响应用户提交的撤单请求,会把状态转化为用户提交撤单请求状态并进行同步。鬻一l隧黎鋈蘩熏纛鬻纛◇鬻蠢l饔熬籀纛震CommitCancel用来响应撤单请求已经确认的情况,此时委托单状态会被设置为正在撤单。骥黧鞴挚 万方数据基十CEP技术的量化交易系统构建第五章汀甲.管理了系统详细设计与实现绝。rejectCance]用来响应撤单请求失败的情况,委托单状态显示撤单被拒Fill方法用来响应收到一笔成交的情况,系统更新成交相关信息,并同步对应的状态。 万方数据基于CEP技术的量化交易系统构建第五章汀单管理子系统详细殴汁与实现所有的交互操作都会最终调用processUpdate的私有方法,这个方法用来生成新的OrderUpdate,并在OMS子系统内传递这个状态。另外一类方法是状态查询类,通常用在用户回调函数被激活后,判断委托单的当前状态的操作。比如,justAcknowledged方法,如果上一个动作是acknowledge,这个方法就返回true,否则返回false。而isAcknow]edged方法与之不同,如果该委托单为一个已经确认过的委托单,不管最近发生的状态变更是什么都会返回true。5.3状态变更委托单状态变更分析,和在柜台中的委托单状态相比,策略交易平台的委托单状态包含的内容更为广泛。委托单生成后,NewOrder会首先传递到firewall中进行一些风险控制的检查,此时的状态是“sendtofirewatl”,如果不符合风险控制的规则,委托单状态变更为”rejectedbyfirewall”,整个委托单的生命周期结束。风险检查通过后,委托单被发送到接口的适配器,此时为OrderRecieverContainer所接收,状态为sendtoadapter,经过OrderRecieverContainer转发后,状态转换为”sendtomarket”,并开启委托确认监听,当收到委托失败的消息后,表示系统废单,委托单状态转换为”rejectedbymarket”,委托单生命周期结束。如果在指定的时问内,系统没有收到委托确认信息,此时有可能是和接口49 万方数据基于CEP技术的量化交易系统构建第五章订单管理子系统详细设计与实现失去连接等异常情况的出现,此时委托单转换到”unknownstateA99生命周期结束。图5—3订单管理状态图收到了成功确认信息,委托单状态转换为”inmarket”,此时开始接受该订单的成交回报信息。当接到成交回报信息,如果为全部成交,状态转换为”filled”,然后发出委托单Finished的状态。如果为部分成交,并且撤单的数量和已经成交数量之和为全部委托数量,转台转换为”cancelled”,并发出委托单Finished的状态;如果为部分成交,并且并且撤单的数量和已经成交数量之和小于全部委托数量,委托单状态为partfilled,并继续等待新的成交回报。“finished”状态,是整个生命周期的最后一个环节。5.4系统调用时序OMS子系统完成对委托单状态的管理,实现状态变更和内部的通信机制,并进行完整的封装,对外部透明OrderUpate和OrderStatus的存在,用户只需 万方数据基于CEP技术的量化交易系统构建第五章讨单管理子系统详细设计与实现要使用OrderPublisherStateContainer发布委托单,并注册状态变更时的回调函数即可。鬯嫩墅缫篓爱i鲤雯i型i受鲤丑i鬯豳.。』型!枷‘“。~瀚’。)f_.一—J|{一一一j磐竺7掣竺鬯一一囊i蟊谥;j;{Il4——r—o㈠⋯⋯⋯H!竺鬯+j匹i黼;“——————————』5·m“N6““!×liL一㈣。⋯~⋯。一E!—!竺?”””“q-;“.。。。笋型⋯“q垂掣阿。。⋯⋯.i:}卜“一『一~p’!■’IP~一二5,掣警一一⋯一;一一一一厂—墓]豁⋯⋯⋯寸il芦}⋯卿“j}1{::!了一⋯:li⋯一i:删竹:.一.一,:一一旦⋯⋯j譬£{i徊㈠jd。c帅醛{{】l广]年+■“图5-/1订单管理时序图图5-4对用户委托、撤单内部流程进行深入细致的描述: 万方数据基于CEP技术的量化交易系统构建第五章司单管理予系统详细设计与实现1.用户策略创建出OrderPublisherStateContainer后,调用其addUpdateListener方法,添加回调函数。当状态变化时,该函数会被自动激活。2.根据策略的业务逻辑生成委托单NewOrder,3.OrderPublisherStateContainer调用subait方法提交委托单,此时,OrderPublisherStateContainer会创建OrderState,为该委托单初始化状态,并开始订阅OrderUpdate。并发出委托单。4.交易柜台适配器接收到NewOrder后,创建0rderReceiverStateContainer,凋用其receiveOrder方法,此时首先创建新的OrderState,并发布OrderUpdate,当前委托的状态是已被adapter接收。5.OrderPublisherStateContainer会收到这个OrderUpdate,调用OrderState的processUpdate来处理这个OrderUpdate,然后调用用户定义的回调函数通知策略委托单状态已经变更。6.交易柜台适配器向柜台系统发出委托单,并订阅委托确认。收到委托成功后,调用OrderReceiverStateContainet的acknowledge方法,产生新的OrderUpdate,会更新委托单号(来自于柜台)和当前状态为“inmarket”,并发布这个状态,OrderPublisherStateContainer会收到这个OrderUpdate,调用OrderState的processUpdate来处理这个OrderUpdate,然后调用用户定义的回调函数通知策略委托单状态已经变更。如果委托失败,调用reject方法,退出整个流程。7.收到委托确认后,柜台接口开始监听成交回报信息,如果收到成交回报,0rderReceiverStateC0ntainet会调用fi]1方法,更新OrderUpdate。OrderPublisherStateContainer会收到OrderUpdate并做上述的处理。8.如果收到的成交回报已经是全部成交,OrderReceiverStateContainer的会自动产生两个OrderUpdate,前一个显示目前委托单的状态是“全部成交”,后一条显示委托单的状态是“结束”。9.流程中的36~39,显示的是对撤单指令的处理,基本的机制和成交回报处理是一致的。5.5配对交易策略实现通过量化交易平台的构建,最终用户可以依托平台和基础服务快速定制其交易策略,并通过回测环境进行测试后部署到生产环境。在这个环境上我们完成了配对交易策略,并进行了回测测试和试运行。 万方数据基于CEP技术的量化交易系统构建第五章订单管理子系统详细设计与实现5.5.1配对交易策略说明交易标的1:工商银行601398。交易标的2:建设银行601939。YO是标的1最新交易日成交均价,交易日的成交均价;X0是标的2最新交易日成交均价,交易日的成交均价;Beta为同归系数:Y1、Y90标的1分别是今日往前1、90个X1、X90标的2分别是今日往前1、90个彝e‰=鼍胖尚毛,⋯玛雾=紫m警V$9+5rv‰=玛一beta凇墨,t=乳。。,30,诤霉令g和遥去30个蔓翕舀夭熊s,篷=meam(sl:s。巷》,鼬个交翳国的‰麴冀数平i匀馇鞋=std(s,:墨l。》,霎。夸交弱囵豹‰解撩灌羞s》鞠;蕊毽一《go一蠡》,器情形l:if(spread)1),卖空1股工商银行,买入betaI股建设银行;建仓后,ir(spreadl,初始资金lOOw,当beta=i的时候卖空50w工商银行,买入50w的建设银行;当betas:3的时候,卖空25w的工商银行,买入75w的建设银行。5.5.2配对交易策略实现根据分析,我们使用平台提供的相关系数计算工具correlatorCalculator来计算回归系数,然后计算spread,并根据spread的值进行配对交易。策略首先调用系统基础模块进行登录,登录后显示相关交易标的的仓位和资金信息。登录页面如图5—5所示。 万方数据基于CEP技术的量化交易系统构建第五章订单管理子系统详细设汁与实现瞳匦羹曩蘑系囊蔓圈誊蹙羹霖j+,o+};;¨橼p¨;o?图5—5系统登录页面登录成功后,对相关系数计算工具correlatorCalculator进行初始化,并启动相关系数计算器,示例代码如下:策略开始订阅工商银行(601398)和建设银行(601939)的历史行情,并发布到相关系数计+算器,从而触发相关系数的计算处理,计算的结果会触发回调函数handleBetaValues。在这个回调函数中,beta值会转换成S值,并route出去。策略引擎接到s值后,计算S值的30天的平均值和标准差,并进一步计算基差spread。示例代码如下:此时的业务流转到对不同基差的不同交易处理,这里不在赘述。 万方数据基于CEP技术的量化交易系统构建第五章订单管理子系统详细设计与实现5.5.3配对交易策略实现小结整个配对交易策略的代码只有短短的180行代码,而且核心的组件已经经过了长时间的测试和评估,所以整个开发和调试的周期非常短。借助于策略评估环境可以快速的对该策略进行历史绩效分析,从而确定策略的可用性,确定是否在生产系统中使用该策略。而策略管理系统提供了策略上线运行的全部的管理功能,通过该系统,可以完成策略的审核、授权、发布和运维管理。通过配对交易策略的实现可以看出,量化交易平台和基础服务的构建,可以帮助最终用户快速构建、测试、回测和管理用户自定义的交易策略。 万方数据基于CEP技术的量化交易系统构建第六章总结与展望6.1总结第六章总结与展望本文阐述了量化交易平台系统的完整架构,涵盖策略开发和评估环境、策略生产环境和平台管理j三个主要部分。其中策略丌发和评估环境中,用户完成策略的编写、调试,然后进行系统的样本内回测、样本外回测和仿真测试,并对策略的有效性和安全性进行评估。策略评估确认后,通过平台管理完成策略访问权限控制等功能,发布到生产环境进行部署,提供给最终客户使用。本文还针对量化交易平台重要的基础服务一订单管理子系统进行了详细设计和封装。量化交易平台的用户策略直接使用这个基础服务可以高效管理策略的委托单,大幅降低策略开发和调试时间,从而提高整个量化交易平台的使用效率,降低维护的成本。当然量化交易平台还可以采用不同的技术流派进行架构,本文仅通过采用CEP技术来搭建量化交易平台,这只是量化交易平台的某一种技术,只是冰山一角。6.2展望研究已经表明量化交易能够在一定程度上提升市场的质量,包括带来更好的流动性和更低的波动性,因此监管者和交易所一定会为鼓励其发展。根据欧美市场的经验,交易所可以通过提升n、软硬件的性能,为量化交易提供专用的高速数据接口、降低交易系统的延迟以支持其发展,此外还可以允许经纪商将服务器设在交易所附近以缩短信息反馈时间。而监管者应当对投资者进行量化交易相关知识的教育,帮助投资者了解量化交易的技术原理以及其对交易成本产生的影响,特别应当使个体投资者充分认识量化交易对市场微观结构带来的影响:大额订单不再是机构行为的特征。止hJ'l-,监管者应当促进券商对量化交易产品的研究和开发,督促其制定相关的产品陈述标准,保护投资者选购及使用量化交易产品的合法权益,为量化交易创造良性发展的环境。当然,证券市场可以通过充分发挥市场机制的作用促进量化交易的发展。大型投资者为了降低交易成本,保持竞争优势,自然会增加对量化交易的研究和投入。而量化交易产品在设计完成后具有很小的边际成本,因此中小投资者也能以比较低廉的价格使用量化交易。最终这项技术将能够减少交易的摩擦和成本,促进更加高效的风险分摊和风险对冲。从技术趋势上看,国内资本市场的信息系统多采用定制化的开发,系统间 万方数据基于CEP技术的量化交易系统构建第六章总结与展望缺少标准协议的支持,而量化交易平台有需要和多种多样的外部系统进行交互,这在技术层面卜会制约量化交易系统的发展,因此,FIX等协议在国内资本市场上的广泛应用会成为未来系统建设的趋势,因此,下一步量化平台的建设应该增加对FIX协议的晚上支持。必须要认识到,量化交易平台的建设不会一蹴而就,而是一个长期迭代不断求精的过程,随着量化交易平台的深入应用,可以开发更多的基础服务来不断完善整个平台。量化交易平台除了技术上的要求,目前还有受制于许多其他因素的制约如:政策环境、市场环境和信息环境等。但可以预见的将来,这些制约因素也会随着量化交易的开展而逐步宽松逐步向成熟的资本市场靠拢,届时量化交易平台将可发挥更大的作用。 万方数据慕于CEP技术的量化交易系统构建参考文献[1]Drogoul,D.VanbergueandT.Meurisse,2002,Multiagent—BasedSimulation:WhereAreTheAgents?,LNAI2581,卜15.[2]Madhavan,2002,VWAPStrategies,Spring2002,32—38.[3]AjaiS.,andRoberta.J.,2001,TheLiquidityDiscount,MathematicalFinance11(4),447—474.[4]AlexFrinoandandrewLepone,2010,MarketQualityandTheTrendTowardsAlgorithmicTrading,WorkingPaper.[5]AlgorithmicTradingandMarketAccessArrangementsInAustralia,ASX,2010.-_6]Atmgren,R.andJ.Lorenz,2006,BayesianAdaptiveTradingWithADailyCycle.JournalofTrading1(4).[7]Almgren,R.andJ.Lorenz,2007,AdaptiveArrivalPrice.Spring2007(1),5966.[8]Almgren,R.andJ.Lorenz,2010,Mean—VarianceOptimalAdaptiveExecutiOn,SubmittedForPublication2009.[9]Almgren,R.andN.ChriSS,1999,ValueUnderLiquidation,Risk1261—63.[i0]Almgren,R.andN.ChriSS,2001,OptimalExecutionofPortfolioTransactions.JournalofRisk3(2),5—39.[11]Almgren,R.,2007,knalytI’CFoundationsofAlgorithmicTrading.PresentationatTradeTech2007,PariS,AprJ]27.[12]ArJfoviC,J.,2000,EvolutionaryAlgorithmsInMacroeconomicModelS,MacroeconomieDynamiCS4,373—414.[13]AyeshaK.A.andJ.Kaljuvee,2007,CompleteTechnologyGuidesForFinancialServicesSeries,Elsevier.114jBerkowitz,S.,D.Logue,andE.Noser,1988,TheTotalCostofTransactionsOnTheNYSE,JournalofFinance4l,97112.[15]Chaboud,Alain,BenjaminChiquoiDe,ErikHjalmarsson,andClaraVega,2009,RiseofTheMachines:AlgorithmicTradingInTheForeignExchangeMarket,UnPublishedManuscript,Federa]ReserveBoard.58 万方数据基于CEP技术的量化交易系统构建参考文献[16]Chan,L.K.C.,andLakonishok,J.,1993,InstitutionalTradesandIntradayStockPrJceBehavJor.JournalofFinancialEeonomiCS33,173—199.[17]Chan,L.K.C.,andLakonishok,J.,1995,TheBehaviorofStockPricesAroundInstitutionalTrades.JournalofFinance50.1147~1174.[18jthan,N.andShelton,C.R.,2001,AnElectroniCMarketMaker,TechnicalReport200—005,M1TArtificialIntelligenceLaboratory.19]Chen,S.一H.andLiao,C.C.,2005,AgentBasedComputationalModelingofTheStockPriceVolumeRelation,InformationSciencesl70(1),75—100.[20]Chen,S.一H.andYeh,C.一H.,2002,OnTheEmergentP1’opertiesofArtifiCialStockMarkets:TheEfficientMarketHypothesiSandTheRationalExpectationsHypothesiS,JournalofEconomiCBehaviourandOrganization49(2),217—239.[21]Cosmin,G.S.andV.Robu,2005,AnAgentStrategyForAutomatedStockMarketTradingCombiningPriceandOrderBookInformation,ComputationalIntelligenceMethodsandApplications,2005ICSCCongr[22]MarkeTechneSSDas、tS,ologOn.S.,2003,IntelligentMarketTechnicalReport2003—005,yAILab/CBCL.MakingInArtifiCialFinancialMassachusettsInstituteof[23]Domowitz,I.,andH.Yegerman,2005,MeasuringandInterpretingThePerformanceofBrokerAlgorithms,ResearchReport,ITGInc.August2005,B.[24]陈炜,吴世农,2010,交易信息、订单簿透明度与投资者订单提交策略[J],证券市场导报,2010年12月号。[25]曹力,曹传琪,邵立夫,2010,算法交易系列研究之三一~改进型vwAP策略及实证,联合证券。[26]但功伟,2007,中国证券市场执行风险的建模与应用研究[D],天津大学。59

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭