DTS2策略编程语言用户手册_第1页
DTS2策略编程语言用户手册_第2页
DTS2策略编程语言用户手册_第3页
DTS2策略编程语言用户手册_第4页
DTS2策略编程语言用户手册_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.DragonSoft Information Technology Co. Ltd.:.;DTS2.0 战略编程言语 用户编程手册Author : DTS研发部门 Version2.08DTS2.0 Version: 2.0.8战略编程言语 Last Updated: 2021/09/19用户编程手册Confidential上海龙软信息技术, 2006-2021 PAGE viRevision HistoryDateVersionDescriptionAuthorApprover2021/11/192.00Initial version.Aaron.Peng2021/3/162.0.1添加3

2、.3.3.3.5 内部修正命令3.5.2.2 注册要收听的价钱3.5.2.5 查找价钱更新3.5.4.2 _OnEventOrderResponse回 调Jack.shiPeter.cao2021/4/22.0.2更新3.5.3.3_OnEventPosition回调Jack.shiPeter.cao2021/5/272.0.3更新2.1.3的3.API接口关键字2.3.1.1 nil类型和逻辑判别,针对于指针变量作了阐明添加3.3.3.2.3 DTSMicroTime3.3.3.3.4 发送Order下单、撤单命令,添加了单个Order下单的阐明更新3.3.3.3.5内部修正命令更新3.5.

3、2.5查找价钱更新3.5.4.2 _OnEventOrderResponse回调更新3.5.5.1 DTSMessageRecordAccess类型3.6系统工具函数,添加3.6.53.6.10部分xuebin.liPeter.cao2021/6/202.0.4添加批量撤单接口3.3.3.3.3,3.3.3.3.6Yousong.ZhangPeter.cao2021/6/302.0.5添加matlab的接口阐明3.7,添加简单加密的阐明3.6.9,3.6.10。Jack.shiPeter.cao2021/8/102.0.6添加市场逐笔行情信息 3.5.36.1修正ClosePriceInput

4、Flag的阐明添加DTSQUEUEPRICE FIELD一览 6.2Lin.gongJack.shi2021/9/152.0.7添加2.3.1.2 sys_find的阐明更新3.7的matlab图只显示半个6.1添加ETFIOPV阐明,修正VWAPEVEPrice阐明更新6.3DTSNewOrderAccess field 一览更新6.4DTSCancelOrderAccess field 一览xiang.shuJack.shi2021/9/192.0.8添加PriceCondition的阐明Jack.shi目录 TOC o 1-5 h z u HYPERLINK l _Toc30421887

5、8 Revision History PAGEREF _Toc304218878 h ii HYPERLINK l _Toc304218879 1.DTS战略编程言语简介 PAGEREF _Toc304218879 h 1 HYPERLINK l _Toc304218880 1.1DTS战略编程平台及其原理 PAGEREF _Toc304218880 h 1 HYPERLINK l _Toc304218881 1.2战略在系统平台上的生命周期和运转过程 PAGEREF _Toc304218881 h 2 HYPERLINK l _Toc304218882 1.2.1战略生命周期 PAGEREF

6、 _Toc304218882 h 2 HYPERLINK l _Toc304218883 1.2.2系统通讯和Event PAGEREF _Toc304218883 h 3 HYPERLINK l _Toc304218884 1.2.2.1事件定义 PAGEREF _Toc304218884 h 3 HYPERLINK l _Toc304218885 1.2.2.2输入输出事件 PAGEREF _Toc304218885 h 3 HYPERLINK l _Toc304218886 1.2.2.3Buffer flag PAGEREF _Toc304218886 h 3 HYPERLINK l

7、_Toc304218887 1.2.2.4事件回调 PAGEREF _Toc304218887 h 3 HYPERLINK l _Toc304218888 1.2.3战略参数和参数变化回调 PAGEREF _Toc304218888 h 4 HYPERLINK l _Toc304218889 1.2.4运转战略 PAGEREF _Toc304218889 h 4 HYPERLINK l _Toc304218890 2.DTS Script编程根底 PAGEREF _Toc304218890 h 7 HYPERLINK l _Toc304218891 2.1DTS Script根本语法格式 PA

