tmsppro8应用程序接口
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tmsppro8应用程序接口 [2016/02/17 14:26] – [Time of Sales (TOS)成交记录] lingfei | tmsppro8应用程序接口 [2019/02/21 16:07] (current) – removed maya | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | **This work is licensed under a [[http:// | ||
- | ====== 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:// | ||
- | |||
- | 这个端口将显示当前支持的命令的基本信息。 | ||
- | |||
- | 注意:本文档中,以下的URL链接都忽略 http:// | ||
- | |||
- | http:// | ||
- | |||
- | {{ : | ||
- | |||
- | =====UDP功能===== | ||
- | |||
- | 要确保UDP的正常运行,请在编写您的程序的时候,确保它积极地收听端口。只有有一个主动收听的对象的时候,端口才会发送数据。 | ||
- | |||
- | 如果您只是想测试UDP的功能,我们建议您使用NetCat,以及附的 [[ http:// | ||
- | |||
- | 要使用NetCat,用下面的命令行启动它,举例: | ||
- | |||
- | -ul -p4135 | ||
- | |||
- | ...注意: | ||
- | |||
- | -u 代表 UDP\\ | ||
- | -l 代表 " | ||
- | -p 代表port端口,后面的数字按注册的端口不同而不同\\ | ||
- | |||
- | ...连起来,这个命令就是 " | ||
- | |||
- | 然后您可以用这个命令来注册并且发送数据到您指定的端口。 | ||
- | |||
- | 举例: | ||
- | |||
- | 注册代码ZXZZT.NQ的Level1数据,发送数据到UDP的4135端口 | ||
- | |||
- | http:// | ||
- | |||
- | =====数据类型Data Types===== | ||
- | API允许用户对下面的数据类型进行注册/ | ||
- | |||
- | ====Register注册==== | ||
- | |||
- | Register注册命令用来注册各类的数据。\\ | ||
- | |||
- | 每次注册的时候,写入单个的文档是通过命令中的 **bykey**句法 ,按照下面的方法完成的: | ||
- | |||
- | Register? | ||
- | |||
- | 另一方面, **bytype**句法将把注册的代码的数据写入到指定的文档。句法如下: | ||
- | |||
- | Register? | ||
- | |||
- | | ||
- | |||
- | Deregistration注销也是一样。 | ||
- | |||
- | ====注册命令==== | ||
- | |||
- | 随着PPro8 TMS系统SevenSisters 1.8版本的推出,注册命令Register一分为三:GetSnapshot获取截图, | ||
- | |||
- | 利用这些命令,您可以设置输出,并且通过状态on还是off来启动或者关闭,或者选择写入仅仅截图,仅仅实时数据,或者两个都写入。 | ||
- | |||
- | ===GetSnapshot获取截图=== | ||
- | |||
- | 用这个命令获取代码当前的数据 (过去的100个记录,但不包含更新的数据)。 | ||
- | |||
- | 句法: | ||
- | |||
- | GetSnapshot? | ||
- | |||
- | ===Register注册=== | ||
- | |||
- | 和原先的命令一样,用这个命令获取代码实时的数据,以及更新的数据。 | ||
- | |||
- | 句法: | ||
- | |||
- | Register? | ||
- | |||
- | ===SetOutput设置输出=== | ||
- | |||
- | 用这个命令设置代码输出的信息,定义数据写到哪里,可以是**bykey** 或者 **bytype**。 | ||
- | |||
- | 句法: | ||
- | |||
- | SetOutput? | ||
- | |||
- | ===Deregister注销=== | ||
- | |||
- | Deregister命令是用来注销各类数据的。这将命令API停止向log文件写入数据,或者关闭Level1的Call命令。\\ | ||
- | |||
- | 句法: | ||
- | |||
- | Deregister? | ||
- | |||
- | 各类数据的命令例子如下:\\ | ||
- | |||
- | ====Level 1 (L1)==== | ||
- | 举例: | ||
- | |||
- | Register? | ||
- | |||
- | API将注册来接受代码ZVZZT.NQ所有的Level 1的价格/ | ||
- | |||
- | L1的消息必须包含代码这个参数。\\ | ||
- | |||
- | 每一次的L1更新,就是一行逗号隔开的数据行,包含了下面的栏目:\\ | ||
- | * LocalTime=09: | ||
- | * MarketTime=09: | ||
- | * 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? | ||
- | |||
- | API将接受代码ZVZZT.NQ所有的成交记录的数据。更新的数据将被写入PPro8的登录目录的一个文档,文件名为:TOS_1_ZVZZT.NQ.log\\ | ||
- | |||
- | TOS的消息必须包含代码这个参数\\ | ||
- | |||
- | TOS的数据,每个代码单独写入一个文档。\\ | ||
- | |||
- | 每个TOS的更新,是一个按逗号分隔的数据行,栏目包括:\\ | ||
- | * LocalTime=09: | ||
- | * MarketTime=09: | ||
- | * 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: | ||
- | |||
- | LocalTime=21: | ||
- | |||
- | LocalTime=21: | ||
- | |||
- | LocalTime=21: | ||
- | |||
- | 完整的TOS的缩写表(Market Center市场中心缩写, | ||
- | |||
- | ====Market Depth (L2)市场深度==== | ||
- | 举例: | ||
- | |||
- | Register? | ||
- | |||
- | API将接收代码ZVZZT.NQ的Level 2的所有报价更新。这些更新将被写入PPro8登录目录的文档,文档名为:L2_1_ZVZZT.NQ.log\\ | ||
- | |||
- | L2的数据必须包含代码这个参数。\\ | ||
- | |||
- | L2的数据,每个代码分别写入一个文档。\\ | ||
- | |||
- | 每个Level 2的更新,是一个按逗号分隔的数据行,栏目包括:\\ | ||
- | * LocalTime=08: | ||
- | * MarketTime=08: | ||
- | * Mmid=ANON <- 代表本次更新的市场参与者代码MMID\\ | ||
- | * Side=B <- 代表更新的订单的方向\\ | ||
- | * Price=8.6 <- 代表更新的订单的价格\\ | ||
- | * Volume=100 <- 代表更新的订单的股数\\ | ||
- | * Depth=1 <- 代表订单的价位数\\ | ||
- | * SequenceNumber=27003 <- 这个序列号,是按每个市场参与者代码MMID、Price订单价格、和方向Side分配的,可以用来排除错乱的数据。\\ | ||
- | |||
- | 每一次的更新,要么 (a) 创建一个新的价位,要么 (b) 对指定的市场参与者代码MMID, | ||
- | |||
- | 举例:如果您当前有一个在ANON市场参与者代码中的400股,定价在每股8.6美元的买单,上面的例子将把ANON的8.6价位的买单股数调整到100股。 | ||
- | |||
- | === Market Depth Snapshot市场深度截图 === | ||
- | 当API在一个代码上注册Level 2的数据源的时候,它将首先获取一个截图。截图代表了这个代码目前的报价状态,并且将随着实时的更新消息不断更新。\\ | ||
- | |||
- | 截图的数据从Side=s开始。举例: | ||
- | |||
- | " | ||
- | |||
- | 所有截图的数据都显示SequenceNumber=0.\\ | ||
- | |||
- | 截图的数据从Side=e结束,举例: | ||
- | |||
- | " | ||
- | |||
- | ====Imbalance (IMBALANCE)尾额数据==== | ||
- | |||
- | 举例: | ||
- | |||
- | Register? | ||
- | |||
- | API将注册接收所有Region 1(NCSA区域)市场的尾额数据。数据将被写入PPro8登录目录的一个文档,文件名为:IMBLO_1_ALL.log\\ | ||
- | |||
- | IMBALANCE尾额数据必须包括Region区域参数。\\ | ||
- | |||
- | 每一个Imbalance尾额数据更新,是一个由逗号隔开的数据行,栏目包括:\\ | ||
- | * LocalTime=15: | ||
- | * MarketTime=15: | ||
- | * 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? | ||
- | |||
- | **注意:** OSTAT的注册只能用 " | ||
- | |||
- | API将注册接收Region1(NCSA区域)市场的订单状态Order Status (OSTAT)消息。数据将被写入到PPro8的登录文件夹的一个文档,文件名为:OSTAT_1_< | ||
- | |||
- | OSTAT的数据必须包含Region这个参数。\\ | ||
- | |||
- | 每个Region创建一个文档。为了查看所有的订单状态更新 - 包括内部拒绝的订单,用户需要监控OSTAT 和 ORDEREVENT 日志。\\ | ||
- | |||
- | 每个OSTAT更新是由逗号分隔的数据行,栏目包括:\\ | ||
- | * LocalTime=09: | ||
- | * MarketDateTime=20131011-09: | ||
- | * 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? | ||
- | |||
- | API将注册接收Region 1 (NCSA区域)市场的订单的事件消息。数据将写入PPro8登录文件夹,文件名为:ORDEREVENT_1_< | ||
- | |||
- | ORDEREVENT订单事件的消息必须包括Region这个参数。\\ | ||
- | |||
- | 每个区域都有单独的文件。这个日志文件可以和OSTAT log文件一块,用来监控订单状态更新。ORDEREVENT log文件包含了内部拒绝的消息(例如:Buying Power不足,或者无法找到可以交易的股票),这些信息是OSTAT消息没有的。\\ | ||
- | |||
- | ORDEREVENT log文件的主要用户是在一个订单没有在OSTAT记录中出现的时候,确认这个订单是内部拒绝的。\\ | ||
- | |||
- | 每个ORDEREVENT 更新是由逗号分隔的数据行,栏目包括:\\ | ||
- | * LocalTime=08: | ||
- | * MarketDateTime=20131025-08: | ||
- | * EventMessageType=1 <- 代表事件的性质: | ||
- | * EventFlavour=2 <- 代表内部的订单状态: | ||
- | * EventOriginatorId=1 <- 代表订单事件发出方 1=Client客户端, | ||
- | * 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在等待一个订单事件,然后才会把订单发出 (状态-> | ||
- | *11 LastOrderEventFlavour 上一次订单事件的性质 | ||
- | |||
- | **注意:** 当价格和订单股数在OPC服务器检查的时候,将显示一个无效的数值。我们预计将在下一个OSM订单状态管理服务器推出时解决这个问题。如果您认为这可能影响您的交易,用户可以很容易地筛选出这些数值,因为它的值是 " | ||
- | ====PProAPI Index to Order # (PAPIORDER)API的订单号码目录==== | ||
- | |||
- | 举例: | ||
- | |||
- | Register? | ||
- | |||
- | API将注册接收每次订单申请相关的订单号码的信息。数据将写入PPro8的登录文件夹的文档,文件名为: PAPIORDER_1_< | ||
- | |||
- | PAPIORDER的消息必须包含Region这个参数\\ | ||
- | |||
- | 这个Log文件的用途是让用户可以限制' | ||
- | |||
- | 每个PAPIORDER更新是由逗号隔开的数据行,栏目包括:\\ | ||
- | * LocalTime=10: | ||
- | * PProApiIndex=3 <- 代表和一个XML格式发送的ExecuteOrder事件有关的申请号码RequestID\\ | ||
- | * OrderNumber=DV10600503000002M171407100000 <- 代表和申请号码RequestID相关的订单号码\\ | ||
- | ====Lv1 & Tos==== | ||
- | 这些功能减弱了,但是仍然提供,利用TOS和L1命令。 | ||
- | |||
- | ====GetLv1获取Level 1数据==== | ||
- | |||
- | 用GetLv1命令获取Level 1数据的截图 | ||
- | |||
- | 句法: | ||
- | |||
- | GetLv1? | ||
- | |||
- | 举例: | ||
- | |||
- | GetLv1? | ||
- | |||
- | 这将引起下面的反应: | ||
- | |||
- | < | ||
- | |||
- | 这是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命令获取所有用户的订单/ | ||
- | |||
- | 句法: | ||
- | |||
- | GetTransactions? | ||
- | |||
- | 举例: | ||
- | |||
- | GetTransactions? | ||
- | |||
- | 反馈: | ||
- | |||
- | <Trader name=" | ||
- | =====订单相关的命令===== | ||
- | |||
- | API为用户提供几个和订单互动的方法。要了解更多的信息,请访问API的主页 (http:// | ||
- | |||
- | ====ExecuteOrder执行订单==== | ||
- | **重要**\\ | ||
- | 当您准备用API来发送订单时,您要按照下面的步骤操作:\\ | ||
- | 1. 用热键设置工具为订单设置热键\\ | ||
- | 2. 在报价窗口,调出订单编辑器OrderEditBox\\ | ||
- | 3. 注意在订单编辑器中的栏目OrderEditBox。您要用这些栏目来定义通过API发送的订单命令参数。\\ | ||
- | |||
- | ExecuteOrder命令有一系列的参数,根据要发送的订单类型不同您需要提供这些参数的值:\\ | ||
- | * symbol=< | ||
- | * limitprice=< | ||
- | * ordername=< | ||
- | * shares=< | ||
- | * priceadjust=< | ||
- | * stopprice=< | ||
- | * pegdifference=< | ||
- | * displaysize=< | ||
- | * displayrange=< | ||
- | * minexecsize=< | ||
- | |||
- | 句法: | ||
- | |||
- | ExecuteOrder? | ||
- | |||
- | 举例: | ||
- | |||
- | ExecuteOrder? | ||
- | |||
- | 这个例子将发送一个Reserve(部分隐藏)订单到TSX通道,订价为限价每股6.90加元,买入1000股(显示100股)。\\ | ||
- | |||
- | ====GetOstats==== | ||
- | |||
- | |||
- | ====ExecuteBasketOrder执行一篮子订单==== | ||
- | |||
- | 用这个命令发送一篮子订单 (在PPro8客户端设置好的)。 | ||
- | |||
- | 句法: | ||
- | |||
- | ExecuteBasketOrder? | ||
- | |||
- | 举例: | ||
- | |||
- | ExecuteBasketOrder? | ||
- | |||
- | ====ExecuteListOrder执行列表订单==== | ||
- | |||
- | 句法: | ||
- | |||
- | ExecuteListOrder? | ||
- | |||
- | 举例: | ||
- | |||
- | ExecuteListOrder? | ||
- | |||
- | 这个命令将把' | ||
- | |||
- | ====CancelOrder撤销订单==== | ||
- | CancelOrder 命令让用户可以完成原先可以通过报价窗口按键完成的撤单功能。\\ | ||
- | |||
- | 句法: | ||
- | |||
- | CancelOrder? | ||
- | |||
- | 举例: | ||
- | |||
- | CancelOrder? | ||
- | |||
- | 这个命令将撤销所有ZVZZT.NQ已经被接受的订单。\\ | ||
- | |||
- | ====OrderCancelReplace订单撤销/ | ||
- | |||
- | 举例: | ||
- | |||
- | OrderCancelReplace? | ||
- | |||
- | 这个命令修改指定的订单的股数。这个命令只能用来降低订单的股数。 | ||
- | |||
- | ====GetOrderNumber获取订单号码==== | ||
- | |||
- | 这个命令将让用户可以获取通过ExecuteOrder命令发送的请求中相关的订单号码。\\ | ||
- | |||
- | **注意:** 新推出PAPIORDER数据源类型后,用户也可以仅仅通过那个命令获得各个Region区域的文档来获得这个实时的信息,而不需要不停地从网路服务器读取。\\ | ||
- | |||
- | 句法: | ||
- | |||
- | GetOrderNumber? | ||
- | |||
- | 举例: | ||
- | |||
- | GetOrderNumber? | ||
- | |||
- | 这个命令将返回申请号码3对应的订单号码。\\ | ||
- | |||
- | ====GetOrderState获取订单状态==== | ||
- | **重要:** 我们已经发现GetOrderState有一个问题,并且正在调查。在此期间,请通过观察OSTAT 和 OrderEvent 数据源了解订单信息。 | ||
- | |||
- | 这个命令将让用户可以获取订单当前的状态。\\ | ||
- | |||
- | **注意:** 随着OSTAT 和 OrderEvent 数据源类型的推出,用户也可以通过观察这两个命令产生的文档来获取实时的数据,而不需要不断地从网络服务器获取数据。\\ | ||
- | |||
- | 句法: | ||
- | |||
- | GetOrderState? | ||
- | |||
- | 举例: | ||
- | |||
- | GetOrderState? | ||
- | |||
- | 这个命令将获得订单GODOT04503000008M1711F7000000当前的状态\\ | ||
- | |||
- | 以下数字代表的订单状态将返还。数字代表的状态分别为:\\ | ||
- | * 0 = eUninitialised\\没有命令 | ||
- | * 1 = eHolding, | ||
- | * 2 = ePending, | ||
- | * 3 = eAccepted, %%//!<%% Accepted 订单接收(订单存在)\\ | ||
- | * 4 = eAP, | ||
- | * 5 = eAPC, %%//!<%% Part Cancelled 剩余订单撤销(终极 eAP)\\ | ||
- | * 6 = eAPF, %%//!<%% Multi Filled 订单多次成交(终极 eAP)\\ | ||
- | * 7 = eAF, | ||
- | * 8 = eAC, | ||
- | * 9 = eRejected, %%//!<%% Rejected 订单被拒绝\\ | ||
- | * 10 = eJunked, | ||
- | |||
- | ====GetOpenOrders获得已经接收的订单==== | ||
- | |||
- | 举例:GetOpenOrders? | ||
- | |||
- | 这个命令返回订单的状态给用户。包括下面的几种状态: | ||
- | |||
- | * Accepted已接受 | ||
- | * Rejected已拒绝 | ||
- | * Cancelled已撤销 | ||
- | * Holding等待 | ||
- | |||
- | =====仓位相关的命令===== | ||
- | |||
- | ====GetOpenPositions获得公开仓位==== | ||
- | |||
- | 用GetOpenPositions命令获取用户所有的当前仓位。该命令不再返回**Market**参数,而是在返回的**Symbol**参数中附带市场代码,例如ZVZZT.NQ。 | ||
- | |||
- | 举例: | ||
- | |||
- | GetOpenPositions? | ||
- | |||
- | 这个命令将反馈当前的所有仓位状态给用户。 | ||
- | |||
- | ====Flatten平仓==== | ||
- | 句法: | ||
- | |||
- | Flatten? | ||
- | 举例: | ||
- | |||
- | Flatten? | ||
- | |||
- | 这个指令将发送平仓命令,为用户在指定的代码上的仓位平仓。\\ | ||
- | |||
- | 也可以用于多个代码\\ | ||
- | |||
- | 举例: | ||
- | |||
- | Flatten? | ||
- | |||
- | 用户也可以用下面的命令平掉所有的仓位\\ | ||
- | |||
- | 举例: | ||
- | |||
- | Flatten\\ | ||
- | |||
- | ====Get (Summary)获取概览==== | ||
- | |||
- | 句法: | ||
- | |||
- | Get? | ||
- | |||
- | 举例: | ||
- | |||
- | Get? | ||
- | |||
- | 这个命令将输出一个CSV文档,文件名为 < | ||
- | |||
- | =====更多注意===== | ||
- | |||
- | =====其他===== | ||
- | |||
- | =====参考===== |
tmsppro8应用程序接口.1455737177.txt.gz · Last modified: 2017/03/14 12:37 (external edit)