资源描述
December 9,2011,#,2013 Software AG.All rights reserved.,#,|,Click to edit slide title(use sentence case),Click to edit Master text styles,Second level,Third level,Fourth level,December 9,2011,#,2013 Software AG.All rights reserved.,#,|,Click to edit slide title(use sentence case),Click to edit Master text styles,Second level,Third level,Fourth level,中天证券量化平台,Apama,CEP,介绍,策,略开发培训教程,张坤,QQ,群:中天证券,apama,项目,2013.12.28,日程,Apama,CEP,简介,功能,优势,中天证券量化交易平台介绍,目标客户群体,为目标客户带来的价值,Apama,EPL,策略开发培训,Apama,Studio:,新建项目工程,EPL,特性简介,:Monitor,和,Listener,程序测试与调试,:,QMC,期权定价策略,实时界面监控,:,DataView,和,Dashboard,开发,策,略优化,:,spawn,和,contexts,并行计算,中天证券策略框架培训,Apama,资本市场专,用包的,改造,:,多账号与订,单,中天,ATS,策略框架介绍与路线图,策,略实例,:,CrossOver,1998,算法:一元、多元统计测试,组合管理(实现):均值方差组合优化,1999,算法:增强型因子模型,实现:加限制条件的组合优化,2000-2001,算法:再分类,簇类分析(,cluster analysis,),特有资料组分析,实现:程序化交易,2002-2003,算法:时间序列分解,厚尾分布,概率,贝叶斯,实现:,基于阿尔法衰减的交易策略,2004,算法:,Market Regime,实现:多种金融工具交易(,ETF,Futures etc.,),出现高频交易,2005-2006,算法:神经网络,遗传算法,实现:高频交易,2007-2009,算法:神经网络,遗传算法,,ICA,,状态转换图,实现:多交易策略与衍生品整合,世界发达国家数量化投资的发展,美国顶级定量投资经理,(算法和执行策略)的发展历程,5,世界发达国家数量化投资的发展,数量化投资的快速发展是伴随着计算机的不断进步而出现的。因此,我们可以将其发展也分为数据,系统层面的发展,策略,执行的发展,下表展示了这一发展的过程:(以美国市场顶级定量投资经理的发展为例),1997-2000,数据:公共金融数据(,Compustat,等),专业数据,如盈利预测等(,IBES,等,),IT,:,Excel,工具,Visual Basic,第三代编程语言(,C,Pascal,C+,等),+Facset,2001-2003,数据:加入了分析师分析的评估预测数据(,Starmine,等)和公司内部调整数据,IT,:第三代编程语言,+,数据整合工具(,Facset,等),第四代统计语言及,SQL,(,R,等),2004-2005,数据:在原有基础上加入公司内部调整的各种经济数据,IT,:进入第四代编程语言时代,关系数据库,2006,数据:公司特有数据,IT,:多维数据库技术(,MDDB,),2007-2009,数据:特有数据,完全预处理的公司数据,IT,:内存数据存储技术,+CEP,4,10,年,来应用于,250,家金融行业客户,算法交易,策略交易,实时市场监控,交,易,行为合规,外汇交易,做市,/,债券定价,实时精准营销,交易可视化,10,年沉淀形成的资本市场专用包,交易执行算法,做市合规监管,外汇多市场集中交易,定价引擎,适用衍,生品、债券,风控防火墙,投组与自动对冲,中国市场的定量投资,现状(,2010,),中国市场的定量投资处于起步阶段,数据:基础的原始数据(万得,国泰安),+,盈利预测数据(朝阳永续),IT,构架:具有完整程序化交易平台的基金和券商是凤毛麟角,投资理念:由于有大量的海外定量策略的参考,定量策略的研究超越可交易范畴,交易实施:雏形期,也没有多少机构在研究,中国市场的定量投资将进入快速发展阶段,股指期货和融资融券业务的开展和实施,大量海外优秀有经验的数量化投资人归国发展,系统交易化平台成为各多家软件公司的开发重点,中国市场的定量投资存在的问题,多数基金和基金经理不认可定量投资的理念,认为很“玄”,市场的不理智以及初级会直接影响定量策略的运作,金融工具过少,融资融券成本过高,,T+1,无法实施高频交易,6,定量研究的基本过程,定量策略的一般流程,4,收集想法,构建模型,数据处理,历史数据回测,模拟盘实测,实盘投资,收集想法:,收集论文,寻找合理有效的投资理念,构建模型:,结合文献想法,构建自己的数量化模型,数据处理:,将数据处理成模型所需的形式,实现模型,历史数据回测:,提取历史数据,进行回溯测试,模拟盘实测:,使用现有模型,实时跟踪模型的运行情况,实际投资:,模拟测试通过后,投入真实资金进行投资,花旗,JP,摩,根大通,德意志银行,高盛,法国巴黎银行,荷兰银行,英国金融监管局,荷兰国际集团,巴克莱资本,日本三菱,UFJ,金融集团,Apama,在金,融行业尤其是国,内的典,型客,户,在国外以买方为主,,国内以卖方为,主,为实时事件应用程序提供了完整的的开发环境与运行平台,Apama,国,际领先的实时决策平台,策略研发,历史,回测,数据沉淀,内存数据库,Web,页面部署,实时界面构建,图形化开发策略,EPL,语言开发策略,策,略订单事,件,沪,深,/CTP,行,情,成交回报,委托单,策略状态,监,控信息,核心引擎,1999,剑桥大学,第一个商业化,CEP,产品,2003,X64,、多核技术逐渐普及,程序化交易广泛采用,2005,JP,摩根等机构纷纷采用,Apama,Progress,收购,Apama,2009,年,程序化交易,算法交易,实时风控,流动性风险,市场监管,外汇交易,电信应用,灾难识别,CEP,领域评测第一名,2013,年,DBS,成功上线,Apama,反欺诈,SoftwareAG,收购,Apama,产品线,11,月推出大数据实时决策平台,Apama,CEP,的发展轨迹,Dr.John Bates,Dr.Giles Nelson,军工安全研究项目,事件驱动架构(,EDA,),Complex Event Processing,Apama,EPL,,开发策略的专用语言,1,年编程经验的客户即可快速掌握,客户只需关注业务实现,Apama,图形化开发策略,无需编程功底,这种模式是未来,应用的趋势,目前暂时没有体现,在中天平台,中,原因,是需要,客,户有较,完整的团队,即:策略开发人员与编程人员岗位分离,实时的,DashBoards,加速应用开发,支持,B/S,结构的,Web,部署模式,70,多种实时监控通用控件,,100,多,种专业接口,直连期货、期权交易所,如:芝加哥、,欧交所,接入,MatLAB,、,Quanlib,等数学计算工具,直连股票交易所,如:德交所,WebService,Excel,路透终端,彭博终端,功能综述,Apama,国,际领先的量化交易平台,1.,集,成策略开发环境,Eclipse,EPL,语言开发策略,图形化开发策,略,千倍加速历史回测、加快策略开发速度,支持断点调试,策略工程打包、加密,保,护知,识产,权,2,.,实,时分析引擎(服务端),流计算,动态复合处理,含有内存数据库、日志管理,支持,Linux,、,Windows,3.,实时策略监控界面(客户端),70,多种资本市场常用控件,Web,部署、无需安装界面程,序,4.,资本市场专用包,CMF,策,略模,板,实,时风控框架,虚,拟交易所,5.,接口规范,稳定、开放的,IAF,(,CC+Java,),Matlab,、,quantlib,彭博、路透、,CME,等,最佳买方、卖方策略开发平台,开发策略方便,核,心架构已经完善,只,需关注业务实现,各类策略模板与基础部件,1,年编程经验、,1,周后可上手开发复杂策略,2.,定制策略监控界面容易,开,发方式与,VB,类,似,高效开发、快速见效,3.,策略测试方便,虚,拟交易所,历,史回测,实,况回放,断,点调,试,4.,高性,能引擎,毫秒级低延迟,多线程并行处理,低级,编译,,根据,CPU,芯片动态优化,。,复,杂策略比,C+,更快,19%,优势,每秒钟计算,BS,期,权公式的次数,越高越好,Apama,在全球资本市场的应用评价,Aite Group CEP Report,Nov 2011:,Leader in:,performance,integration,solutions,and,reputation,2013Best Security&Risk Project Award,DBS Bank and Progress Apama,日程,Apama,CEP,简介,功能,优势,中天证券量化交易平台介绍,目标客户群体,为目标客户带来的价值,Apama,EPL,策略开发培训,Apama,Studio:,新建项目工程,EPL,特性简介,:Monitor,和,Listener,程序测试与调试,:,QMC,期权定价策略,实时界面监控,:,DataView,和,Dashboard,开发,策,略优化,:,spawn,和,contexts,并行计算,中天证券策略框架培训,Apama,资本市场专用的改造,:,多账号与订,单,中天,ATS,策略框架介绍与路线图,策,略实例,:,CrossOver,中天证券量化交易平台,客户试点,1),专为国内外机构客户、高净值投资者设计;,2),基于国际领先算法交易技术,Apama CEP,,毫秒级低延迟触发交易;,3),支持多市场数据、对接券商内部高频数据;,4),支持跨市场交易,对接专用交易通道;,5),丰富的基础组件,处理行情和交易指令、虚拟交易所,,Tick,级高速回测;,6),支持实时限额风控,以用户为核心,管理资金账户、子账户;,7),客户基于,Web,浏览器来执行策略,策略放置于服务端生产运行;,8),策略版权属于客户,客户可自行编写策略,策略打包加密;,9),对客户基本信息和量化策略进行 物理隔离、确保账户安全;,10),生产环境和回测环境分离,经历回测的策略易于迁移到生产环境。,中天证券量化交易平台目标,客户,中天证券,存量客户,对于,算法交易、,策略交易,有需求的,高端客户,增量客户,客户的策略需求,容易满足?,股市模拟,T+0,(,T-1,日加仓)、,股市信用,T+0,(融资融券),Yes,公募基金、保险资产公司的传统手工下单,No,公募基金、保险资产公司的算法提示、手工下单,Yes,量化选股,No,期现套利、套期保值,Yes,配对交易、展期交易、统计套利、,ETF,套利,Yes,趋势跟踪、动量交易、价差交易、多空对冲,(,事件驱动型,),、相对价值型方案、纯粹单边交易,(,如波动率,),Yes,场内外期权买卖价差交易,Yes,组合交易、一篮子交易,Yes,TWAP,、,VWAP,、,Iceberg,算法拆单,Yes,止损、止盈策略,Yes,客户类别,对于,策略交易,的需求程度,对于,算法交易,的需求程度,传统私募基金,中,高,对冲基金,高,高,保险资产,低,高,保险资产,另类投资,高,高,公募集金,低,高,QFII,中,中,目标客户的差异化服务,可自写策略类,提供内网高速行情信息、提供高速或,VIP,优先下单通道服务,提供可编程客户端,APAMA,Studio,,客户自行编写交易策略,客户自行回测,,券商提供复盘检验、亏损调试、策略优化建议,租赁专属生产服务器、租赁专属测试服务器,接口标准化类,提供行情信息,高速或,VIP,优先下单通道服务,基于,FIX,国际标准协议,提供行情和下单接口服务,客户可以选用非,Apama,策略编写工具进行开发,借助通用语,APAMA,EPL,,提供非,APAMA,策略的回测、复盘服务,租赁专属生产服务器、租赁专属测试服务器,合作开发类,提供内网高速行情信息、提供高速或,VIP,优先下单通道服务,券商提,供策略,ODM,服务,客户提出策略构想,券商进,行策略开发、仿真测试、交付培训一条龙服务,额外增值服务:,亏损调试、,策略优化建议,期限分别在,10,天、,30,天、,40,天、,60,天内完成,固化策略类,提供券商内网高速交易行情服务,提,供券商程,序化交易自有策略、含内网一般下单通道服务,高端机构客户,QFII,一般机构客户和高净值人士,广大散户,为目标客户带来的应用价值,增量客户,量化交易需求,运行效率,快,开发策略,容易,容易招工,分仓,喜欢先进平台,但不想买、,寻服务,程序接口,快速通道,策略加密,安全,如果客户需要:,容易调整策略,响应市场变化,容易,开发策,略,,迎接市场创新,量化策略回,测,跨,账户交易,那么就是我们的目标客户,日程,Apama,CEP,简介,功能,优势,中天证券量化交易平台介绍,目标客户群体,为目标客户带来的价值,Apama,EPL,策略开发培训,Apama,Studio:,新建项目工程,学习,EPL,语言,程序测试与调试,:,QMC,期权定价策略,实时界面监控,:,DataView,和,Dashboard,开发,策,略优化,:,spawn,和,contexts,并行计算,中天证券策略框架培训,Apama,资本市场专,用包的,改造,:,多账号与订,单,中天,ATS,策略框架介绍与路线图,策,略实例,:,CrossOver,Apama,及中天附加模块的安装,Apama 5.0,及,5.0.1,的安装包,下载路径,Win_x64,安装包的下载地址:,PROGRESS_APAMA_5.0_WIN_64.exe,2)PROGRESS_CAPITAL_MARKETS_FOUNDATION_5.0.0.0_WIN_64,3)PROGRESS_APAMA_5.0.1_WIN_64.exe,4)PROGRESS_CAPITAL_MARKETS_FOUNDATION_5.0.1_WIN_64,中天附加模块介绍,无需安装,但需要了解,Apama,基础后才能操作,量化策略开发模板工程。需要手工导入到,Apama,Studio,中,5),文件夹:,Algorithmic Trading System,后台服务支持模块。需要手工拷贝到,Apama,资本市场专用包安装目录下,6),文件夹:,Bundles,7),文件夹:,customization,Apama,EPL,策略开发培训,-,Apama,Studio:,安装后的处理,默认编码,调,整,Apama Developer IDE,环境的默认编码为,UTF-8,有利于将,Windows,环境下编写的策略工程迁移到,Linux,生产环境,复,制,Apama,软件许可证,license.txt,到工作目录下的,license,文件夹中,,,例,如:,D:ProgressApamaWork_5.0 licenselicense.txt.,如果,license.txt,过期或无效,将无法运行,Apama,引擎,Correlator,;,如果,license.txt,不存在,,Apama,引擎,Correlator,不能持续运行超过,30,分钟;当,30,分钟过后,用户可以再次启动运行,但仍然只能运行,30,分钟。,自学,Apama,安装路径中的文件结,构,.Docpdf,文件夹,为程序开发者提供的培,训,手,册,.,例如,Apma,简介与入门,getting_started.pdf,EPL,策略开发指,南,developing_epl.pdf,界面监控,开,发,指南,building_dashboards.pdf,samples,文件,夹,分类了的,代,码样,例,EPL,策略样例代码,.,monitorscript,周边,接口,程序样例,.engine_client,(,可忽略,),Apama,EPL,策略开发培训,-,Apama,Studio:,新建项目工程,学习,EPL,语言,Lesson,1,学习目标,必须了解,Apama,EPL,(旧称,MonitorScript,)基本语法,Apama,引擎的工作原理,Correlator,时间概念,发送事件的途径,R,outes,enqueues,and emits,events,必须掌握,在,EPL,中定义事件,event defination,编写,Monitor,去监听特定事件,Monitor and listeners,在,Monitor,主体中定义方法,actions,声明变量和数据类型,variables and data types,程序循环与条件表达式,While/for,loops,and,if/else,conditions,并行计算:,sub-monitor,monitor,instances and,send,messages,妥善终结,monitors,/,listeners,quit,,,die,and,not,学习内容,Apama,引擎,Correlator,的工作原理,什么是,EPL,(旧称,MonitorScript),?,Monitors,Packages,Events,and Event,Types,Listeners,事件匹配式,Event,Templates and Event,Expressions,Actions,Routing,and Emitting Events,Variables and Data Types,Code C,onstructs,Monitors,Monitor Instances,and Spawning,Contexts,Parallel Processing,and Enqueueing Events,correlator,是一个进程,针对外部事件,基于,socket,协议传递后,实现了一系列的远程处理,基本工作包括,:,Sending events to the correlator(input),Subscribing to events from named(or all)channels(output),Injecting code,对外来讲,只有一个输入队列和一个输出队列,input queue and one output queue:,什么是,Event Correlator,e5,e3,e2,e1,e4,Input Queue,Output Queue,o1,o2,o3,o4,o5,Apama EPL code,默认模式,单线程,correlator,怎样处理事件?,优化模式:并行处理,Parallel processing,e5,e3,e2,e1,e4,Input Queue,Output Queue,o1,o2,o3,o4,o5,Apama EPL code,关于,Correlator,的处理事件,currentTim,e,并非系统时间,而是事件放到队列里的时间,The Event Correlator maintains a notion of“time now”,Available from read-only float variable currentTime,Holds seconds since epoch(midnight 01-Jan-1970 UTC),This is different from system time,System time is usually further advanced,Correlator time is the time that the correlator queue receives an event,For time-triggered logic,correlator time is the time the trigger executes,Thus,currentTime does not change during processing of any event,All MonitorScript temporal operators use currentTime,print time is +currentTime.toString()+seconds;,学习内容,Apama,引擎,Correlator,的工作原理,什么是,EPL,(旧称,MonitorScript),?,Monitors,Packages,Events,and Event,Types,Listeners,事件匹配式,Event,Templates and Event,Expressions,Actions,Routing,and Emitting Events,Variables and Data Types,Code C,onstructs,Monitors,Monitor Instances,and Spawning,Contexts,Parallel Processing,and Enqueueing Events,什么是,EPL,(旧称,MonitorScript),?,类似解释型的脚本语言,生产运行时可以自动转为编译型的事件处理语言,强类型的、大小写敏感,注释,C,语言风格:,/and/*.*/syntax,支持基本和引用型数据类型,integer,float,boolean,string,sequences,dictionaries,classes(,即,events),事件可以有自己的方法,methods(actions),完全意义的事件驱动架构,消息即事件,Information is passed as events,松耦合,Enforces loose coupling,持续适应业务调整,更快更易用,Consequently makes adapting to changes and extending applications faster and easier,EPL,中的术语,Monitors,和,Monitor Instances,Monitors,是一个完整组织事件处理代码的逻辑单元,Monitors,内有主方法,onload,,类似一个带有,main,函数的类,Classes,,,Monitor,instances,(或称,sub-monitor,),类似对象,objects,,依赖,spawn,Events,事件,是被,monitor,处理的数据结构,或称消息,Events,类似一个带有,main,函数的类,Classe,,,一旦初始化后,或被赋值,就成为对象,Listeners and Events Expressions,Listeners,监听器,是,EPL,的独特特征,需要重点掌握,Listeners,使用事件匹配式,Events Expressions,,针对各种事件进行过滤,Variables,Actions,and Code Constructs,与其它高级语言类似,Routing Events,在,monitor instances,之间使用,Rout,e,作为通讯手段,Emitting Events,correlator,向下游数据消费方传递消息的的手段,HelloWorld,观察,DemoOne,在,MSExamplesSimpleTrainingExamplesmonitors,:,monitor,是一个逻辑单元,The onload()action,是入口点,Similar to main()in Java/C/C+,print,是标准输出,在,Apama,Studio,开发环境中,输出到,console,显示,但不记录到日志中,log,会记录到日志中,monitor,HelloWorld,action onload,print Hello world!;,什么是,Event?,一个,E,vent,就是一条活数据,用来表示刚刚发生的消息,一个,Event,是数据流的组成部分,例如,:,委托单事件,Financial market events:,“Buy 10,000 shares of IBM at$80.45”,物流事件,Supply chain,events:,“RFID tag 121.19.1818 was scanned at 1:39PM at dock door 10”,网络安全事件,Security events:,“TCP/IP address 128.1.32.298 just accessed server 5”,定义一个事件类型,Event Types,必须在,monitor,处理逻辑之前,事先定义,在*,.mon,文件中定义,语法,:,示例,:,事件类型分类:,基础类型,Primitive types:,boolean,float,integer,s,tring,decim,al,event,type-name,field-type,field-name,;,field-type,field-name,;,.,event BestBidAsk string symbol;float bestBid;float bestAsk;,引用类型,Reference,types:,dictionary,location,s,equence,event,l,istener,context,。,在哪里定义事件类型,?,在代码工程中定义,event definition,文件夹中,,New,也可以在任意,.mon,文件中的开始部分,所有的,monitors,都可以共享这类事件,松耦合的设计架构基础,任意,monitor,均可以发送、接收这些事件,在某一个,monitor,内部定义,私有的数据结构,只有这个,monitor,可以处理这类事件,monitor Foo,event InnerEvent,string foo;,action onload,on all InnerEvent(),观察,DemoTwo,观察,DemoThree,定义事件类型,序列化的事件格式,example:,特别地注意:,字符串双引号,Double quotes around strings,Boolean,是小写的,true or false(case sensitive),Sequences,中括弧,dictionaries,大括弧,学习,Demo2.evt,在,MSExamplesSimpleTrainingExamplesevents,改写,demotwo.mon,监听、打印,AllTypes,这个示例,com.apama.lab.marketdata.BestBidAsk(IBM.N,107.04,107.5),An event definition.mon:,event AllTypes string s;integer i;float f;boolean b;sequence s;dictionary d;SmallEvent se;,aEvent,.,evt,:,AllTypes(foo,10,3.142,true,1,2,3,4,5,a:1.0,b:2.0,SmallEvent(),改写,DemoTwo,使用包名,Packages,,作为前缀,.mon,文件前加上前缀,避免不同的人之间命名冲突,当,monitor,与事件不在同一个包内,必须使用全名,若在同一个包内,可以使用短名,不算,.mon,文件注释,必须写在,.mon,文件的第一行,尝试改写,DemoTwo,,改写,Demo2.evt,com.apama.training.,MyEvent,(,KZH,18,),在,DemoTwo.mon,文件中加入包名,注意加分号:,package,com.apama.training,;,将,DemoTwo.mon,文件中,的,MyEvent,替换为,com.apama.training.,MyEvent,运行工程,发送,Demo2.evt,package com.apama.lab.positions;event Position /definition omittedmonitor PositionService /implementation omitted,改写,DemoTwo,课余练习:事件与事件类型,目标,L,ook at incoming(simulated)event data,W,rite event type definitions so that the correlator can understand the incoming events,方法指引,Exercise 1,in,the“Exercises:MonitorScript”handout,(filename:1-145_MonitorScriptExercises.pdf,),Lab Exercise,1,学习内容,Apama,引擎,Correlator,的工作原理,什么是,EPL,(旧称,MonitorScript),?,Monitors,Packages,Events,and Event,Types,Listeners,事件匹配式,Event,Templates and Event,Expressions,Actions,Routing,and Emitting Events,Variables and Data Types,Code C,onstructs,Monitors,Monitor Instances,and Spawning,Contexts,Parallel Processing,and Enqueueing Events,Correlator,中实现高速事件触发机制的核心算法,方块是事件匹配式,event templates,圆,点是事件,i,x,event A,float x;,wildcard integer w;,integer i;,A(3:6,*,0:4),A(2:4,*,1,3),A(*,*,-2:2),理解,Hypertree,监听器,Listeners,引擎,correlator,需要知道在事件流里,哪些事件是值得关注的,你要在,monitor,中告诉,correlator,符合哪些条件的事件,是这个,monitor,关注的,Listener,的构成,“on”,接着是一个事件匹配式,an,event,expression,指明事件模式与条件,一旦符合条件,马上触发逻辑,通过:,一块代码,A,code,block,或者转向到另一个方法,An action,on /*do things,*/,如:,on OrderFinished():orderFinished print orderFinished.toString();,on,doThings,();,如:,on OrderFinished():orderFinished processOrder(orderFinished);,事件匹配式,Event,Expressions,on,(,OrderFinished(symbol=“EUR/USD”)/-this is an event template,or /,all,and,not,or,xor,at,wait,within),示例,:,单个事件条件表达式,Event Template,过滤规则,结构体:,示例,:,该事件一旦过滤后,一般后续逻辑需要获取其属性,这时必须事先声明,:,(,.),BestBidAsk(symbol=“PRGS”),/Equality,test,BestBidAsk(bestBid 12.4),/Greater,than,test,BestBidAsk(bestBid=12.4)/Greater than or equal test,BestBidAsk(bestAsk,12.4),/Less,than,test,BestBidAsk(bestAsk=12.4)/Less than or equal test,BestBidAsk(bestBid in 12.4:12.9),/In,range(inclusive)test,BestBidAsk(bestBid in(12.4:12.9),/In,range(exclusive)test,BestBidAsk(symbol in“P”:”Q”),/In,range(mixed)test,事件匹配式,Event,Expressions,OrderFinished orderUpdate;Declare the variable,on,OrderFinished(priceExecuted,Y,Y,随着,X,一旦,X,发生,开始关注,Y,;如果,Y,后来也发生,则触发后续逻辑,X,or,Y,只要,X,或者,Y,发生,则触发后续逻辑,X,and,Y,如果,X,并且,Y,发生,则触发后续逻辑,等同于,“(X-Y)or(Y-X)”,操作符,Event Operators,观察,DemoFour,Hello Event!,A,n example that demonstrates listening for and responding to an event:,event MyEvent,string name;,monitor HelloEvent,action onload,MyEvent e;,on all MyEvent():e,print Hello“+e.name+“!”;,课余练习:,Monitors and Listeners,目标,Practice,setting up a monitor and creating a,listener,in,MonitorScript,方法指引,Exercise 2 in the“Exercises:MonitorScript”handout,(,filename:1-145_MonitorScriptExercises.pdf,),Lab Exercise,2,复杂事件匹配式,Event Expression,Single,Trigger Event Expression,E,valuated when an,OrderFinished event is received,and,the,priceExecuted field is less than,12.4,Once an event instance matches the filter specification:,The,listener,fires,The entry in the hypertree for this template is,removed,Use to,implement the call back for,the“Request-,Response”,MonitorScript pattern,on OrderFinished(priceExecuted 12.4):orderFinished,The listener starts off as False and could trigger again.,Then,An OrderFinished event is received and the expression,becomes True and cannot trigger again.,复杂事件匹配式,Event Expression,Simple Repeating Trigger Event Expression,E,valuated,whenever an,Order
展开阅读全文