8、GEREF _Toc304218891 h 7 HYPERLINK l _Toc304218892 2.1.1言语字符要求 PAGEREF _Toc304218892 h 7 HYPERLINK l _Toc304218893 2.1.2程序注释 PAGEREF _Toc304218893 h 7 HYPERLINK l _Toc304218894 2.1.3关键字 PAGEREF _Toc304218894 h 8 HYPERLINK l _Toc304218895 2.1.4特殊字符的表示 PAGEREF _Toc304218895 h 11 HYPERLINK l _Toc3042188

9、96 2.2变量及变量的作用域 PAGEREF _Toc304218896 h 11 HYPERLINK l _Toc304218897 2.2.1全局变量及其作用域 PAGEREF _Toc304218897 h 11 HYPERLINK l _Toc304218898 2.2.2部分变量local及其作用域 PAGEREF _Toc304218898 h 12 HYPERLINK l _Toc304218899 2.2.3同名的全局变量和部分变量的作用原那么 PAGEREF _Toc304218899 h 12 HYPERLINK l _Toc304218900 2.3类型 PAGEREF

10、 _Toc304218900 h 12 HYPERLINK l _Toc304218901 2.3.1变量内部的类型 PAGEREF _Toc304218901 h 12 HYPERLINK l _Toc304218902 2.3.1.1nil类型和逻辑判别 PAGEREF _Toc304218902 h 12 HYPERLINK l _Toc304218903 2.3.1.2string类型及针对string的操作 PAGEREF _Toc304218903 h 12 HYPERLINK l _Toc304218904 2.3.1.3数值类型及内建的数值计算函数 PAGEREF _Toc30

11、4218904 h 14 HYPERLINK l _Toc304218905 2.3.1.4table类型 PAGEREF _Toc304218905 h 15 HYPERLINK l _Toc304218906 2.3.2支持的各类型间的自动转换 PAGEREF _Toc304218906 h 15 HYPERLINK l _Toc304218907 2.3.3显式转换类型 PAGEREF _Toc304218907 h 15 HYPERLINK l _Toc304218908 2.3.4类型转换时的本卷须知 PAGEREF _Toc304218908 h 16 HYPERLINK l _T

12、oc304218909 2.3.5sys_format函数 PAGEREF _Toc304218909 h 16 HYPERLINK l _Toc304218910 2.4函数 PAGEREF _Toc304218910 h 18 HYPERLINK l _Toc304218911 2.4.1函数定义 PAGEREF _Toc304218911 h 18 HYPERLINK l _Toc304218912 2.4.2函数调用 PAGEREF _Toc304218912 h 19 HYPERLINK l _Toc304218913 2.4.3对函数的限制 PAGEREF _Toc30421891

13、3 h 19 HYPERLINK l _Toc304218914 2.4.4pcall 函数调用 PAGEREF _Toc304218914 h 19 HYPERLINK l _Toc304218915 2.5运算符 PAGEREF _Toc304218915 h 20 HYPERLINK l _Toc304218916 2.5.1逻辑运算符 PAGEREF _Toc304218916 h 20 HYPERLINK l _Toc304218917 2.5.2算术运算符 PAGEREF _Toc304218917 h 20 HYPERLINK l _Toc304218918 2.5.3字符串衔接

14、运算 PAGEREF _Toc304218918 h 20 HYPERLINK l _Toc304218919 2.5.4赋值运算符 PAGEREF _Toc304218919 h 20 HYPERLINK l _Toc304218920 2.5.5比较运算符 PAGEREF _Toc304218920 h 21 HYPERLINK l _Toc304218921 2.5.6元运算符 PAGEREF _Toc304218921 h 21 HYPERLINK l _Toc304218922 2.5.7运算符优先级 PAGEREF _Toc304218922 h 21 HYPERLINK l _T

15、oc304218923 2.6程序控制流程 PAGEREF _Toc304218923 h 21 HYPERLINK l _Toc304218924 2.6.1顺序构造 PAGEREF _Toc304218924 h 21 HYPERLINK l _Toc304218925 2.6.2If条件语句 PAGEREF _Toc304218925 h 21 HYPERLINK l _Toc304218926 2.6.3do 块 PAGEREF _Toc304218926 h 22 HYPERLINK l _Toc304218927 2.6.4while循环语句 PAGEREF _Toc3042189

