Wind 量化接口交易专题上海万得信息技术股份有限公司Shanghai Wind Information Co., Ltd.地 址: 上海市浦东新区福山路33号建工大厦9楼 邮编Zip: 200120电话Tel: (8621) 6888 2280 传真Fax: (8621) 6888 2281 Email: sales@ ——中国金融数据及解决方案首席服务商目录1交易接口概览 (1)1.1函数说明 (1)1.1.1tlogon(登录) (1)1.1.2tlogout(登出) (2)1.1.3torder(下单) (2)1.1.4tcancel(撤单) (3)1.1.5tquery(查询) (3)1.2L OGON ID、R EQUEST ID和O RDER N UMBER (4)1.2.1LogonID (4)1.2.2RequestID (4)1.2.3OrderNumber (4)2账户登录与登出 (6)2.1登录模拟交易账户 (6)2.1.1登录单个模拟交易账户 (6)2.1.2登录多个模拟交易账户 (6)2.2登录实盘交易账户 (6)2.2.1登录单个实盘交易账户 (7)2.2.2登录多个实盘交易账户 (7)2.3查询登录账户 (7)3交易与查询 (8)3.1下单 (8)3.2查询委托 (8)3.3撤单 (10)3.4查询成交 (10)3.5查询资金 (11)3.6查询持仓 (11)1交易接口概览Wind交易接口包括5个函数,分别为tlogon(登录)、tlogout(登出)、torder(下单)、tcancel(撤单)、tquery(查询)。
将这5个函数串联起来的是LogonID、RequestID和OrderNumber。
1.1函数说明1.1.1tlogon(登录)【登录函数】tlogon(BrokerID,DepartmentID,LogonAccount,Password,AccountType) 【参数说明】模拟交易账号规则和支持的市场品种见下表:【例】如果Wind金融终端账号是W0813652,那么W081365201是证券模拟账号,W081316502是期货模拟账号,W081316503是衍生品模拟账号。
【注2】AccountType参数1.1.2tlogout(登出)【登出函数】tlogout(LogonID)【参数说明】1.1.3torder(下单)【下单函数】torder(WindCode,TradeSide,OrderPrice,OrderVolume,MarketType,OrderType,HedgeTy pe,LogonID)【参数说明】(灰色为必选参数)【注3】TradeSide参数【注4】OrderType参数限价指令。
【注5】MarketType参数输入的是交易代码不是Wind 码时,需要输入市场代码。
只有C++接口会用到此参数【注6】HedgeType参数缺省为SPEC 投机1.1.4tcancel(撤单)【撤单函数】tcancel(OrderNumber,MarketType,LogonID)【参数说明】1.1.5tquery(查询)查询函数:tquery(Qrycode,LogonID,RequestID,OrderNumber,WindCode,BrokerID)参数说明:tquery函数根据Qrycode参数返回相应的查询结果,Qrycode支持以下8种查询,其中最重要的是Order(委托)、Trade(成交)、Capital(资金)、Position(持仓)。
1.2LogonID、RequestID和OrderNumber1.2.1LogonID【定义】登录交易账户时返回的登录流水号,本地临时存储,可以区分登录的账户,同一账户登录多次会分配不同的LogonID。
【如何获取】运行tlogon时会返回LogonID。
运行tquery('LogonID')时会返回当前登录的所有LogonID。
【如何使用】可作为tquery、tlogout、torder、tcancel的函数参数,进行指定登录账户的操作。
【获取使用流程图】1.2.2RequestID【定义】返回的请求流水号,本地临时存储,可以查询委托状态。
【如何获取】运行torder时会返回RequestID。
【如何使用】可作为tquery('order')的函数参数,查询OrderNumber(委托号)和OrderStatus(委托状态)。
1.2.3OrderNumber【定义】经纪商提供的委托号,由经纪商服务器返回。
【如何获取】运行tquery('order')时会返回OrderNumber。
【如何使用】可作为tcancel撤单、tquery('order')、tquery('trade')的函数参数,进行指定委托的操作。
【获取使用流程图】2账户登录与登出Wind量化接口支持模拟交易和实盘交易两种交易方式,区别仅在于tlogon(登录)的参数不同,tlogout(登出)、torder(下单)、tcancel(撤单)、tquery(查询)完全一致,可无缝对接。
Wind量化接口支持同时登录多个交易账户,同一交易账户支持登录多次。
在登录之前需和Wind接口取得连接。
2.1登录模拟交易账户2.1.1登录单个模拟交易账户模拟交易账户登录时,经纪商代码(BrokerID)填0000,营业部代码(DepartmentID)填0。
【例:登录期货模拟账户】w.tlogon('0000','0','w081365201','*','SHSZ')$DataLogonID LogonAccount AccountType1 1 w081365201 SHSZ【例:登录期货模拟账户】w.tlogon('0000','0','w081365202','*','CFE')$DataLogonID LogonAccount AccountType1 2 w081365202 CFE2.1.2登录多个模拟交易账户【例:登录证券、期货、衍生品模拟账户】w.tlogon('0000','0',c('w081365201','w081365202','w081365203'),c('*','*','*'),c('SHSZ','CFE',' SHO'))$DataLogonID LogonAccount AccountType1 1 w081365201 SZSHA2 2 w081365202 CFE3 3 w081365203 SHO2.2登录实盘交易账户实盘交易账户登录时,需要知道经纪商代码(BrokerID)和营业部代码(DepartmentID),无营业部代码填0。
【例:获取经纪商代码(BrokerID)】w.tquery('broker')$DataBrokerID BrokerName1 0000 Wind资讯模拟交易25 10550101 华泰证券股份有限公司40 10960101 银河证券股份有限公司123 21420401 永安期货(CTP)……【例:获取银河证券营业部代码(DepartmentID)】w.tquery('department','brokerid=10960101')$DataDepartmentID DepartmentName1 0101 北京中关村大街证券营业部2 0103 北京金融街证券营业部……2.2.1登录单个实盘交易账户【例:登录华泰证券账户,无需填营业部代码】w.tlogon('10550101','0','资金账号','*','SHSZ')【例:登录银河证券账户,需填营业部代码】w.tlogon('10960101','0103','资金账号','*','SHSZ')2.2.2登录多个实盘交易账户【例:登录华泰证券、永安期货实盘账户】w.tlogon(c('10550101’,’21420401'),'0',c('600010758301','880026'),c('*','*'),c('SHSZ','CFE'))2.3查询登录账户【例:查询当前登录了哪些交易账户】w.tquery('LogonID')$DataLogonID LogonAccount AccountType1 1 w081365201 SZSHA2 2 w081365202 CFE3 3 w081365203 SHO3交易与查询3.1下单【例:单个证券限价委托】w.torder('600000.SH','Buy','9.76','100','OrderType=LMT;LogonID=1')$DataRequestID SecurityCode TradeSide OrderPrice OrderVolume OrderType LogonID 1 47 600000.SH 1 9.76 100 LMT 1 ErrorCode ErrorMsg0 Sending ...【例:单个证券市价委托】w.torder('300001.SZ ','Buy','21.5','100','OrderType= FOK;LogonID=1')$DataRequestID SecurityCode TradeSide OrderPrice OrderVolume OrderType LogonID1 15 300001.SZ 1 21.5 100 FOK 1 ErrorCode ErrorMsg1 0 Sending ...【例:多个证券限价委托】w.torder(c('600000.SH','IF1410.CFE'),c('Buy','Short'),c('9.76','2480.00'),c('100','10'),OrderT ype='LMT',LogonID=c(1,2))$DataRequestID SecurityCode TradeSide OrderPrice OrderVolume OrderType LogonID1 8 600000.SH 1 9.76 100 LMT 12 9 IF1410.CFE 2 2480.00 10 LMT 2 ErrorCode ErrorMsg1 0 Sending ...2 0 Sending ...3.2查询委托【例:查询当前可撤单】w.tquery('Order','LogonID=1;OrderType=Withdrawable')$DataOrderNumber OrderStatus SecurityCode SecurityName TradeSide OrderPrice 1 1 Normal 600000.SH 浦发银行Buy 9.76 OrderVolume OrderTime TradedPrice TradedVolume CancelVolume LastPrice 1 100 41929.46 0 0 0 0 MadeAmt OrderFrozenFund MoneyType Remark LogonID ErrorCode ErrorMsg 1 0 981.06 CNY 已报 1 0【例:根据RequestID查询委托】w.tquery('Order','LogonID=1;RequestID=15')$DataOrderNumber OrderStatus SecurityCode SecurityName TradeSide OrderPrice 1 3 Normal 300001.SZ 特锐德Buy 0 OrderVolume OrderTime TradedPrice TradedVolume CancelVolume LastPrice 1 100 41929.56 21.24 100 0 0 MadeAmt OrderFrozenFund MoneyType Remark LogonID RequestID ErrorCode 1 2124 2405 CNY 已成 1 15 0【例:根据RequestID查询委托,使用Showfields指定返回字段,委托有效】w.tquery('order','LogonID=1;RequestID=15;showfields=OrderNumber,OrderStatus') $DataOrderNumber OrderStatus1 3 Normal【例:根据RequestID查询委托,使用Showfields指定返回字段,委托无效】w.tquery('order','LogonID=1;RequestID=21;showfields=OrderNumber,OrderStatus') $DataOrderNumber OrderStatus1 NaN Invalid【注7】OrderStatus包含Normal(正常)、Cancelled(撤单)、Invalid(无效)、Dealing (处理中)四种结果。