策略编程语言用户编程手册.doc
《策略编程语言用户编程手册.doc》由会员分享,可在线阅读,更多相关《策略编程语言用户编程手册.doc(147页珍藏版)》请在咨信网上搜索。
1、H:精品资料建筑精品网原稿ok(删除公文)建筑精品网5未上传百度图标DTS2.0 策略编程语言 用户编程手册Author : DTS研发部门 Version2.08Revision HistoryDateVersionDescriptionAuthorApprover /11/192.00Initial version.Aaron.Peng /3/162.0.1增加3.3.3.3.5 内部修正命令3.5.2.2 注册要收听的价格3.5.2.5 查找价格更新3.5.4.2 _OnEventOrderResponse回 调Jack.shiPeter.cao /4/22.0.2更新3.5.3.3_O
2、nEventPosition回调Jack.shiPeter.cao /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.2.5查找价格更新3.5.4.2 _OnEventOrderResponse回调更新3.5.5.1 DTSMessageRecordAccess类型3.6系统工具函数,增加3.6.53.6.10部分xuebin.liPeter.ca
3、o /6/202.0.4增加批量撤单接口3.3.3.3.3, 3.3.3.3.6Yousong.ZhangPeter.cao /6/302.0.5增加matlab的接口说明3.7, 增加简单加密的说明3.6.9, 3.6.10。Jack.shiPeter.cao /8/102.0.6增加市场逐笔行情信息 3.5.36.1修改ClosePriceInputFlag的说明增加DTSQUEUEPRICE FIELD一览 6.2Lin.gongJack.shi /9/152.0.7增加2.3.1.2 sys_find的说明更新3.7的matlab图只显示半个6.1增加ETFIOPV说明, 修改VWAP
4、EVEPrice说明更新6.3DTSNewOrderAccess field 一览更新6.4DTSCancelOrderAccess field 一览xiang.shuJack.shi /9/192.0.8增加PriceCondition的说明Jack.shi目录REVISION HISTORYII1.DTS策略编程语言简介11.1DTS策略编程平台及其原理11.2策略在系统平台上的生命周期和运行过程21.2.1策略生命周期21.2.2系统通讯和Event31.2.2.1事件定义31.2.2.2输入输出事件31.2.2.3Buffer flag31.2.2.4事件回调31.2.3策略参数和参数
5、变化回调41.2.4运行策略42.DTS SCRIPT编程基础72.1DTS Script基本语法格式72.1.1语言字符要求72.1.2程序注释72.1.3关键字82.1.4特殊字符的表示112.2变量及变量的作用域112.2.1全局变量及其作用域112.2.2局部变量( local) 及其作用域122.2.3同名的全局变量和局部变量的作用原则122.3类型122.3.1变量内部的类型122.3.1.1nil类型和逻辑判断122.3.1.2string类型及针对string的操作122.3.1.3数值类型及内建的数值计算函数142.3.1.4table类型152.3.2支持的各类型间的自动转
6、换152.3.3显式转换类型152.3.4类型转换时的注意事项162.3.5sys_format函数162.4函数182.4.1函数定义182.4.2函数调用192.4.3对函数的限制192.4.4pcall 函数调用192.5运算符202.5.1逻辑运算符202.5.2算术运算符202.5.3字符串连接运算202.5.4赋值运算符202.5.5比较运算符212.5.6元运算符212.5.7运算符优先级212.6程序控制流程212.6.1顺序结构212.6.2If条件语句212.6.3do 块222.6.4while循环语句222.6.5repeat循环语句222.6.6一般for循环语句22
7、2.6.7用于遍历表的for循环语句( generic for) 232.6.8return和break语句232.7基本容器table242.7.1table的基本概念242.7.2创立和初始化一个table242.7.3table下标的使用242.7.4table的”.”运算符252.7.5顺序存储元素和按key索引元素252.7.6table的insert操作252.7.7table的长度252.7.8table的遍历262.7.8.1全遍历( pairs) 262.7.8.2自然数序遍历( ipairs) 262.7.9table的sort算法( 仅对自然数序table有效) 262.
8、8参考Lua的基本语法272.8.1参考部分Lua的语法和Lua的参考资料272.8.2与Lua的重要不同273.DTS API273.1DTS API简介273.2事件处理273.2.1详细的事件定义和事件属性设置273.2.2事件注册( Client) 283.2.3事件回调详解293.2.4策略参数事件及其回调293.2.5事件内容设置和发送事件303.2.6事件存盘和读取保存事件( DynamicData) 303.3DTS API 变量类型313.3.1用户定义的事件类型313.3.2策略参数类型( DTSParameter) 323.3.3DTS系统类型323.3.3.1用于和一般
9、Script逻辑交换信息的内部类型323.3.3.2时间类型323.3.3.2.1DTSDate323.3.3.2.2DTSTime323.3.3.2.3DTSMicroTime333.3.3.3用于下单和撤单的类型333.3.3.3.1DTSNewOrderAccess333.3.3.3.2DTSCancelOrderAccess333.3.3.3.3DTSBasket容器333.3.3.3.4发送Order( 下单、 撤单) 命令343.3.3.3.5内部修正命令353.3.3.3.6批量撤单接口393.3.4其它系统类型393.4存取数据库信息( StaticData) 393.4.1从
10、数据库取数据( _GetCommonData) 403.4.2更新数据( _UpdateCommonData) 403.5固化系统回调事件413.5.1Timer413.5.1.1启动/停止一个Timer413.5.1.2_OnEventTimer回调413.5.2收听市场价格413.5.2.1DTSPrice类型413.5.2.2注册要收听的Price413.5.2.3_OnEventPrice回调423.5.2.4停止收听价格423.5.2.5查找价格423.5.3收听市场逐笔行情价格433.5.3.1DTSQueuePrice类型433.5.3.2注册要收听的Price463.5.3.3
11、_OnEventQueuePrice回调463.5.3.4停止收听分笔行情价格463.5.3.5查找分笔行情价格473.5.4监视仓位变化473.5.4.1DTSPosition类型473.5.4.2注册要监听的Position473.5.4.3_OnEventPosition回调483.5.4.4停止收听Position483.5.5监听下单回复483.5.5.1DTSExecution类型483.5.5.2_OnEventOrderResponse回调493.5.6监听成交信息503.5.6.1DTSMessageRecordAccess类型503.5.6.2选择需要监听的成交信息503.
12、5.6.3_OnEventExecution回调503.6系统工具函数513.6.1取得策略信息513.6.2取得运行信息513.6.3取得用户信息513.6.4取得环境信息513.6.5取得错误详细描述513.6.6取得下单状态513.6.7取得第一条交易流水信息513.6.8生成全局唯一序列号513.6.9字符串加密513.6.10字符串解密513.6.11停止服务523.6.12写log的函数523.7MATLAB支持523.7.1启动MATLAB engine523.7.2判断MATLAB engine是否启动523.7.3设置MATLAB变量533.7.4获取MATLAB变量533.
13、8一个完整的例子534.完整的语法规则555.LUAEDITOR555.1DTS Lua Editor简介555.2LuaEditor功能介绍575.2.1增加一个新策略575.2.2语法检查595.2.3提交595.2.4发布605.2.5策略管理615.3LuaEditor使用技巧625.3.1LuaEditor对DTSScript语法关键字和符号能自己编辑颜色625.3.2语法错误的提示626.附录636.1DTSPrice field一览636.2DTSQueuePrice field一览656.3DTSNewOrderAccess field 一览656.4DTSCancelOrde
14、rAccess field 一览676.5参考资料681. DTS策略编程语言简介DTS系统策略编程语言是针对DTS程式化套利系统编写套利策略的策略编程语言, 提供灵活的, 具有一般性的编程语言接口, 能够为DTS系统编写高效的策略服务程序。DTS策略编程语言综合了Lua和基于C+的DTS系统API接口, 最终将脚本翻译成C+服务器程序编译执行, 具有灵活高效的特点。DTS策略编程语言由基本DTSScript和DTS系统API 两部分组成, DTSScript提供了基本用户编程逻辑的编写接口, DTSAPI提供了Server编程框架和用户策略逻辑对DTS后台系统数据的访问和使用接口。本手册讨论
15、这种语言的基本组成, 语法特点和具体使用方法, 同时介绍DTS客户端系统附带的LuaEditor的基本功能和使用技巧。1.1 DTS策略编程平台及其原理DTS策略编程平台主要由 DTSClient 下带的 DTS Script Editor( Lua Editor) 为客户端, 配合Strategy Control Server ( SCS) 为服务器端组成。用户编写的策略经过Client端 自带的Event打包解包库( EventCommunicator) , 打包成事件( Event) 发送给SCS, 由SCS内的Script Translator( L2C) 翻译成C+源代码后由GNU编
16、译成策略服务器程序( SS) 。启动时, 由客户端发送启动Event给SCS控制启动SS, 并告知客户端SS端口及ip地址, 由客户端直接Socket链接SS获取策略服务; 停止时, 也由客户端发送停止Event给SCS控制结束SS服务。由于SS是直接编译运行的, 因此拥有效率高的特点; 同时每个客户有自己的策略服务器, 故每个服务器程序负载不会很重, 因此又有稳定, 快速的优点。1.2 策略在系统平台上的生命周期和运行过程1.2.1 策略生命周期要完整地编写一个能用的策略服务器, 需要以下几个步骤: 1. 在Script Editor中编写完整的策略脚本。2. 语法检查经过。3. 提交SVN
17、( 经过SCS) 成功。4. 发布成功( 编译成功) 。当策略被发布成功后, 用户能够在自己的策略管理界面上看到相应的策略; 用户能够选择加载需要的策略版本, 而且运行此策略; 策略一旦运行, 就开始提供既定的服务直到用户停止此策略。策略的生命周期: 1.2.2 系统通讯和EventDTS系统内部各个组成部件间的通讯都是建立在事件( Event) 处理上的, SCS, Client及SS之间信息的互换都是经过Event来完成的。所有的Event都是统一格式存放的, 由包含在Client和Server端程序中的EventCommunicatorLib进行编码/解码。我们能够把Event看作是能够
18、自定义字段的Message。1.2.2.1 事件定义所有用户事件都是能够在脚本中定义的。以下例程定义了一个最简单的事件, _DefineEventObject TestEvent _AS _Output_DefFld(TestField,_String ,12);_End这个Event被定义为包含一个名叫”TestField”的字段, 字段类型为String类型, 长度为12。事件定义和处理被做为一种DTSAPI的特性将在第3章 节中详细介绍。1.2.2.2 输入输出事件做为策略编程语言, DTSScript写好的脚本最终会被编译成策略服务器程序( SS) ; 相对SS来说是输入的Event被
19、认为是输入事件, 例如Client向SS传送的参数能够被认为是一个In事件; 相反的, SS发送出去的事件被认为是Out事件, 如上面的例程就是定义了一个Out事件, 填写完整这个TestEvent后, SS能够创立一个Out事件的实例而且经过API将这个实例发送给所有监听这个事件的客户端( 可能是DTSClient端或者另外一个SS) 。1.2.2.3 Buffer flag由于系统中所有的通讯都被认为是事件处理, 也就是说所有的Server, Client和Server之间都是基于一方发送Out事件, 一方接收事件并触发回调来达到交换信息的目的, 这样, 为了能够使不同时间连接上来的客户端
20、能够收到完整的Event流, Event被设计成带有一个Buffer标志, Buffer Flag一共有3种值, 0代表没有Buffer, 即后来连接上来的Client不会接收到连接上来之前Server已经发送过的Event; 1代表list类型的Buffer, 即后来连接上来的Client能够收到符合条件的自Server启动以来发送过的所有这种类型的Event, 而且是按事件顺序排列的; 2代表map类型的Event, 即后来连接上来的Client能够收到所有以某个字段为Key的Server已经发送过的Event, 重复Key的Event只保留最新的一个。有了这2种buffer, 像诸如HD
21、S( Historical Data Sever) 这种需要保留历史数据的服务器也能够用策略来描述了。1.2.2.4 事件回调对于接收别的Server或Client发送的事件一方的Server或Client, 只需要知道接收的是来自哪里的什么Event就能够了: _RegisterEventObject(PortfolioID=P 0901, StrageyID= 0901,EventID=TbtPEvent,condition=IssueCode#issueCode1,issueCode2,issueCode3)使用_RegisterEventObject命令能够注册与什么策略服务器连接,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 策略 编程 语言 用户 手册
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。