1、上海金融期货信息技术有限公司技术文档 飞马 API常见 问题 解答 手册 2014年 7月 21日 上海金融期货信息技术有限公司技术文档 版权所有 上海金融期货信息技术有限公司 第 I页 目录 0 引言 . 1 1 登录类问题 . 1 2 环境类问题 . 2 3 查询类问题 . 4 3.1 查询合约 4 3.2 查询持仓 5 3.3 查询合规参数 . 6 3.4 查询资金费率 . 7 4 下单类问题 . 8 4.1 报单操作 8 4.2 撤单操作 14 4.3 报价询价 15 5 行情类问题 . 16 6 参数类问题 . 17 7 管理端问题(仿真) 19 7.1 文件导入问题 . 19 7.
2、2 参数设置问题 . 20 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 1页共 23页 0 引言 本文档主要面向飞马的使用用户,总结归纳了在仿真以及互联网环境中,测试时遇到的 API 以及管理端的 相关 问题 , 问题 原因以及 解决方法 。本 文档主要来源 于飞马技术交流群 中 的 问题 记录。如有 错漏, 欢迎各位指正! 1 登录类问题 1 问:飞马是否支持多点登陆 ? 答:飞马的 User 不可以重复登陆,即一个 User 只能在一处登陆。但是飞马可以将多个 User 对应到同一个 Investor 上,模拟多点登
3、陆。 2 问:输入正确的用户名 /密码,系统仍旧提示用户名密码错误 ? 答 : 登录时除用户名密码是否正确外,飞马还检查了 brokerid 是否正确,请与 期货公司核对是否填写了正确的 brokerid 信息。 大仿真环境请核对席位和密码是否正确。 3 问 :登陆 时 OnFrontConnected 和 OnFrontDisonnected 重复 调用, 前置连接上 又断开, 是什么问题? 答 : 如果仅仅 只有这两个回调函数 , 没有收到 OnRspUserLogin,说明没有连接上前置 。这种情况要么是 网络问题 , IP 或者 端口配置有误 ; 要么是飞马上海金融期货信息技术有限公司
4、 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 2页共 23页 前置没有打开 ,请联系 系统运维人员解决。 4 问 : 用户刚登录 上马上断开, 是 什么问题? 答:飞马 的 UserID 不能 多点 登录 ,若 在多个地方登陆会出现 互踢 的现象,表现为刚登陆上就断开 。客户反映 行情不动,也可能是 该用户 在 其他地点 登录的原因。 5 问 : 登录 时报错,用户重复登录 , 是什么问题 ? 答: 用户没有登出 ,直接 关闭程序 后马上 进行登录, 可能 会出现该错误。 6 问: 登录时报错 , 用户不活跃,是什么问题 ? 答 : 用户不活跃多是由
5、于前一天 未 导入结算数据导致,仿真环境可 在交流群中联系飞马运维人员,暂停飞马系统后,重新导入结算数据,重新上场。 2 环境 类问题 1 问 :飞马都有哪些测试环境?测试 时间是 什么?如何 接入 ? 答 : 飞马 测试 环境时间 如下 ,详细请参考 飞马 用户接入指南 互联网 测试环境: 周一 至周五 7:30-23:00 大仿真 测试环境: 周一 至周五 9:15-11:30, 13:30-15:15 生产 测试环境: 周一至 周五 18:00-22:00, 周六 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 3页共
6、 23页 2 问:飞马系统中的上期所,郑商所代码分别是什么? 答:目前只支持中金所,不支持上期所,郑商所代码。 3 问:现在的互联网测试帐号,对行情的订阅,是否支持最新的合约? 答:不支持的,现在的互联网测试账号对行情的订阅都是静态的,目前还没有更新,所以只有原来的合约才可以交易的。 4 问:飞马现在有类似快期这样的客户端了吗? 答: 飞马系统没有自带的客户端 , 目前支持飞马系统的客户端 交易终端 包括飞讯,闪电王,快期, 程序化交易终端包括开拓者( TB) , 可联系相关软件开发商 。 5 问:飞马接口里面好像没有看到结算单的确认,这步可以跳过不做吗? 答:可以的, 飞马没有结算功能,该步
7、骤可以不操作 。 6 问:飞马系统支持询价回应吗? 答: 飞马大仿真环境已经升级至做市商版本,该版本支持做市商功能,支持报价和询价,但需要使用 V1.2 以上版本的 API 进行操作。 7 问: API 在 linux32 下和 win32 下比有什么特别的地方吗? 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 4页共 23页 答:没什么区别,只是编译库的方式不一样。 但是 linux 环境本身某些处理机制(如休眠、唤醒等)要优于 windows 的处理,因此我们推荐使用 linux版本的 API。 8 禁用网卡马 上就有
8、断线的回调 ,但拔掉网线后大概 30 秒后才有断线的回调,为什么? 答: windows 的操作系统下, TCP 协议在网络断线时是有一个假死状态的,这时候网络已经断开联系,但是 windows 系统仍然记住的是之前的网卡状态,直接假死状态结束或者心跳超时,系统才会发现网络已经断线了。 9 问: 飞马能支持设置对某个客户屏蔽某个合约的回报信息吗?比如一个交易编码在主席上做国债,在飞马上做股指 ? 答:飞马支持会员流和席位流两种订阅模式。 如果在飞马中订阅席位流的话,那么就只收到该席位的所有回报,如果在其他系统配置了其他席位,飞马是收不到的 , 相当于实现了分系统交易 。 3 查询类问题 3.1
9、 查询合约 1 问:飞马支持查询所有合约吗,字段应该如过填写 ? 答:支持查询所有合约,只需要填写 ExchangeID 字段,不填写 InstumentID上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 5页共 23页 字段或者填写为空 , 但 查询 时 要注意初始化查询结构体 。 2 问:查询合约返回是 OnRtnInstrument 吗?那 OnRtnInstrumentStatus什么情况下会调用,这两个有什么区别? 答: OnRtnInstrument 是查询合约 ReqQryInstrument 的响应函数,On
10、RtnInstrumentStatus 是合约状态变化通知,一般在开盘和休市等时间会收到。 3.2 查询持仓 1 问 : 可以查询同一投资者下其他用户的持仓 订单 成交吗? 答 : 由于持仓信息本身就是按照交易编码累计的,因此使用同一交易编码的所有用户查询持仓的结果都是一致的。 查询订单、成交时,只填写 InvestorID, 不填写 UserID, 即查询该投资者下所有用户的信息 ; 若只填写 UserID, 不填写 InvestorID, 即可查询该用户下所有投资者的信息 ; 若 UserID 和 InvestorID 均不填写 ,则报错 。 2 问: 飞马的查询的限制是每秒一次?是指每个
11、 investor id 还是对每个 user id?如果我有多个 user(匹配到同一 investor id)通过多线程访问,每个user 最多每秒一次? 答: 飞马查询类 API 为 一秒 查询 一次 ,超过这个限制会报错。 这个 跟 user 和investor 没多大关系 。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 6页共 23页 3 问:飞马是否可以查询昨持仓? 答:飞马不区分昨持仓和今持仓,如果前一天飞马导入 的持仓 文件中有数据,那么上场后这些持仓也会记作今仓 ( Position = 今仓 +昨仓,
12、 YdPosition = 昨仓) 。 昨仓 相关字段 中的数据可以用来查询,不可用来交易 ( 即上场后不会改变 ) 。 4 问:当收到空的持仓查询应答,能说明什么情况? 答:如果查询请求中的参数没有错误,则说明没有持仓, 没有合约成交。 5 在持仓查询请求中,我按要求填写了投资者编号以及经纪公司代码,并发送查询请求,但收到的持仓查询应答为空。这时我是有持仓的,账户资金查询都可以看到有持仓盈亏的。这个是否和 API 版本有关?(仿真) 答:这两者的值是在上场数据中决定的。你用来查询的值,要与上场数据一致,才能查到数据。 6 问:查询持仓时,能否不填写交易所代码和合约 ? 答:可以不填的。 表示
13、查询 所有持仓信息 。 3.3 查询合规参数 1 问 :OnRspQryComplianceParam 的返回似乎表示没有查到该记录。是上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 7页共 23页 ReqQryComplianceParam 的参数不对吗?(仿真) 答:这个查询的结果是没有错误,只是没有查询到任何记录! 查询不到结果有两种可能: a. 合规参数表( ComplianceParam)确实没有记录。 合规参数表中的记录是需要上场的,你确定在你的上场数据中有记录吗(你要查询的记录)。 b. 用来查询的参数不对。
14、3.4 查询资金费率 1 问: 资金 中的平仓盈亏和持仓盈亏是用什么来计算的?是逐笔还是逐日? 答: 飞马的动态盈亏是每 5s 计算盈亏, 持仓盈亏 根据当前行情数据 和持仓均价 计算的 ,平仓盈亏是根据平仓价和持仓均价计算的。 既不是逐笔也不是逐日 。 2 问: ReqQryInvestorAccount 时,对于一个 InvestorID 来说,所有的资金都是零。这个是正常情况吗 ? 如何让 InvestorID 的 PreBalance 有一定的金额(比如说 5000000),以方便下单等测试 答:投资者资金账号( InvestorAccount)中的数值是上场决定的。如果你上场的数据中
15、没有值,那默认就是 0 。这个是否正常,要看你上场数据是不是 有 值 。 让 InvestorID 中 有 一 定 的 金 额 , 就 是 把 投 资 者 资 金 账 号( InvestorAccount)中相关的字段填写正确的数值。对期货公司的上场数据,主要的是 “昨日结算准备金( prebalance_day)” 和 “今日结算准备金( balance_day) “ 的字段中要有数值。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 8页共 23页 3 问:一个客户可能既有投机,又有套保,那么对以同一个 ClientID
16、 而言,会有投机和套保两份费率表,还是两份相同的话只发一份? 答:目前客户手续费率表中,对 一个 ClientID 而言, 只有一份手续费率。但实际上,在中金所的业务规则 中, 投机和套保的 ClientID 是不一样的,这跟其它的交易所是不一样的。也就是说,在客户手续费率表中,投机的 ClientID对应一条记录,套保的 ClientID 对应另外一条记录。对这两个不同的记录,完全可以设置不同的手续费率。 4 问: 查某个合约的费率时候,会不会返回给我品种的费率? 答:不会的 ,飞马的费率查询是设置到合约的。 4 下单 类问题 4.1 报 单操作 1 问:本地报单编号 UserOrderLo
17、calID 好像可以是任意字符,不仅仅是数字?那么实际使用上是否有格式上的要求? 答: 飞马 API 中 UserOrderLocalID 是字符串格式的,如:“ 123”或者“ 000000000099”,填写时必须保证其 ASCII 的值比上一次大,登陆时首次填写时要注意比本地最大报单号大。它可以为非数字字符但需要保证字符的字典序。在 API 实际使用中不建议使用非数字字符,如需使用非数字字符标识一笔报单,可以使用用户自定义字段: UserCustom。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 9页共 23页 2
18、 问: 报单时 总是 报错 “ 重复的报单 “ ,这是什么原因 ? 答:飞马 会检查报单时 填写的 UserOrderLocalID,这个字段 是一个 char型的, 必须 满足 字符序增加并且大于 MaxOrderLocalID; 如果发现每次报单至 9 就 出现该错误,是因为 在字符比较中 10 是小于 9 的 ,因此报单时要注意将 UserOrderLocalID 该字段补齐 。 出现该情况后, 可从90*001 开始报单。 3 问 :报单时报错,“ 报单字段错误 ”,这是什么原因? 答 :报单的部分字段没有通过字段有效性检验,建议构造报单结构体 时 , 先进行初始化。 撤单 、报价也是
19、 如此。 4 问:报单时报错,错误信息 为“ 在途订单丢失 “,请问这是什么原因? 答:这是由于网络不稳定 , 导致 一部分订单在飞马报送到交易系统的过程中丢失了,飞马会为这部分订单返回一个 OnRsp。 ErrorID=148“该交易所无可用席位“,也是由于网络原因,导致席位掉线而 在发送请求时 报的错误。 5 问:报单时报错,错误信息为“ 当前无可用席位登陆到交易所 “,请问这是什么原因? 答:这 是 由于客户报单 速度 太快,超出了中金所 对席位的 在途订单的限制 ,导致席位被挂起, 因此 报错 。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海
20、金融期货公司技术有限公司 第 10页共 23页 6 问:下单 时 报错“ 找不到客户费率信息 ”,是什么问题? 答:说明该客户在该合约上没有设置费率,这是期货公司的会员管理端的操作人员设置时候的问题。 如果是期货合约,一般是由于 default 模板中不包含这个合约品种的费率;如果是期权合约,除以上原因外,还可能是由于未导入正确的期权保证金率文件和未上市合约文件导致。 7 问:飞马是否支持条件触发单?是否支持组合订单?是否支持 FAK/FOK 单?是否支持改单? 答:飞马暂不支持条件触发 ,暂不支持改单 ,暂不支持组合订单 。 限价单的FAK、 FOK 以及市价单的最优价和五档价都已经支持。
21、8 问:飞马对每秒钟报单数量的限制是多少? 答:飞马报单 API 的处理能力为 500 笔 /秒, 在途 订单 限制 是 200 笔 每秒。但是 中金所对 席位 的 限制 是每秒不能超过 50 笔 ,该限制 分两个方面:一 是交易系统 API 对在途订单的限制;二 是交易系统对每秒席位报单量的限制。 API 限制在途订单不能 超过 50,是指你报上去还没有收到回报的报单不能超过 50,达到这个限制交易系统就会将席位挂起,此时订单无法进入交易系统,例如客户连续下 50 笔报单,均未收到响应,这时再报一笔, 飞马系统会 给客户返回错误信息: 当前无可用席位登陆到交易所; 被挂起的席位在下一秒会自动
22、解除,在当前这一秒内在途订单低于 50 的时候也会自动解除; 交易系统对每秒席位报单量的限制 , 是 指能够进入交易系统的报单不能上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 11页共 23页 超过 50, 超过 的部分 将 会进入交易系统的流控机制,它必须等所有正常的报单被处理之后才会被处理到,因此响应相当慢,而且报的越多就越慢。 挂起和流控是两个概念,挂起是 指 报上去还没有收到回报的单子超过了50,席位 挂起,此时不能再报单 ; 但是流控是指 成功上报的交易所的单子超过了 50,你报第 51 笔的时候,前 50 笔报
23、单 的 回报已经回来了,这时席位在途 订单为 1,报单会进入交易系统,但是这个时候 该席位 已经接受的订单超过 了 50 笔 , 因此这笔单子将 进 入流控。 9 问: FAKFOK 等指令单 会不会优先? 答:不会, 所有报单均 按照价格优先时间优先原则 进行撮合。 10 问: 在一个 InvestorID 名下唯一定位某个报单可以用哪些 ID 作为主键? 答:可以用 OrderSysID。当 UserID 和 InvestorID 一对一的关系的时候 UserOrderLocalID 也可以。 11 问:在下单后 OnRspOrderInsert 返回结果是成功,但 OnRtnOrder
24、没有回调,这是什么情况? 答: 可能是由于 客户使用了 resume 模式来订阅私有流, 但是 又 没有 删除 客户端 本地 产生的 .con 文件 ,之前收到的 OnRtnOrder 不会再重复 收取 。 12 问: 下单测试,可以成交,但是没有具体成交回报,但是账户的头寸中可以查到实际上该保单已经成交;这是怎么回事啊 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 12页共 23页 答:如果 所有的 rtn 都受不到,可能是 没有订阅私有流 ,想要收到 OnRtn信息,需要在程序中订阅私有流。 SubscribePriv
25、ateTopic 订阅私有流 SubscribePublicTopic 订阅对话流 13 问: OnRspOrderInsert、 OnRtnOrder、 OnRtnTrade 的顺序能够保证吗?,我遇到这个情况,下一笔 2 手的合约,先给我 OnRtnOrder 告诉我,剩余手数 0;接着 OnRspOrderInsert,告诉我 Insert 成功;接着 OnRtnTrade2次回调,告诉每次成交了 1 笔。 答:一般情况下,是按照 OnRspOrderInsert、 OnRtnOrder、 OnRtnTrade的顺序返回的。这个顺序主要依赖交易所的返回指令的顺序,飞马是不做特别处理的。
26、14 问: UserOrderLocalID 的规则和 CTP 的 ORDE_REF 一致吗? 答:不一致, UserOrderLocalID 目前是 20 位, CTP 目前是 13 位。 15 问:是可否用交易所给投资者下发的套利编码,来进行套利交易,这个是规避中金所对投机 1200 手的限制,所以必须对套利交易用套利编码完成。飞马系统能正常处理此类不同交易编码的订单处理吗? 答: 可以,客户只需要在报单字段中填写正确的 InvestorID 并在 HedgeFlag中选取相应的类型 (目前支持投机、套保、套利、做市商四种),飞马会选取相应的交易编码报单 到交易所,交易所直接识别交易编码
27、。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 13页共 23页 16 问 : 下单后 ,OnRspOrderInsert 和 OnErrRtnOrderInsert 都有错误返回 . 按理说,柜台验证不合法就不会送到交易所,自然不应该有OnErrRtnOrderInsert, 答 :OnRsp 是对话流 ,快速响应但是非可靠的 ; OnRtn 是私有流 ,是完全可靠的 .目前飞马对订单的处理可以分为以下几种 , 1、正确的报单,飞马接受到请求后发给交易所, 交易所 收到后 返回 OnRsp(正确 )通知 给 飞马 ,飞
28、马 返回 OnRsp(正确 )给用户 ,交易所确认后返回OnRtnOrder;若有成交,再返回 OnRtnOrder, OnRtnTrade;若有撤单,再返回 OnRtnOrder。 2、错误的报单,飞马检查发现错误,直接打回,只返回 OnRsp; 3、错误的报单,飞马 检查通过后发给交易所, 交易所 收到后 返回 OnRsp(错误 )通知飞马 ,飞马 返回 OnRsp(错误 )给用户 ,交易所确认后返回 OnRtnErr,这个时候就没有 OnRtnOrder. 4、 TimeCondition 为 IOC 模式的正确的报单,飞马发给交易所后,如有成交,交易所将返回一次 OnRsp,一次 On
29、RtnOrder 和一次 OnRtnTrade;若没有成交,将只有一个 OnRsp 和一个 OnRtnOrder。 17 问: 在仿真环境中 , 使用 IF1406,IF1409 下市价单就会报 “不合法的数量 “, 但是使用 IF1403,IF1404 下市价单就会成功 ,还有使用 IF1406,IF1409 下限价单也会成功 . 有其它人遇到这种情况吗 ? 答: 远期 合约 不能 参与 市价 单,只有近月合约(当月和下月)才能参与市价。五档市价和最优价也是特殊的市价单,也必须遵守这个规则。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司
30、技术有限公司 第 14页共 23页 4.2 撤单 操作 1 问: UserOrderActionLocalID 有什么用途? 撤单结构体具体怎么填写? 答: UserOrderActionLocalID 是请求序列号,表示撤单这个操作请求的顺序 ,与 UserOrderLocalID 的规则一致,是字符序增加的,并且与本地报单号 UserOrderLocalID 是同一个序列增加的 。 撤单的时候支持 2 种撤单方式: 1 是以 OrderSysID 撤单, 需要填写撤单结构体 CUstpFtdcOrderActionField 中的 OrderSysID 字段; 2 是以本地报单号撤单,这时
31、候需要 在撤单结构体 CUstpFtdcOrderActionField 中填写 本地报单号 UserOrderLocalID 字段 。 举个例子: 你有 userOrderLocalId 为 01, 02, 03, 04, 05 的单, OrderSysID分别为 11, 12, 13, 14, 15, 你要撤掉 userOrderLocalId=03 的报单,在 撤单结构体中 userOrderLocalId 填 03, UserOrderActionLocalID 填 06。或者 OrderSysID 填 13, UserOrderActionLocalID 填 06。 2 问:期货公司
32、风控在撤单到 400 多的时候会警告客户的 ,IOC 算撤单吗 ? 答:中金所的交易系统 新规定中 FAKFOK 以及 其他 IOC 模式下的市价单指令的撤单将不计入撤单,该规定从 2014 年 1 月 26 日起执行 。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 15页共 23页 3 问:休市期间撤单, OnRspOrderAction 和 OnErrRtnOrderAction 中的pOrderAction 里面 UserOrderActionLocalID 和 UserOrderLocalID 都是空的 ,是什么
33、原因? 答:测试环境中没有中午休市的时段。返回信息中 UserOrderActionLocalID这个字段目前 是没有的,下次版本升级的时候会加上来。 4.3 报价询价 1 问: 在做市商比赛中,为满足做市商的要求时,如果 100%时间,我都提供某一合约的报价,还需要回应该合约的询价吗? 答:做市商资格由专门的做市商监控系统进行评定,以上操作能够满足做市商询价回应和回应频率的要求,但是 做市商本身要 注意风险。 2 问: 出错代码 204 是什么错误? OnRspQuoteInsert errorID:204,OnRspQuoteInsert error:报价单的用户本地报单编号次序错误 。
34、答:报价单中报单号相关字段未按照规则填写,应满足 报价 买单 卖单,即 UserQuoteLocalIDBidUserOrderLocalIDAskUserOrderLocalID. 3 问:发起询价后收不到询价应答,是怎么回事? 答:要收取询价应答,需要订阅询价流,订阅函数为 SubscribeQuoteTopic,在初始化之前订阅。 另外注意询价 回报 函数为 OnRtnForQuote,而非报价回报 OnRtnQuote。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 16页共 23页 4 问:报价时一直报错“重复的
35、报单”, 满足报价 买单 卖单, 最大本地报单号为空 MaxOrderLocalID=“” , 这 是怎么回事? 答: 这种情况一般是报价字段填写出错,填成了 QuoteLocalID,正确应该是填写 UserQuoteLocalID,用户本地报价单号。 5 行情类问 题 1 问:五档行情的用户应该怎么用?该用户可以用来交易吗? 答:五档行情 API 接口与原飞马行情类 API 完全一致。 五档行情用户, 可 利用飞马 API 开发的工具登陆行情 服务器和接受行情,但该用户不可用于飞马交易。 请参考群共享中的 深度行情 DataFeed 用户 接入指南 。 2 问:为什么行情接口都不提供合约列
36、表的请求功能? 答: 行情类接口仅具有订阅和收取功能,不具有查询功能。 飞马 交易里是支持合约查询 的 。 3 问: Topic=100 代表什么含义? 答: topic 是主题号,是订阅行情的类型,目前一档行情主题号都是 100,互联网五档行情主题号为 500,大仿真五档行情为 301。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 17页共 23页 4 问 :互联网环境支持行情吗 ?若 通过 SubMarketData 来订阅的,不是通过主题订阅没收到行情和这个有关吗? 答 :互联网环境是支持行情的 .但是我们是需要先
37、订阅主题,再订阅合约的 . 可以参考我们给出的示例程序先利用 SubscibeMarketDataTopic 订阅主题,再订阅具体行情 . 5 问:要做什么设置,才能使订阅行情之后,走 OnRtnDepthMarketData 这个回调? 答: OnRtnDepthMarketData 是行情服务器主动推送的 ,包含 一档行情 和五档行情,两档行情的主题号不同 .具体的行情数据可以在 pMarketData 里面拿到 .如果 行情不是很活跃, 可能没有数据推送。如果想要继续测这个接口的话,建议可以自成交制造行情 。 6 参数类问题 1 问: UserID 和 InvestorID 什么区别?
38、答: UserID 和 InvestorID 都是期货公司(会员)创建的账号。 UserID 用来登录飞马系统, InvestorID 用来跟期货公司创建的资金账号关联。这二者都是期货公司在给飞马的 上场数据中提供的。在上场的数据中有一个表 “用户 -投资者”关系表,这个表中要有一条记录把 UserID 和 InvestorID 关联起来。这二者才是合法有效的账号。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 18页共 23页 2 问:一个 UserID 下面有可能没有 Investor 吗? 答: 用户底下没有投资者的
39、话,这个用户可以登录飞马,但是不能交易的。交易的话必须要与投资者帐号关联,这样这个用户在交易系统里才会有资金账户,才能交易。 3 问: InvestorID 和 ClientID 是什么关系? 答:投资者编号 InvestorID 是期货公司提供给客户的,叫做资金账号(客户号)。客户代码 ClientID 是交易所开给客户的 交易所客户编码。在 V0.9 版本中, API 将没有客户代码,因为客户代码引起用户困惑,就去掉了。 4 问 : API 中 SetHeartBeatTimeOut 函数 是 什 么 用 处 ? 设置 值和OnHeartBeatWarning 函数有什么关系? 答 :用于
40、 设置心跳超时时间 , 当超过该设置时间 飞马 与 客户 之间 API 没有 任何 处理 时,飞马会主动发起 心跳包。 当 两次心跳的 时间间隔超过 该设置时,飞马 API 会发出心跳 超时 警告 HeartBeatWarning。 该时间不能 设置过大或者 过小 , 设置过大会导致 客户 掉线 时 API 不能 及时重连 , 设置过小会 使 心跳过于频繁 ,易 引起客户 频繁 断线 重连。 一般设置 为 1030s。 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 19页共 23页 7 管理端问题 (仿真) 7.1 文件导
41、入问题 1 问:需要导入什么文件,文件格式是什么样的? 答:需要导入资金文件和持仓文件,文件格式和保证金监控中心一致 ,该文件由期货公司自己的结算系统生成 。 如果交易期权,还需要导入期权保证金率文件和未上市期权合约合约文件,该文件可在中金所仿真会服系统上下载。 如果结算文件采用最新的 V4.2 保证金监控中心报送文件格式,还需要导入期权持仓文件,该文件也由结算系统生成。 2 问:数据导入时,显示导入失败, 资金表(持仓表)同步到 BASE 表失败,是什么原因? 答:应该资金表(持仓表)中的有些记录不符合规范或者有错误,导入数据必须与管理段的数据保持一致性。具体请查相关的 log 文件,对照
42、log 文件仔细检查表中的数据。 常见错误有: 资金表不能为空 cusfund 文件 为空; 持仓表 有合约未在合 约表中 holddata 文件 中某条记录合约名称有误 或者未在管理端设置 某条合约; “ 持仓表有交易编码和合约在保证金率表中不存在 ;持仓表有交易编码和合约在手续费表中不存在 ” holddata 文件 中有合约没有设置费率信息 上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 20页共 23页 “ 有资金帐号不再资金文件中 ” 场下设置的资金帐号 (投资者编号 )在cusfund 文件中没有相应的记录 “存
43、在交易编码不在保证金率表中 ;存在交易编码不在手续费表中 ” 保证金和手续费的 default 模板中未设置所有合约 的费率。 可通过场下客户端的导入界面定位到错误记录的位置 3 问:数据导入时,多个客户怎么导入? 答:导入时,将所有客户的信息汇总在一个文件中,即所有客户的资金信息汇总在资金文件,所有客户的持仓信息汇总在持仓文件中。 文件名命名规则为 经纪公司编号 +文件类型 +日期 .txt 7.2 参数设置问题 1 问:手续费和保证金的 default 模板和自定义模板有什么关系?优先级是什么样的? 答: default 模板是默认模板,所有的交易编码会和这个模板自动关联。因此这个模板是
44、必须设置 的,并且 所有合约的费率信息在这个模板中必须存在 ; 自定义模板是是用户自定义的模板,其优先级高于 default 模板。如果某个合约在自定义模板中设置了 与 default 模板不一样的费率,会按照自定义模板收取。若设置了自定义模板, 还 需要设置 与 资金账号 的 对应关系。 2 问:我新设置了 保证金管理、手续费管理。但是我在客户查询 -客户手续费上海金融期货信息技术有限公司 技术文档 FemasAPI 常见 问题手册 版权所有 上海金融期货公司技术有限公司 第 21页共 23页 查询 -客户保证金查询,这里怎么还是老的 ? 我尝试重启过 ses,以及管理端软件。 答: 保证金和手续费的 查询和设置对应的不是同一个表 ,需要进行导入后才能同步 。 3 问:在交易中可以修改手续费或者保证金吗?修改能够实时生效的吗? 答:交易中修改会员管理端中的基础数据对场上交易不会产生影响,修改基础数据后,在进行数据导入后,第二天上场后才能生效。用户信息,费率信息,合约信息等均是如此。 但是出入金和修改用户密码这两个功能是能够实时生效的。