16、27 h 22 HYPERLINK l _Toc304218928 2.6.5repeat循环语句 PAGEREF _Toc304218928 h 22 HYPERLINK l _Toc304218929 2.6.6普通for循环语句 PAGEREF _Toc304218929 h 22 HYPERLINK l _Toc304218930 2.6.7用于遍历表的for循环语句generic for PAGEREF _Toc304218930 h 23 HYPERLINK l _Toc304218931 2.6.8return和break语句 PAGEREF _Toc304218931 h 23

17、 HYPERLINK l _Toc304218932 2.7根本容器table PAGEREF _Toc304218932 h 24 HYPERLINK l _Toc304218933 2.7.1table的根本概念 PAGEREF _Toc304218933 h 24 HYPERLINK l _Toc304218934 2.7.2创建和初始化一个table PAGEREF _Toc304218934 h 24 HYPERLINK l _Toc304218935 2.7.3table下标的运用 PAGEREF _Toc304218935 h 24 HYPERLINK l _Toc3042189

18、36 2.7.4table的“.运算符 PAGEREF _Toc304218936 h 25 HYPERLINK l _Toc304218937 2.7.5顺序存储元素和按key索引元素 PAGEREF _Toc304218937 h 25 HYPERLINK l _Toc304218938 2.7.6table的insert操作 PAGEREF _Toc304218938 h 25 HYPERLINK l _Toc304218939 2.7.7table的长度 PAGEREF _Toc304218939 h 25 HYPERLINK l _Toc304218940 2.7.8table的遍历

19、 PAGEREF _Toc304218940 h 26 HYPERLINK l _Toc304218941 2.7.8.1全遍历pairs PAGEREF _Toc304218941 h 26 HYPERLINK l _Toc304218942 2.7.8.2自然数序遍历ipairs PAGEREF _Toc304218942 h 26 HYPERLINK l _Toc304218943 2.7.9table的sort算法仅对自然数序table有效 PAGEREF _Toc304218943 h 26 HYPERLINK l _Toc304218944 2.8参考Lua的根本语法 PAGERE

20、F _Toc304218944 h 27 HYPERLINK l _Toc304218945 2.8.1参考部分Lua的语法和Lua的参考资料 PAGEREF _Toc304218945 h 27 HYPERLINK l _Toc304218946 2.8.2与Lua的重要不同 PAGEREF _Toc304218946 h 27 HYPERLINK l _Toc304218947 3.DTS API PAGEREF _Toc304218947 h 27 HYPERLINK l _Toc304218948 3.1DTS API简介 PAGEREF _Toc304218948 h 27 HYPE

21、RLINK l _Toc304218949 3.2事件处置 PAGEREF _Toc304218949 h 27 HYPERLINK l _Toc304218950 3.2.1详细的事件定义和事件属性设置 PAGEREF _Toc304218950 h 27 HYPERLINK l _Toc304218951 3.2.2事件注册Client PAGEREF _Toc304218951 h 28 HYPERLINK l _Toc304218952 3.2.3事件回调详解 PAGEREF _Toc304218952 h 29 HYPERLINK l _Toc304218953 3.2.4战略参数事

22、件及其回调 PAGEREF _Toc304218953 h 29 HYPERLINK l _Toc304218954 3.2.5事件内容设置和发送事件 PAGEREF _Toc304218954 h 30 HYPERLINK l _Toc304218955 3.2.6事件存盘和读取保管事件DynamicData PAGEREF _Toc304218955 h 30 HYPERLINK l _Toc304218956 3.3DTS API 变量类型 PAGEREF _Toc304218956 h 31 HYPERLINK l _Toc304218957 3.3.1用户定义的事件类型 PAGERE

23、F _Toc304218957 h 31 HYPERLINK l _Toc304218958 3.3.2战略参数类型DTSParameter PAGEREF _Toc304218958 h 32 HYPERLINK l _Toc304218959 3.3.3DTS系统类型 PAGEREF _Toc304218959 h 32 HYPERLINK l _Toc304218960 3.3.3.1用于和普通Script逻辑交换信息的内部类型 PAGEREF _Toc304218960 h 32 HYPERLINK l _Toc304218961 3.3.3.2时间类型 PAGEREF _Toc304

