User Tools

Site Tools


tmsppro8应用程序接口

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tmsppro8应用程序接口 [2016/02/17 14:23] – [注册命令] lingfeitmsppro8应用程序接口 [2019/02/21 16:07] (current) – removed maya
Line 1: Line 1:
-**This work is licensed under a [[http://creativecommons.org/licenses/by-nc-nd/3.0/deed.en_US|Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License]].** 
  
-====== PPro8 TMS PPro API ====== 
- 
-=====警告===== 
-在使用API的时候,请记得:\\ 
-  * API产生的所有交易的盈亏,仍由交易员承担\\ 
-  * API产生的订单和人工输入的订单所受到的检查和监控是一样的\\ 
-  * 交易员有义务监控实时的交易活动\\ 
-  * 如果发现有问题的API活动,我们将暂时冻结API的使用权,直到交易员表明已经改正了错误\\ 
- 
-**有限的支持:**\\ 
-我们默认API的用户有基本的编程知识,并且了解如何把URL的Call命令和其他工具整合。因此,我们仅仅提供有限的API支持服务。基本上仅限于本文档的内容。\\ 
- 
-用户可以自行选择如何使用API接口,用户可以用URL的Call命令,利用任何一种编程语言来处理CSV格式的数据。\\ 
- 
-=====概览====== 
- 
-[[ppro8_tms系统操作手册|PPro8 TMS交易系统]]API是一个网页服务,当启动后,将允许用户利用URL格式发送命令,收到XML格式的数据,写入.log文件到本地硬盘,再经过第三方的程序来进一步处理。 
- 
-要启动PProAPI,用户需要利用这个命令启动PPro8的客户端: 
- 
-PPro8.exe -pproapi_port=8080 
- 
-请注意,您可以用任何端口,8080只是举一个例子。如果您选择其他的端口,我们建议用 1000 - 65535 端口,因为低于 1000 的端口很可能被操作系统已经预先定义了。 
- 
-登录到PPro8以后,用户可以通过这个链接连接到API的主页: 
- 
-http://localhost:8080 
- 
-这个端口将显示当前支持的命令的基本信息。 
- 
-注意:本文档中,以下的URL链接都忽略 http://localhost:8080,因此,请记住下面的命令前面要加 
- 
-http://localhost:8080/ 
- 
-{{ :pproapiv2.0.png?nolink |}} 
- 
-=====UDP功能===== 
- 
-要确保UDP的正常运行,请在编写您的程序的时候,确保它积极地收听端口。只有有一个主动收听的对象的时候,端口才会发送数据。 
- 
-如果您只是想测试UDP的功能,我们建议您使用NetCat,以及附的 [[ http://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf | 常见命令页 ]]。 
- 
-要使用NetCat,用下面的命令行启动它,举例: 
- 
--ul -p4135 
- 
-...注意: 
- 
--u 代表 UDP\\ 
--l 代表 "listening to"收听\\ 
--p 代表port端口,后面的数字按注册的端口不同而不同\\ 
- 
-...连起来,这个命令就是 "UDP的4135端口正在积极收听" 
- 
-然后您可以用这个命令来注册并且发送数据到您指定的端口。 
- 
-举例: 
- 
-注册代码ZXZZT.NQ的Level1数据,发送数据到UDP的4135端口 
- 
-http://localhost:8080/Register?symbol=ZXZZT.NQ&feedtype=L1&output=4135 
- 
-=====数据类型Data Types===== 
-API允许用户对下面的数据类型进行注册/注销。下面的例子展示如何注册或者注销数据类型,更多的信息,请见API的主页(http://localhost:8080) 
- 
-====Register注册==== 
- 
-Register注册命令用来注册各类的数据。\\ 
- 
-每次注册的时候,写入单个的文档是通过命令中的 **bykey**句法 ,按照下面的方法完成的: 
- 
-Register?symbol=<symbol.extension> & region=[1|2|3] & feedtype=[L1|TOS|L2|IMBALANCE|OSTAT|ORDEREVENT|PAPIORDER] & output=[bykey]\\ 
- 
-另一方面, **bytype**句法将把注册的代码的数据写入到指定的文档。句法如下: 
- 
-Register?symbol=<symbol.extension> & region=[1|2|3] & feedtype=[L1|TOS|L2|IMBALANCE|OSTAT|ORDEREVENT|PAPIORDER] & output=[bytype]\\ 
- 
- **如果** 指定的文档包含了 **TOS**, **L1**, **L2**, **OSTAT**, 用户可以选择哪个代码的数据写入指定的文档 (**bytype**), 或者他们可以把代码的数据写入一个新的文档 (**bykey**) 。 
- 
-Deregistration注销也是一样。 
- 
-====注册命令==== 
- 
-随着PPro8 TMS系统SevenSisters 1.8版本的推出,注册命令Register一分为三:GetSnapshot获取截图, Register注册, 和SetOutput发送输出。 
- 
-利用这些命令,您可以设置输出,并且通过状态on还是off来启动或者关闭,或者选择写入仅仅截图,仅仅实时数据,或者两个都写入。 
- 
-===GetSnapshot获取截图=== 
- 
-用这个命令获取代码当前的数据 (过去的100个记录,但不包含更新的数据)。 
- 
-句法: 
- 
-GetSnapshot?symbol=ZVZZT.NQ&feedtype=TOS 
- 
-===Register注册=== 
- 
-和原先的命令一样,用这个命令获取代码实时的数据,以及更新的数据。 
- 
-句法: 
- 
-Register?symbol=ZVZZT.NQ&feedtype=TOS 
- 
-===SetOutput设置输出=== 
- 
-用这个命令设置代码输出的信息,定义数据写到哪里,可以是**bykey** 或者 **bytype**。 
- 
-句法: 
- 
-SetOutput?symbol=ZVZZT.NQ&feedtype=TOS&output=bytype&status=on 
- 
-===Deregister注销=== 
- 
-Deregister命令是用来注销各类数据的。这将命令API停止向log文件写入数据,或者关闭Level1的Call命令。\\ 
- 
-句法: 
- 
-Deregister?symbol=<symbol.extension> & region=[1|2|3] & feedtype=[L1|TOS|L2|IMBALANCE|OSTAT|ORDEREVENT|PAPIORDER] & output=[bykey|bytype]\\ 
- 
-各类数据的命令例子如下:\\ 
- 
-====Level 1 (L1)==== 
-举例: 
- 
-Register?symbol=ZVZZT.NQ&feedtype=L1 & output=[bykey|bytype]\\ 
- 
-API将注册来接受代码ZVZZT.NQ所有的Level 1的价格/订单大小的更新。这些更新将被写入PPro8的运行目录,文件名的格式为:L1_1_ZVZZT.NQ.log,中间的数字代表市场所在的区域。\\ 
- 
-L1的消息必须包含代码这个参数。\\ 
- 
-每一次的L1更新,就是一行逗号隔开的数据行,包含了下面的栏目:\\ 
-  * LocalTime=09:07:29.349 <- 代表更新抵达交易员本地电脑的时间,并按本地电脑的时间显示\\ 
-  * MarketTime=09:07:30.379 <- 代表市场的更新时间\\ 
-  * Symbol=XIU.TO <- 代表更新的代码,格式是 <代码>.<市场缩写>\\ 
-  * BidPrice=19.19 <- 代表L1更新后的Bid最优买价\\ 
-  * BidSize=8000 <- 代表L1更新后的Bid最优买价上的订单数量\\ 
-  * AskPrice=19.24 <- 代表L1更新后的Ask最优卖价\\ 
-  * AskSize=16000 <- 代表L1更新后的Ask最优卖价上的订单数量\\ 
-  * Tick=? <- 代表市场上这次更新意味着价格上涨还是下跌\\ 
-====Time of Sales (TOS)成交记录==== 
-举例: 
- 
-Register?symbol=ZVZZT.NQ&feedtype=TOS & output=[bykey|bytype]\\ 
- 
-API将接受代码ZVZZT.NQ所有的成交记录的数据。更新的数据将被写入PPro8的登录目录的一个文档,文件名为:TOS_1_ZVZZT.NQ.log\\ 
- 
-TOS的消息必须包含代码这个参数\\ 
- 
-TOS的数据,每个代码单独写入一个文档。\\ 
- 
-每个TOS的更新,是一个按逗号分隔的数据行,栏目包括:\\ 
-  * LocalTime=09:30:15.375 <- 代表数据到达本地电脑的时间,按本地电脑的时间显示\\ 
-  * MarketTime=09:30:14.887 <- 代表市场数据更新的时间\\ 
-  * Type=1 <- 代表写入的截图的数据类型\\  
-  * Price=8.63 <- 代表成交的价格\\ 
-  * Size=100 <- 代表成交的股数\\ 
-  * Source=17 <- 这是内部使用的报价来源的代码\\ 
-  * Condition=? <- 显示成交的条件标签\\ 
-  * Tick=? <- 代表这笔交易意味着价格上涨还是下跌\\ 
-  * MmId=C <- 代表成交发生的交易中心缩写\\ 
-  * SubMarketId= <- 代表成交中心的子版块的缩写\\ 
- 
-Type的数字各代表:\\ 
-Type 0 = live feed实时数据\\ 
-Type 1 = start of snapshot截屏开始\\ 
-Type 2 = snapshot record截屏记录\\ 
-Type 3 = end of snapshot截屏停止\\ 
- 
-举例:\\ 
-LocalTime=21:32:59.193,MarketTime=00:00:00.000,Symbol=WBC.AX,Type=1,Price=0,Size=0,Source=0\\ 
-LocalTime=21:34:52.322,MarketTime=11:33:15.929,Symbol=WBC.AX,Type=2,Price=34.445,Size=59,Source=0,Condition=?,Tick=?,Mmid=C,SubMarketId=\\ 
-LocalTime=21:32:59.209,MarketTime=00:00:00.000,Symbol=WBC.AX,Type=3,Price=0,Size=0,Source=0\\ 
-LocalTime=21:34:42.916,MarketTime=11:34:41.913,Symbol=WBC.AX,Type=0,Price=34.44,Size=64,Source=42,Condition=?,Tick=?,Mmid=A,SubMarketId=\\ 
- 
-完整的TOS的缩写表(Market Center市场中心缩写, Sub Market ID子版块缩写,和Sales Conditions成交条件缩写),可以在[[https://docs.google.com/a/truenorthvantage.com/spreadsheets/d/1ExzE2mUlz9VaC9C5KbB1ftM7Ob7p_OHbVHOyCcJC3M4/edit#gid=1342378190|这里]]找到\\ 
- 
-====Market Depth (L2)市场深度==== 
-举例: 
- 
-Register?symbol=ZVZZT.NQ&feedtype=L2 & output=[bykey|bytype]\\ 
- 
-API将接收代码ZVZZT.NQ的Level 2的所有报价更新。这些更新将被写入PPro8登录目录的文档,文档名为:L2_1_ZVZZT.NQ.log\\ 
- 
-L2的数据必须包含代码这个参数。\\ 
- 
-L2的数据,每个代码分别写入一个文档。\\ 
- 
-每个Level 2的更新,是一个按逗号分隔的数据行,栏目包括:\\ 
-  * LocalTime=08:39:43.114 <- 代表数据到达本地电脑的时间,按本地电脑的时间显示\\ 
-  * MarketTime=08:39:42.601 <- 市场更新时间\\ 
-  * Mmid=ANON <- 代表本次更新的市场参与者代码MMID\\ 
-  * Side=B <- 代表更新的订单的方向\\ 
-  * Price=8.6 <- 代表更新的订单的价格\\ 
-  * Volume=100 <- 代表更新的订单的股数\\ 
-  * Depth=1 <- 代表订单的价位数\\ 
-  * SequenceNumber=27003 <- 这个序列号,是按每个市场参与者代码MMID、Price订单价格、和方向Side分配的,可以用来排除错乱的数据。\\ 
- 
-每一次的更新,要么 (a) 创建一个新的价位,要么 (b) 对指定的市场参与者代码MMID, 方向Side和价格Price组合作出更新。 
- 
-举例:如果您当前有一个在ANON市场参与者代码中的400股,定价在每股8.6美元的买单,上面的例子将把ANON的8.6价位的买单股数调整到100股。 
- 
-=== Market Depth Snapshot市场深度截图 === 
-当API在一个代码上注册Level 2的数据源的时候,它将首先获取一个截图。截图代表了这个代码目前的报价状态,并且将随着实时的更新消息不断更新。\\ 
- 
-截图的数据从Side=s开始。举例: 
- 
-"LocalTime=08:37:31.908,MarketTime=00:00:00.000,Mmid=,Side=s,Price=0,Volume=0,Depth=0,SequenceNumber=0".\\ 
- 
-所有截图的数据都显示SequenceNumber=0.\\ 
- 
-截图的数据从Side=e结束,举例: 
- 
-"LocalTime=08:37:31.908,MarketTime=00:00:00.000,Mmid=,Side=e,Price=0,Volume=0,Depth=0,SequenceNumber=0".\\ 
- 
-====Imbalance (IMBALANCE)尾额数据==== 
- 
-举例: 
- 
-Register?region=1&feedtype=IMBALANCE & output=[bykey|bytype]\\ 
- 
-API将注册接收所有Region 1(NCSA区域)市场的尾额数据。数据将被写入PPro8登录目录的一个文档,文件名为:IMBLO_1_ALL.log\\ 
- 
-IMBALANCE尾额数据必须包括Region区域参数。\\ 
- 
-每一个Imbalance尾额数据更新,是一个由逗号隔开的数据行,栏目包括:\\ 
-  * LocalTime=15:57:15.113 <- 代表数据到达本地电脑的时间,按本地电脑的时间显示\\ 
-  * MarketTime=15:57:15.072 <- 代表市场的更新时间\\ 
-  * Side=S <- 代表尾额的方向\\ 
-  * Type=O <- 代表尾额的种类\\ 
-  * Status=  <- 代表当前尾额的状态\\ 
-  * Symbol=LKQ.NQ <- 代表尾额的代码\\ 
-  * Price=32.875 <- 代表股票当前的价格\\ 
-  * Volume=3578 <- 代表尾额的订单股数\\ 
-  * Mmid=Q <- 代表尾额的市场 (Q=NASDAQ, N=NYSE, A=AMEX, T=Toronto, V=Venture).\\ 
-  * AuctionPrice=32.84 <- 代表理论的竞价价格\\ 
-  * ContinuousPrice=32.86 <- 代表连续交易的市场的股票报价\\ 
-  * PairedVolume=67428 <- 代表已经匹配好的订单的股数\\ 
- 
-每一个Imbalance的更新代表当前的代码上的尾额大小,原先的Imbalance数据可以忽略。 
- 
-====Order Status (OSTAT)订单状态==== 
- 
-举例: 
- 
-Register?region=1&feedtype=OSTAT & output=[bytype]\\ 
- 
-**注意:** OSTAT的注册只能用 "bytype" 
- 
-API将注册接收Region1(NCSA区域)市场的订单状态Order Status (OSTAT)消息。数据将被写入到PPro8的登录文件夹的一个文档,文件名为:OSTAT_1_<userID>.log\\ 
- 
-OSTAT的数据必须包含Region这个参数。\\ 
- 
-每个Region创建一个文档。为了查看所有的订单状态更新 - 包括内部拒绝的订单,用户需要监控OSTAT 和 ORDEREVENT 日志。\\ 
- 
-每个OSTAT更新是由逗号分隔的数据行,栏目包括:\\ 
-  * LocalTime=09:35:34.237 <- 代表数据到达本地电脑的时间,按本地电脑的时间显示\\ 
-  * MarketDateTime=20131011-09:35:34.048 <- 代表市场的更新时间\\ 
-  * Currency=CAD <- 代表订单的货币种类\\ 
-  * Symbol=TD <- 代表订单的代码\\ 
-  * Gateway=2028 <- 代表订单发送的通道代码GatewayID\\ 
-  * Side=B <- 代表订单的方向\\ 
-  * OrderNumber=TESTTEST00000024M1713F3100000 <- 代表订单号码\\ 
-  * Price=92.72 <- 代表更新了的订单价格。新订单的话,就是订单价格,如果是订单成交/部分成交的消息,代表订单的成交价格\\ 
-  * Shares=100 <- 代表和这次更新有关的订单股数。新订单的话,就是订单的股数,如果是订单成交/部分成交消息,则是成交的股数\\ 
-  * Position=2 <- 代表这个订单相关的更新消息数。1就是第一条消息,2就是第二条消息\\ 
-  * OrderState=Filled <- 代表订单的状态\\ 
-  * MarketID=2 <- 代表订单发送去的市场\\ 
-  * CurrencyChargeGway=CAD <- 代表通道收取费用的币种\\ 
-  * ChargeGway=-0.31 <- 代表这次更新相关的通道费用\\ 
-  * CurrencyChargeAct=CAD <- 代表交易的手续费用的币种\\ 
-  * ChargeAct=0.011 <- 代表这次更新的手续费用\\ 
-  * CurrencyChargeSec=CAD <- 代表SEC和监管部门费用的币种\\ 
-  * ChargeSec=0 <- 代表这次更新的SEC和监管部门的费用\\ 
-  * CurrencyChargeExec=CAD <- 代表成交费用的币种\\ 
-  * ChargeExec=0.16 <- 代表这次更新的成交费用\\ 
-  * CurrencyChargeClr=CAD <- 代表清仓费用的币种\\ 
-  * ChargeClr=0.008 <- 代表这次更新的清仓费用\\ 
-  * OrderFlags=128 <- 代表订单祥光的标签,仅作内部使用,用来识别订单是通过PPro8还是API发送的\\ 
-  * CurrencyCharge=10 <-  内部参数。\\ 
-  * Account=1TESTOF001TNVTESTTESTCAD1 <- 代表和订单相关的资金账号\\ 
-  * InfoCode=255 <- 内部使用来追踪OSTAT的代码,无外部分析用途\\ 
-  * InfoText= LiqFlags=^Tag6888=20^Tag31=92.720^Tag9730=A <- 代表这次更新相关的其他信息\\ 
- 
-注意:如果OrderFlags 的值在128和255之间,它意味着订单是从API发出的。\\ 
- 
-用户可以用OSTAT log文件,加上ORDEREVENT log文件,来监控订单的状态,追踪订单成交和相关的费用。这个消息同时也被客户端用来更新Summary和HistoryLog窗口。\\ 
- 
-====Order Event (ORDEREVENT)订单事件==== 
- 
-举例: 
- 
-Register?region=1&feedtype=ORDEREVENT & output=[bykey|bytype]\\ 
- 
-API将注册接收Region 1 (NCSA区域)市场的订单的事件消息。数据将写入PPro8登录文件夹,文件名为:ORDEREVENT_1_<userID>.log\\ 
- 
-ORDEREVENT订单事件的消息必须包括Region这个参数。\\ 
- 
-每个区域都有单独的文件。这个日志文件可以和OSTAT log文件一块,用来监控订单状态更新。ORDEREVENT log文件包含了内部拒绝的消息(例如:Buying Power不足,或者无法找到可以交易的股票),这些信息是OSTAT消息没有的。\\ 
- 
-ORDEREVENT log文件的主要用户是在一个订单没有在OSTAT记录中出现的时候,确认这个订单是内部拒绝的。\\ 
- 
-每个ORDEREVENT 更新是由逗号分隔的数据行,栏目包括:\\ 
-  * LocalTime=08:39:45.442 <- 代表数据到达本地电脑的时间,按本地电脑的时间显示\\ 
-  * MarketDateTime=20131025-08:39:45.208 <- 代表市场的更新时间\\ 
-  * EventMessageType=1 <- 代表事件的性质: 1=NewOrder新订单, 2=CancelOrder撤销订单, 3=ManualOrderConf手动订单修改, 4=OrderFlagsChange订单标签改变, 5=LastOrderEventType上次订单事件性质\\ 
-  * EventFlavour=2 <- 代表内部的订单状态: 1=Accepted订单接收, 2=Rejected订单拒绝, 3=PendingServer等待服务器, 4=NoConnection没有连接, 5=LastOrderEventType上次订单事件性质\\ 
-  * EventOriginatorId=1 <- 代表订单事件发出方 1=Client客户端, 2=OPC, 3=GS通道服务器, 4=SS程序订单服务器\\ 
-  * OriginatorSeqId=0 <- 代表订单事件发出方的订单事件序号\\ 
-  * Size=100 <- 代表订单的股数\\ 
-  * Price=861000000 <- 代表订单发送的价格。这里用PPro8内部的价格表达格式,要除以10的8次方(100000000)显示真实的价格\\ 
-  * OrderNumber=TESTTEST00000003M171401100000 <- 代表订单的号码\\ 
-  * InfoText= <- 代表订单事件的其他相关信息,例如拒绝理由\\ 
- 
- 
-订单事件(ORDEREVENT)的性质解释如下: 
- 
-  *0 NoOrderEventFlavour没有性质, 
-  *1 RequestPending - 报告命令对现有的订单没有造成任何变化 
-  *2 Accepted - 订单被市场接收 
-  *3 PartFill - 订单仍存在 (转成或者保持部分成交PartFilled的状态) 
-  *4 Filled - 订单不存在 (转成Filled订单成交状态) 
-  *5 Cancel - 订单不存在 (转成PartCancelled剩余订单撤销,或者Cancelled订单撤销状态) 
-  *6 RejectedOrderClosed - 命令被拒绝,订单号码不存在/无效 
-  *7 RejectedOrderOpen - 命令被拒绝,但是订单仍然在市场上 
-  *8 RejectedNoConnection - 命令被拒绝,网络问题 
-  *9 CancelReplace - (订单状态不变,要么是Accepted订单接收,要么是PartFilled订单部分成交) 
-  *10 Holding - 等待,PPro8在等待一个订单事件,然后才会把订单发出 (状态->Holding) 
-  *11 LastOrderEventFlavour 上一次订单事件的性质 
- 
-**注意:** 当价格和订单股数在OPC服务器检查的时候,将显示一个无效的数值。我们预计将在下一个OSM订单状态管理服务器推出时解决这个问题。如果您认为这可能影响您的交易,用户可以很容易地筛选出这些数值,因为它的值是 "-1"。说明中也会注明:'New order, OPC Pending'新订单,OPC等待。 
-====PProAPI Index to Order # (PAPIORDER)API的订单号码目录==== 
- 
-举例: 
- 
-Register?region=1&feedtype=PAPIORDER & output=[bykey|bytype]\\ 
- 
-API将注册接收每次订单申请相关的订单号码的信息。数据将写入PPro8的登录文件夹的文档,文件名为: PAPIORDER_1_<userID>.log\\ 
- 
-PAPIORDER的消息必须包含Region这个参数\\ 
- 
-这个Log文件的用途是让用户可以限制'GetOrderNumber'的申请命令的发送次数,而通过程序监控Log文件中的这个信息。\\ 
- 
-每个PAPIORDER更新是由逗号隔开的数据行,栏目包括:\\ 
-  * LocalTime=10:10:07.006 <- 代表数据到达本地电脑的时间,按本地电脑的时间显示\\ 
-  * PProApiIndex=3 <- 代表和一个XML格式发送的ExecuteOrder事件有关的申请号码RequestID\\ 
-  * OrderNumber=DV10600503000002M171407100000 <- 代表和申请号码RequestID相关的订单号码\\ 
-====Lv1 & Tos==== 
-这些功能减弱了,但是仍然提供,利用TOS和L1命令。 
- 
-====GetLv1获取Level 1数据==== 
- 
-用GetLv1命令获取Level 1数据的截图 
- 
-句法: 
- 
-GetLv1?symbol=<symbol.extension> 
- 
-举例: 
- 
-GetLv1?symbol=TD.TO 
- 
-这将引起下面的反应: 
- 
-<Level1Data Message="L1DB" MarketTime="15:22:47.100" Symbol="TD.TO" BidPrice="55.4600" AskPrice="55.4700" BidSize="11000" AskSize="700" Volume="798304" MinPrice="55.1100" MaxPrice="55.5000" LowPrice="55.1100" HighPrice="55.5000" FirstPrice="55.4000" OpenPrice="55.4000" ClosePrice="55.3400" MaxPermittedPrice="0" MinPermittedPrice="0" LotSize="100" LastPrice="55.4600" InstrumentState="Open" AssetClass="Equity" TickValue="0" TickSize="0.00500000" Currency="CAD" Tick="D"/> 
- 
-这是Level 1数据的更新,由逗号隔开的数据行,栏目包括: 
- 
-  * Volume=798304 ← 代表代码当天的成交量 
-  * LowPrice=55.1100 ← 代表代码当天的最低价 
-  * HighPrice=55.5000 ← 代表代码当天的最高价 
-  * OpenPrice=55.4000 ← 代表代码当天的开盘价 
-  * ClosePrice=55.3400 ← 代表代码当天的收盘价 
-  * MaxPermittedPrice=0 ← 代表代码当天可以允许的最高价 
-  * MinPermittedPrice=0 ← 代表代码当天可以允许的最低价 
-  * LotSize=100 ← 代表最小订单股数 
-  * LastPrice=55.1100 ← 代表最近一次成交价格 
-  * InstrumentState=Open ← 代表代码的状态 
-  * AssetClass=Equity ← 代表代码的资产类别 
-  * TickValue=0 ← 代表最小跳价单位代表的金额 
-  * TickSize=0.00500000 ← 代表最小跳价单位 
-  * Currency=CAD ← 代表代码的交易币种 
- 
-====GetTransactions获取交易记录==== 
- 
-用GetTransactions命令获取所有用户的订单/执行记录。该命令不再返回**Market**参数,而是在返回的**Symbol**参数中附带市场代码,例如ZVZZT.NQ。 
- 
-句法: 
- 
-GetTransactions?user=<userId> 
- 
-举例: 
- 
-GetTransactions?user=GODOT 
- 
-反馈: 
- 
-<Trader name="GODOT"> <Region id="1" name="NCSA"> <Transaction Message="OrderStatus" MarketDateTime="20141121-09:25:10.252" Currency="USD" Symbol="BRK/A.NY" Gateway="1" Side="B" %%OrderNumber="GODOT___00000001M172461100000" Price="0.01" Shares="1" Position="2" OrderState="Partially Filled" MarketID="18" CurrencyChargeGway="USD" ChargeGway="0.004" CurrencyChargeAct="UNK" ChargeAct="0" CurrencyChargeSec="UNK" ChargeSec="0" CurrencyChargeExec="UNK" ChargeExec="0" CurrencyChargeClr="UNK" ChargeClr="0" OrderFlags="8" CurrencyCharge="0" Account="1ORBX00001OR1GODOT___USD1"%% InfoCode="0" InfoText="Great stock. Great Price"/> </Region> </Trader> 
-=====订单相关的命令===== 
- 
-API为用户提供几个和订单互动的方法。要了解更多的信息,请访问API的主页 (http://localhost:8080) 
- 
-====ExecuteOrder执行订单==== 
-**重要**\\ 
-当您准备用API来发送订单时,您要按照下面的步骤操作:\\ 
-1. 用热键设置工具为订单设置热键\\ 
-2. 在报价窗口,调出订单编辑器OrderEditBox\\ 
-3. 注意在订单编辑器中的栏目OrderEditBox。您要用这些栏目来定义通过API发送的订单命令参数。\\ 
- 
-ExecuteOrder命令有一系列的参数,根据要发送的订单类型不同您需要提供这些参数的值:\\ 
-  * symbol=<symbol.ext>\\ 
-  * limitprice=<float> (必须是正数)\\ 
-  * ordername=<从热键设置工具中复制粘贴>\\ 
-  * shares=<int> (必须是正整数)\\ 
-  * priceadjust=<float> (可以是正数也可以是负数)\\ 
-  * stopprice=<float> (必须是正数)\\ 
-  * pegdifference=<float>\\ 
-  * displaysize=<int> (必须是正数)\\ 
-  * displayrange=<int>\\ 
-  * minexecsize=<int> (必须是正数)\\ 
- 
-句法: 
- 
-ExecuteOrder?symbol=<symbol.ext> & limitprice=<float> & ordername=<copied from KeyboardSetup> & shares=<int> & priceadjust=<float> & stopprice=<float> & pegdifference=<float> & displaysize=<int> & displayrange=<int> & minexecsize=<int>\\ 
- 
-举例: 
- 
-ExecuteOrder?symbol=BB.TO&limitprice=6.90&ordername=TSX Buy SweepSOR Limit ANON DAY Reserve&shares=1000&displaysize=100\\ 
- 
-这个例子将发送一个Reserve(部分隐藏)订单到TSX通道,订价为限价每股6.90加元,买入1000股(显示100股)。\\ 
- 
-====GetOstats==== 
- 
- 
-====ExecuteBasketOrder执行一篮子订单==== 
- 
-用这个命令发送一篮子订单 (在PPro8客户端设置好的)。 
- 
-句法: 
- 
-ExecuteBasketOrder?basketname=<basketName> 
- 
-举例: 
- 
-ExecuteBasketOrder?basketname=basket1 
- 
-====ExecuteListOrder执行列表订单==== 
- 
-句法: 
- 
-ExecuteListOrder?symbol=<symbol.ext>&orderlistname=<orderListName>&shares=<int> 
- 
-举例: 
- 
-ExecuteListOrder?symbol=ZVZZT.NQ&orderlistname=myList&shares=100 
- 
-这个命令将把'myList'订单列表中的订单依次按每个订单100股ZVZZT.NQ发送到市场。 
- 
-====CancelOrder撤销订单==== 
-CancelOrder 命令让用户可以完成原先可以通过报价窗口按键完成的撤单功能。\\ 
- 
-句法: 
- 
-CancelOrder?type=ordernumber|all|oldest|newest|closest|furthest & ordernumber=<orderNumber> & symbol=<symbol.ext> & side=order|bid|offer\\ 
- 
-举例: 
- 
-CancelOrder?type=all&symbol=ZVZZT.NQ\\ 
- 
-这个命令将撤销所有ZVZZT.NQ已经被接受的订单。\\ 
- 
-====OrderCancelReplace订单撤销/取代==== 
- 
-举例: 
- 
-OrderCancelReplace?ordernumber=<orderNumber> & shares=target number of shares\\ 
- 
-这个命令修改指定的订单的股数。这个命令只能用来降低订单的股数。 
- 
-====GetOrderNumber获取订单号码==== 
- 
-这个命令将让用户可以获取通过ExecuteOrder命令发送的请求中相关的订单号码。\\ 
- 
-**注意:** 新推出PAPIORDER数据源类型后,用户也可以仅仅通过那个命令获得各个Region区域的文档来获得这个实时的信息,而不需要不停地从网路服务器读取。\\ 
- 
-句法: 
- 
-GetOrderNumber?requestid=<requestID>\\ 
-  
-举例: 
- 
-GetOrderNumber?requestid=3\\ 
- 
-这个命令将返回申请号码3对应的订单号码。\\ 
- 
-====GetOrderState获取订单状态==== 
-**重要:** 我们已经发现GetOrderState有一个问题,并且正在调查。在此期间,请通过观察OSTAT 和 OrderEvent 数据源了解订单信息。 
- 
-这个命令将让用户可以获取订单当前的状态。\\ 
- 
-**注意:** 随着OSTAT 和 OrderEvent 数据源类型的推出,用户也可以通过观察这两个命令产生的文档来获取实时的数据,而不需要不断地从网络服务器获取数据。\\ 
- 
-句法: 
- 
-GetOrderState?ordernumber=<order#>\\ 
- 
-举例: 
- 
-GetOrderState?ordernumber=GODOT04503000008M1711F7000000\\ 
- 
-这个命令将获得订单GODOT04503000008M1711F7000000当前的状态\\ 
- 
-以下数字代表的订单状态将返还。数字代表的状态分别为:\\ 
-  * 0 = eUninitialised\\没有命令 
-  * 1 = eHolding,  %%//!<%% Holding 等待(盘前订单 - 尚未发送到市场)\\ 
-  * 2 = ePending,  %%//!<%% pre accepted / rejected 提前接收/拒绝(盘前订单 - 发送给了市场,没有收到回复)\\ 
-  * 3 = eAccepted, %%//!<%% Accepted 订单接收(订单存在)\\ 
-  * 4 = eAP,       %%//!<%% Part Filled 订单部分接收(订单存在)\\ 
-  * 5 = eAPC,      %%//!<%% Part Cancelled 剩余订单撤销(终极 eAP)\\ 
-  * 6 = eAPF,      %%//!<%% Multi Filled 订单多次成交(终极 eAP)\\ 
-  * 7 = eAF,       %%//!<%% Filled 订单成交(终极 eA)\\ 
-  * 8 = eAC,       %%//!<%% Cancelled 订单撤销(终极 eA)\\ 
-  * 9 = eRejected, %%//!<%% Rejected 订单被拒绝\\ 
-  * 10 = eJunked,  %%//!<%% Junked 订单作废 
- 
-====GetOpenOrders获得已经接收的订单==== 
- 
-举例:GetOpenOrders?\\ 
- 
-这个命令返回订单的状态给用户。包括下面的几种状态: 
- 
-  * Accepted已接受 
-  * Rejected已拒绝 
-  * Cancelled已撤销 
-  * Holding等待 
- 
-=====仓位相关的命令===== 
- 
-====GetOpenPositions获得公开仓位==== 
- 
-用GetOpenPositions命令获取用户所有的当前仓位。该命令不再返回**Market**参数,而是在返回的**Symbol**参数中附带市场代码,例如ZVZZT.NQ。 
- 
-举例: 
- 
-GetOpenPositions?user=USERID\\ 
- 
-这个命令将反馈当前的所有仓位状态给用户。 
- 
-====Flatten平仓==== 
-句法: 
- 
-Flatten?symbol=<symbol.extension>\\ 
-举例: 
- 
-Flatten?symbol=ZVZZT.NQ\\ 
- 
-这个指令将发送平仓命令,为用户在指定的代码上的仓位平仓。\\ 
- 
-也可以用于多个代码\\ 
- 
-举例: 
- 
-Flatten?symbol=ZVZZT.NQ,ZWZZT.NQ,ZXZZT.NQ\\ 
- 
-用户也可以用下面的命令平掉所有的仓位\\ 
- 
-举例: 
- 
-Flatten\\ 
- 
-====Get (Summary)获取概览==== 
- 
-句法: 
- 
-Get?type=tool&tool=<summary instance>&key=<layer & row combination>\\ 
- 
-举例: 
- 
-Get?type=tool&tool=Summary_1&key=NCSA Equity^GODOT^F.NY\\ 
- 
-这个命令将输出一个CSV文档,文件名为 <用户名>_<工具名>.log。本例中将把交易员GODOT的Summary_1工具中,按Trader:Symbol层设置显示的在F.NY上的仓位输出。\\ 
- 
-=====更多注意===== 
- 
-=====其他===== 
- 
-=====参考===== 
tmsppro8应用程序接口.1455737006.txt.gz · Last modified: 2017/03/14 12:37 (external edit)