交易
首次登录,需要强制修改密码,该怎么操作?
方案1:
极星客户端修改
用
极星客户端
登录,首次登录会提示修改密码,直接在登录窗口修改即可。
方案2:
当用户环境不方便使用客户端时,可以用API
进行修改。
具体流程:
1.先按正常流程登陆(因为你不知道是否需要强制修改)
2.OnRspLogin会返回一个错误码:
10006 TAPIERROR_LOGIN_FORCE
需要强制修改密码3.这时候,再次调用Login。填写老密码、新密码,并将是否修改密码填为'Y'
注意事项:
1.第二次Login不能在OnRspLogin函数(即回调线程)中调用
2.如果已经知道首次登录需要修改密码,直接执行第3步也行。
交易接口,为什么会频繁调用OnRtnFund,OnRtnPositionProfit这两个函数?
有持仓的时候,在会发生资金变化和持仓盈亏变化,这两个接口是变化通知接口。
如果不需要推送,可以在登录时的TapAPITradeLoginAuth中填写相应的NoticeIgnoreFlag。
为什么OnRtnFill 返回的数据结构里不包含RefString和RefInt?
成交的推送,启明星系统后台主要是考虑到想尽快将成交信息推送给客户,所以没有从委托信息里查找RefString、RefInt。
需要将成交信息与委托信息对应的话,建议在App里处理,OnRtnFill和OnRtnOrder里的信息可以相互映射。
索引字段是: OrderNo
为什么OnRtnOrder中返回的数据结构里撤单量不准确?
由于撤单量取的是交易所返回的撤单量字段,而国内四家交易所并不统一,这个字段有时可能不准确。
建议客户处理的时候判断如果订单状态为已撤单或部分撤单时,按以下方法计算已撤数量:
已撤单数量 = 订单总量 - 已成交数量
升级TapAPI20150320(9.0.1.0)版本API注意事项
从该版本起对下单结构体里的OrderSource字段进行了限制,只能填写TAPI_ORDER_SOURCE_ESUNNY_API,否则会报错-12006(输入错误的TAPIOrderSource),之前的版本没有对此字段限制,升级的时候注意下这个问题。
关于OnRtnOrder接口的错误码
OnRtnOrder接口返回的错误码分两类:
- 第一类是易盛自己的错误代码,只返回了错误代码,具体错误信息可以参考API文档或头文件
- 第二类是交易所的代码和错误信息
建议的处理逻辑:
关于OnRtnPosition接口说明
OnRtnPosition接口推送的持仓信息是持仓明细,关键字的持仓号PositionNo。
- 当有一笔新的开仓时,OnRtnPosition接口会推送一笔拥有新持仓号的消息。
- 当有新的平仓时,OnRtnPosition接口会推送平仓完成后客户最新的持仓信息(根据持仓号发送该持仓号上最新的持仓量,如果该持仓号持仓被平完,则持仓量为0)
举个例子:(PS:当前交易日2016.12.01)
- (1). 客户1006有ZCE SR 705 两笔买历史持仓,持仓号分别为YF1611300000000001和YF1611300000000002,持仓量分别为1手和3手。
- (2). 客户新成交了一笔买开,持仓号TF201612010000000010,持仓量为2手。这时OnRtnPosition接口会推送持仓号为TF201612010000000010的信息
- (3). 客户新成交了一笔卖平,平仓量为2.根据交易所先开先平的规则,此次平仓平掉的是YF1611300000000001,和YF1611300000000002的一手。这时OnRtnPosition接口会推送YF1611300000000001持仓量为0的持仓信息,以及YF1611300000000002持仓量为2的持仓信息。
API用户可以根据OnRtnPosition接口推送的持仓号,更新本地持仓信息。 如果想汇总持仓量,先根据OnRtnPosition接口推送的信息,更新本地持仓信息,然后就可以按照自己的规则进行统计汇总。