24、218961 h 32 HYPERLINK l _Toc304218962 3.3.3.2.1DTSDate PAGEREF _Toc304218962 h 32 HYPERLINK l _Toc304218963 3.3.3.2.2DTSTime PAGEREF _Toc304218963 h 32 HYPERLINK l _Toc304218964 3.3.3.2.3DTSMicroTime PAGEREF _Toc304218964 h 33 HYPERLINK l _Toc304218965 3.3.3.3用于下单和撤单的类型 PAGEREF _Toc304218965 h 33 HY

25、PERLINK l _Toc304218966 3.3.3.3.1DTSNewOrderAccess PAGEREF _Toc304218966 h 33 HYPERLINK l _Toc304218967 3.3.3.3.2DTSCancelOrderAccess PAGEREF _Toc304218967 h 33 HYPERLINK l _Toc304218968 3.3.3.3.3DTSBasket容器 PAGEREF _Toc304218968 h 33 HYPERLINK l _Toc304218969 3.3.3.3.4发送Order下单、撤单命令 PAGEREF _Toc304

26、218969 h 34 HYPERLINK l _Toc304218970 3.3.3.3.5内部修正命令 PAGEREF _Toc304218970 h 35 HYPERLINK l _Toc304218971 3.3.3.3.6批量撤单接口 PAGEREF _Toc304218971 h 39 HYPERLINK l _Toc304218972 3.3.4其他系统类型 PAGEREF _Toc304218972 h 39 HYPERLINK l _Toc304218973 3.4存取数据库信息StaticData PAGEREF _Toc304218973 h 39 HYPERLINK l

27、 _Toc304218974 3.4.1从数据库取数据_GetCommonData PAGEREF _Toc304218974 h 40 HYPERLINK l _Toc304218975 3.4.2更新数据_UpdateCommonData PAGEREF _Toc304218975 h 40 HYPERLINK l _Toc304218976 3.5固化系统回调事件 PAGEREF _Toc304218976 h 41 HYPERLINK l _Toc304218977 3.5.1Timer PAGEREF _Toc304218977 h 41 HYPERLINK l _Toc304218

28、978 3.5.1.1启动/停顿一个Timer PAGEREF _Toc304218978 h 41 HYPERLINK l _Toc304218979 3.5.1.2_OnEventTimer回调 PAGEREF _Toc304218979 h 41 HYPERLINK l _Toc304218980 3.5.2收听市场价钱 PAGEREF _Toc304218980 h 41 HYPERLINK l _Toc304218981 3.5.2.1DTSPrice类型 PAGEREF _Toc304218981 h 41 HYPERLINK l _Toc304218982 3.5.2.2注册要收

29、听的Price PAGEREF _Toc304218982 h 41 HYPERLINK l _Toc304218983 3.5.2.3_OnEventPrice回调 PAGEREF _Toc304218983 h 42 HYPERLINK l _Toc304218984 3.5.2.4停顿收听价钱 PAGEREF _Toc304218984 h 42 HYPERLINK l _Toc304218985 3.5.2.5查找价钱 PAGEREF _Toc304218985 h 42 HYPERLINK l _Toc304218986 3.5.3收听市场逐笔行情价钱 PAGEREF _Toc304

30、218986 h 43 HYPERLINK l _Toc304218987 3.5.3.1DTSQueuePrice类型 PAGEREF _Toc304218987 h 43 HYPERLINK l _Toc304218988 3.5.3.2注册要收听的Price PAGEREF _Toc304218988 h 46 HYPERLINK l _Toc304218989 3.5.3.3_OnEventQueuePrice回调 PAGEREF _Toc304218989 h 46 HYPERLINK l _Toc304218990 3.5.3.4停顿收听分笔行情价钱 PAGEREF _Toc304

31、218990 h 46 HYPERLINK l _Toc304218991 3.5.3.5查找分笔行情价钱 PAGEREF _Toc304218991 h 47 HYPERLINK l _Toc304218992 3.5.4监视仓位变化 PAGEREF _Toc304218992 h 47 HYPERLINK l _Toc304218993 3.5.4.1DTSPosition类型 PAGEREF _Toc304218993 h 47 HYPERLINK l _Toc304218994 3.5.4.2注册要监听的Position PAGEREF _Toc304218994 h 47 HYPER

32、LINK l _Toc304218995 3.5.4.3_OnEventPosition回调 PAGEREF _Toc304218995 h 48 HYPERLINK l _Toc304218996 3.5.4.4停顿收听Position PAGEREF _Toc304218996 h 48 HYPERLINK l _Toc304218997 3.5.5监听下单回复 PAGEREF _Toc304218997 h 48 HYPERLINK l _Toc304218998 3.5.5.1DTSExecution类型 PAGEREF _Toc304218998 h 48 HYPERLINK l _

33、Toc304218999 3.5.5.2_OnEventOrderResponse回调 PAGEREF _Toc304218999 h 49 HYPERLINK l _Toc304219000 3.5.6监听成交信息 PAGEREF _Toc304219000 h 50 HYPERLINK l _Toc304219001 3.5.6.1DTSMessageRecordAccess类型 PAGEREF _Toc304219001 h 50 HYPERLINK l _Toc304219002 3.5.6.2选择需求监听的成交信息 PAGEREF _Toc304219002 h 50 HYPERLI

34、NK l _Toc304219003 3.5.6.3_OnEventExecution回调 PAGEREF _Toc304219003 h 50 HYPERLINK l _Toc304219004 3.6系统工具函数 PAGEREF _Toc304219004 h 51 HYPERLINK l _Toc304219005 3.6.1获得战略信息 PAGEREF _Toc304219005 h 51 HYPERLINK l _Toc304219006 3.6.2获得运转信息 PAGEREF _Toc304219006 h 51 HYPERLINK l _Toc304219007 3.6.3获得用

35、户信息 PAGEREF _Toc304219007 h 51 HYPERLINK l _Toc304219008 3.6.4获得环境信息 PAGEREF _Toc304219008 h 51 HYPERLINK l _Toc304219009 3.6.5获得错误详细描画 PAGEREF _Toc304219009 h 51 HYPERLINK l _Toc304219010 3.6.6获得下单形状 PAGEREF _Toc304219010 h 51 HYPERLINK l _Toc304219011 3.6.7获得第一条买卖流水信息 PAGEREF _Toc304219011 h 51 HY

36、PERLINK l _Toc304219012 3.6.8生成全局独一序列号 PAGEREF _Toc304219012 h 51 HYPERLINK l _Toc304219013 3.6.9字符串加密 PAGEREF _Toc304219013 h 51 HYPERLINK l _Toc304219014 3.6.10字符串解密 PAGEREF _Toc304219014 h 51 HYPERLINK l _Toc304219015 3.6.11停顿效力 PAGEREF _Toc304219015 h 52 HYPERLINK l _Toc304219016 3.6.12写log的函数 P

37、AGEREF _Toc304219016 h 52 HYPERLINK l _Toc304219017 3.7MATLAB支持 PAGEREF _Toc304219017 h 52 HYPERLINK l _Toc304219018 3.7.1启动MATLAB engine PAGEREF _Toc304219018 h 52 HYPERLINK l _Toc304219019 3.7.2判别MATLAB engine能否启动 PAGEREF _Toc304219019 h 52 HYPERLINK l _Toc304219020 3.7.3设置MATLAB变量 PAGEREF _Toc304

38、219020 h 53 HYPERLINK l _Toc304219021 3.7.4获取MATLAB变量 PAGEREF _Toc304219021 h 53 HYPERLINK l _Toc304219022 3.8一个完好的例子 PAGEREF _Toc304219022 h 53 HYPERLINK l _Toc304219023 4.完好的语法规那么 PAGEREF _Toc304219023 h 55 HYPERLINK l _Toc304219024 5.LuaEditor PAGEREF _Toc304219024 h 55 HYPERLINK l _Toc304219025

39、5.1DTS Lua Editor简介 PAGEREF _Toc304219025 h 55 HYPERLINK l _Toc304219026 5.2LuaEditor功能引见 PAGEREF _Toc304219026 h 57 HYPERLINK l _Toc304219027 5.2.1添加一个新战略 PAGEREF _Toc304219027 h 57 HYPERLINK l _Toc304219028 5.2.2语法检查 PAGEREF _Toc304219028 h 59 HYPERLINK l _Toc304219029 5.2.3提交 PAGEREF _Toc30421902

40、9 h 59 HYPERLINK l _Toc304219030 5.2.4发布 PAGEREF _Toc304219030 h 60 HYPERLINK l _Toc304219031 5.2.5战略管理 PAGEREF _Toc304219031 h 61 HYPERLINK l _Toc304219032 5.3LuaEditor运用技巧 PAGEREF _Toc304219032 h 62 HYPERLINK l _Toc304219033 5.3.1LuaEditor对DTSScript语法关键字和符号能本人编辑颜色 PAGEREF _Toc304219033 h 62 HYPERL

41、INK l _Toc304219034 5.3.2语法错误的提示 PAGEREF _Toc304219034 h 62 HYPERLINK l _Toc304219035 6.附录 PAGEREF _Toc304219035 h 63 HYPERLINK l _Toc304219036 6.1DTSPrice field一览 PAGEREF _Toc304219036 h 63 HYPERLINK l _Toc304219037 6.2DTSQueuePrice field一览 PAGEREF _Toc304219037 h 65 HYPERLINK l _Toc304219038 6.3DT

42、SNewOrderAccess field 一览 PAGEREF _Toc304219038 h 65 HYPERLINK l _Toc304219039 6.4DTSCancelOrderAccess field 一览 PAGEREF _Toc304219039 h 67 HYPERLINK l _Toc304219040 6.5参考资料 PAGEREF _Toc304219040 h 68Confidential上海龙软信息技术, 2006-2007 PAGE 70DTS战略编程言语简介DTS系统战略编程言语是针对DTS程式化套利系统编写套利战略的战略编程言语, 提供灵敏的,具有普通性的编

43、程言语接口, 可以为DTS系统编写高效的战略效力程序。DTS战略编程言语综合了Lua和基于C+的DTS系统API接口, 最终将脚本翻译成C+效力器程序编译执行, 具有灵敏高效的特点。DTS战略编程言语由根本DTSScript和DTS系统API 两部分组成, DTSScript提供了根本用户编程逻辑的编写接口, DTSAPI提供了Server编程框架和用户战略逻辑对DTS后台系统数据的访问和运用接口。本手册讨论这种言语的根本组成,语法特点和详细运用方法, 同时引见DTS客户端系统附带的LuaEditor的根本功能和运用技巧。DTS战略编程平台及其原理DTS战略编程平台主要由 DTSClient

44、下带的 DTS Script EditorLua Editor为客户端, 配合Strategy Control Server SCS为效力器端组成。用户编写的战略经过Client端 自带的Event打包解包库EventCommunicator,打包成事件Event发送给SCS, 由SCS内的Script TranslatorL2C翻译成C+源代码后由GNU编译成战略效力器程序SS。启动时, 由客户端发送启动Event给SCS控制启动SS, 并告知客户端SS端口及ip地址, 由客户端直接Socket链接SS获取战略效力; 停顿时, 也由客户端发送停顿Event给SCS控制终了SS效力。由于SS是

45、直接编译运转的, 所以拥有效率高的特点; 同时每个客户有本人的战略效力器, 故每个效力器程序负载不会很重, 所以又有稳定,快速的优点。战略在系统平台上的生命周期和运转过程战略生命周期要完好地编写一个能用的战略效力器, 需求以下几个步骤:1. 在Script Editor中编写完好的战略脚本。2. 语法检查经过。3. 提交SVN经过SCS胜利。4. 发布胜利编译胜利。当战略被发布胜利后, 用户可以在本人的战略管理界面上看到相应的战略;用户可以选择加载需求的战略版本,并且运转此战略;战略一旦运转, 就开场提供既定的效力直到用户停顿此战略。战略的生命周期:系统通讯和EventDTS系统内部各个组成部

46、件间的通讯都是建立在事件Event处置上的,SCS,Client及SS之间信息的互换都是经过Event来完成的。一切的Event都是一致格式存放的, 由包含在Client和Server端程序中的EventCommunicatorLib进展编码/解码。我们可以把Event看作是可以自定义字段的Message。事件定义一切用户事件都是可以在脚本中定义的。以下例程定义了一个最简单的事件,_DefineEventObject TestEvent _AS _Output_DefFld(TestField,_String ,12);_End这个Event被定义为包含一个名叫“TestField的字段, 字

47、段类型为String类型, 长度为12。事件定义和处置被做为一种DTSAPI的特性将在第3章 节中详细引见。输入输出事件做为战略编程言语, DTSScript写好的脚本最终会被编译成战略效力器程序SS;相对SS来说是输入的Event被以为是输入事件, 例如Client向SS传送的参数可以被以为是一个In事件;相反的, SS发送出去的事件被以为是Out事件, 如上面的例程就是定义了一个Out事件, 填写完好这个TestEvent后, SS可以创建一个Out事件的实例并且经过API将这个实例发送给一切监听这个事件的客户端能够是DTSClient端或者另外一个SS。Buffer flag由于系统中一

48、切的通讯都被以为是事件处置, 也就是说一切的Server,Client和Server之间都是基于一方发送Out事件,一方接纳事件并触发回调来到达交换信息的目的, 这样,为了可以使不同时间衔接上来的客户端可以收到完好的Event流, Event被设计成带有一个Buffer标志, Buffer Flag一共有3种值, 0代表没有Buffer, 即后来衔接上来的Client不会接纳到衔接上来之前Server曾经发送过的Event;1代表list类型的Buffer, 即后来衔接上来的Client可以收到符合条件的自Server启动以来发送过的一切这种类型的Event, 并且是按事件顺序陈列的;2代表m

49、ap类型的Event, 即后来衔接上来的Client可以收到一切以某个字段为Key的Server曾经发送过的Event, 反复Key的Event只保管最新的一个。有了这2种buffer, 像诸如HDSHistorical Data Sever这种需求保管历史数据的效力器也可以用战略来描画了。事件回调对于接纳别的Server或Client发送的事件一方的Server或Client, 只需求知道接纳的是哪里的什么Event就可以了:_RegisterEventObject(PortfolioID=P2007091319484800001, StrageyID=2007091319484800001

50、,EventID=TbtPEvent,condition=IssueCode#issueCode1,issueCode2,issueCode3)运用_RegisterEventObject命令可以注册与什么战略效力器衔接, 并获得什么Event。当衔接建立后, 每当那个战略效力器向外发送既定的Event, 接纳方就会收到一条Event的回调:_OnEventDefined(TbtPEvent evt) -用户逻辑_End 收到Event回调后, 接纳方就经过_OnEventDefined接口回调函数执行既定的用户逻辑。战略参数和参数变化回调在DTS2.0系统中, 一切的系统间交互都是经过Eve

51、nt完成的, 所以战略效力器的输入参数实践上也是一种特殊的Event。输入参数Event做为一种特殊Event,被设计为是同时拥有Input和OutPut属性的Event,做为Input Event客户端向SS发送参数值,其Buffer Flag为0, SS只需求最新的参数;而做为Output Event SS前往给客户端的Ack,其Buffer Flag为2, Key是一个永远为1的值,这样可以保管最新一个Ack也能被Client收到,防止Client重启后参数不同步的情况。一切定义的参数都会在战略效力器中对应一个同名同类型的全局变量,脚本中可以直接运用这些参数, 同时当参数值变化时, Cl

52、ient端发送来的参数变化也会被同步到这些全局变量中。可以经过_DefineStrategyParameters关键字定义一组战略Server的参数,并经过_OnEventParameterChanged(DTSParameter parameter) 回调来处置从客户端发送过来的参数变化:_DefineStrategyParameters_String issueCode1_String issueCode2_String issueCode3_Number factor1_Number factor2_Number factor3_Number constant_String period

53、Type_String periodCount_End_OnEventParameterChanged(DTSParameter parameter) -用户处置逻辑_End运转战略当战略被发布好以后, DTSClient中的战略管理页面也就有了相应的战略列表:在需求启动此战略的模型中添加此战略:启动战略:停顿战略:DTS Script编程根底DTS Script根本语法格式言语字符要求DTS Script中的名字变量名,函数名,Table的字段名等标识符可以由恣意字母,数字和下划线组成,但是不能以数字开头, 由于DTS API将在第3章详细引见关键字以_开头,所以应尽量防止运用_做为称号的起

54、始符号, 以防止和系统关键字相互冲突。DTS Script 是严厉区分大小写的, 比如Text和text是不同的变量名, 可以用来代表不同的2个变量。DTS Script中的字符串可以是以一对单引号引起或者一对双引号引起的一串字符,内容里可以支持恣意字符, 包括中文, 系统传输和翻译中不会改动字符的编码方式, 但是为了终端显示和防止编码解码方式不同带来的费事, 建议一致运用utf-8编码方式留意不要运用带signal的UTF-8编码, 头标志会被以为是非法字符。对于_开头的函数, 普通以为是系统保管的函数名, 建议尽量防止运用。对于“DTS开头的词, 普通以为是系统API数据类型, 请不要运用

55、其命名普通变量和函数等。名字,函数调用和关键字,算符等之间以空白分隔, 空白可以是恣意的空白,不限数量和种类,包括 空格 ,TABt,分割符f和分行/回车rn,r,n。DTS Script各个段声明,构造,语句等间可以以分号;分隔,也可以以上述的空白分隔。但是有一种情况必需用分号分隔:local a - 1b = “b - 2_String str = b -3由于DTS API允许定义带类型限定如上例第3行, 限定str为_String类型的变量, 而某些自定义类型名也能够运用名字Identifier,所以对上例中1,2行中的a和b中的a,Script翻译器不能确定其是b的类型限定名还是一个

56、变量定义,所以这种情况下, a b间必需加一个分号分隔2个语句:local a ; - 1b = “b - 2_String str = b -3DTS Script支持各种数字表述方式,包括整数,负数-,小数带小数点., 16进制数0 x和科学计数法表示的数值:3 3.0 3.1416 314.16e-2 0.31416E1 0 xff 0 x56程序注释DTS Script采用Lua的程序注释方式, 分为行注释和块注释2种:DTS Script运用- 来表示行注释, 例如:a = alon123 - Assign alon123to aDTS Script 采用 - 对来表示块注释, 例如

57、:- DTS Script CommentCopyRight DragonSoft关键字DTS Script 关键字分为普通关键字,运算符和系统API关键字3部分。关键字不能当作名字标识符运用。拥有系统给定的含义。DTS Script 普通关键字有:关键字含义关键字含义关键字含义关键字含义and逻辑与break跳出循环do块开场else非条件end块终了false布尔假forFor循环function函数声明inTable inlocal本地声明nil空not逻辑否repeatRepeatreturn前往thenThentrue真whileWhileelseifelse ifif条件语句or逻

58、辑或untilRepeat留意:1. nil 表示DTS Script的空, 与NULL意义相近但不是NULL。2. elseif 为连写的else if, 和其他言语不同, 不能写成分开的else if。DTS Script 运算符和关键符号:关键符号含义关键符号含义关键符号含义HUGE_VAL最大数+加号-减号*乘号/除号%取余乘方=赋值=等于=不等于=大于等于大于, =和=其中值得留意的是=和=, 留意等于是2个=号,以示区别于赋值=, 而不等于是=,与其他言语也有些不同。元运算符元运算符只需2个:-负号和逻辑运算符not。运算符优先级DTS Script和大部分言语的运算符优先级都一样

59、,最优先的是table中的点 . 运算,就是取字段操作和table的也是取字段操作,这2种将在table中引见。剩下的真正的运算符优先级如下从上至下优先级依次递减:-, not 优先于. 优先于*,/,% 优先于+,- 优先于,=,=,= 优先于and,or程序控制流程顺序构造DTS Script的程序块中遵照顺序执行原那么,即写在上面的语句比写在下面的语句先执行。If条件语句条件语句:if exp1 thenblock1elseif exp2 thenblock2elseif exp3 thenblock3.elseblock_elsend含义为:假设满足exp1即表达式exp1为真或非ni

60、l,那么执行block1块中的语句;假设不满足exp1而满足exp2,那么执行block2中的语句,elseif可以写多个, 假设全不满足, 那么执行block_els中的语句。do 块do语句:doblockend执行block中的语句,作用相当于C言语中的 。while循环语句while语句:while exp doblockend只需exp满足,就执行block中的语句,直到exp不满足为止。repeat循环语句repeat语句:repeatblockuntil exp执行block中的语句,直到exp满足为止。留意:这里不论exp满足还是不满足,一开场block中的语句都会被执行一遍。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论