综合交易平台技术Q&A

Discussion in 'CTP' started by LumenXH, Jun 19, 2009.

  1. 恩 对于单trade或者程序化交易来说是不大需要的,但是对于想编写行情客户端的兄弟就不行了
     
  2. 很遗憾CTP没有行情转发资格,所以开发接入CTP的行情客户端不但没有意义而且会有麻烦。想做行情客户端的兄弟们可以与期货公司或行情转发商联系,具体名单可以到交易所网站下载。
     
  3. 1,关于 登入/登出的输入参数
    目前情况是这样: 登入/登出行情api,brokerid+userid+password.无论写不写,写对写错,都没有关系,都可以正常登入/登出。
    不过还是希望输入正确的参数。以后服务器增加了参数校验,你就不必再修改代码了。

    2,关于logout的响应消息
    如果logout成功,就和服务终止了会话,所以就收不到相关的OnRsp了。
    如果logout失败,还是会从OnRsp收到错误消息的。
     
  4. 但是traderapi的logout是有onrsp的,我是根据这个logout rsp来做release的。另外,对mduserapi的logout请求发送后,好象会话没有终止,能看到heartbeat。
     
  5. 你的测试非常全面和正确。向你学习。

    关于OnRspLogout:
    1, mdApi上, 目前完全没有作用。不会有Rsp,也不妨碍后续的订阅行情。
    2, tradeApi上,logout后回收到响应。然后收到OnFrontDisconneted, OnFrontConnect。

    关于收到OnRspLogout后Release:
    1, 这样做的意义是类似socket“体面的退出”,确保完整的收到多记录回报。不知道你是否这么考虑的?
    2,在traderApi上,这么做是可以的。如果不需要完整的保存记录,直接Release就可以。
    3,在MdApi上,行情没有多记录回报,所以实际意义不太大。目前也没有这个条件。直接Release就可以了。
     
  6. 关于OnErrRtnOrderInsert

    Q: OnErrRtnOrderInser中没有frontid+sessionid,怎么匹配已有的委托?
    A:OnRtnOrder的数据覆盖了OnErrRtnOrderInsert的数据,所以可以不必处理OnErrRtnOrderInsert。
    因为交易所判断报单错误时,合约状态一定是从已报变为撤单,客户端就会受到OnRtnOrder的更新,委托状态是撤单,并且errorid 不等于0
     
  7. 当日平仓之后,再查询持仓明细,仍然会返回记录,只不过这时候Volumn=0

    请问这样实现的原因是什么呢?为什么不干脆不返回记录呢?
     
  8. 这样看来,CTP要发挥性能上的优势,还需要一个配套的行情服务器。

    如果使用CTP作为交易接口,同时使用普通的行情服务器,那么在递单的时机上并没有多少优势,这里丧失的可能优势是秒级的(不同公司不同软件的行情差别在1-2秒很正常)。
    CTP的优势可能是递单后能以更快的速度到达排队地点,这里的优势是多少?毫秒级?能达到1秒吗?

    一般情况,一个在家交易的交易员,使用CTP下单,连接期货公司的行情服务器,速度上没有优势,如果是异地开户,行情还会再慢一点。CTP接口的优势没能发挥出来。
    所以,要真正发挥CTP的优势,最好在上期所的楼内交易,用楼内的行情,在楼内递单,还差不多。
     
  9. CTP的期货行情转发资格一定要搞下来!相信广大用户应能接受这个成本。
     


  10. 赞同。速度是超短线的生命线。最好把系统程序托管到CTP的服务器上运行。用户面临两个问题:1.费用问题 2.保密性问题
     
  11. CTP的行情是使用期货公司的远程席位(即CTP为每家期货公司配置的报盘机)登录交易所系统取得,做为交易所会员的期货公司是有权将行情数据发布给自己的客户使用的。所以CTP取得期货公司的席位使用授权后也就可以合法的通过交易终端将行情数据发布给登录CTP的期货公司投资者使用。

    但是,快期、博易大师等普通终端以及使用API通过互联网登录CTP时,CTP为保障正常交易的互联网带宽而采用了流量控制策略,这也就是快期为什么将行情订阅合约数限制在10个以内的原因。

    如果有投资者需要订阅所有合约的行情,您可以与接入CTP的期货公司联系,在取得期货公司授权后,您可以使用期货公司接入CTP的专线登录CTP进行期货交易,或是直接将您的交易终端托管在上期技术的机房从而通过局域网方式登录CTP进行期货交易,这样您到CTP的链接将不再受制于CTP的互联网流量控制。使用上述方式登录CTP时,您必须保证不转发从CTP取得的行情数据等信息,更不能用于任何的商业用途。否则,期货公司将保留对您的追诉权。
     
  12. 使用期货公司接入CTP的专线或是把系统程序托管到CTP的服务器上运行都可以满足目前超短线操作方式对速度的要求。

    1.费用问题,按目前期货公司的手续费收费模式,如果您能达到一定的交易量规模,应该问题不大。

    2.保密性问题,基于上期技术在中国期货市场的背景和声誉,使用接入CTP的方式进行期货交易的期货公司和投资者大可不必对上期技术的保密性产生怀疑。上期技术在中国期货市场,目前并没有商业利益的诉求。上期技术在运行CTP时只会从软硬件系统层面对CTP进行监控,并不涉及任何的业务数据。上期技术对CTP的所有运营维护人员及所有CTP信息涉及人员实施了期货市场禁入措施,而且对于期货公司的保密诉求,上期技术可以进一步在“形式上”明确相关的保密协议。
     
  13. 每次开仓成交后,就会产生一条持仓明细记录。
    如果1笔开仓委托分笔成交,就会产生多条持仓明细记录。
    如果平仓,持仓明细的纪录还是保持,数量归0。
    结算时,才把数量为0的持仓明细的纪录删除
    这样用户可以看到平仓相关的操作结果。

    你的问题是不希望看到数量为0的持仓明细,过滤掉就可以了。
     
  14. 请问jovebird,对于系统程序托管的方式,上期技术可以开放哪些用于远程系统管理的方式权限呢?
    比如远程登录、开放指定stock端口、提供web服务器等等
    当然,具体的连接方法和管理内容是托管系统内嵌的,主要想了解目前可能的通道和方式
     
  15. 对于系统程序托管的方式,上期技术目前提供的是服务器托管方式,即服务器由托管需求方提供并自主管理,需要开通远程桌面管理工具的端口可以向上期技术申请。
     

  16. 明白了。
    再增加几个模拟账户的问题
    1、目前模拟帐号的成交方式是按照现价成交的,而没有进入盘口队列是么?
    2、模拟行情的盘口单量目前都是假值(固定10000),是否可以使用真实行情的数据呢?
    3、模拟行情中,大连商品只有一档盘口,是否可以开放为五档盘口呢?

    以上几点,会导致交易系统的模拟运行与实际运行结果不一致,而在日内高频交易的时候,这一点点差异就可能导致系统的失败。
    虽然一些差异无法完全避免(比如盘口队列),不过上期技术是否有可能提供更接近真实情况的模拟环境呢?
     
  17. 明白了,非常灵活的方式,谢谢!:)
     
  18. 1、目前模拟帐号的成交方式是按照现价成交的,而没有进入盘口队列是么?
    A: 在模拟环境中, 撮合成交也是有标准的交易所系统完成的。所以委托都会进队列,按照价格优先、时间优先的原则来交易。不同是模拟环境中,为了保持交易频繁,会有系统发出的OTC报单。

    2、模拟行情的盘口单量目前都是假值(固定10000),是否可以使用真实行情的数据呢?
    A: 除了产品m的买/卖量是参考真实环境的。其余产品合约都是按照合约的最大报单量来设置。

    3、模拟行情中,大连商品只有一档盘口,是否可以开放为五档盘口呢?
    A:即使在真实环境中,各个交易所好像都没有开放深度行情。至少上期所一定只有1档行情。所以模拟环境中也是这样。

    模拟行情还是不能用来取代真实行情,来做完全的程序化交易的测试。
    目前模拟环境上的设置也是不少程序化交易开发者提出的建议。如果你有什么好的建议,欢迎提供。
     
  19. CTP确实为中国期货界提供了唯一的算法交易平台,其远景发展肯定不错。再问个问题,服务器托管后,对上海期货交易所的速度是局域网的速度,不错,那对大交所和郑交所也是局域网速度吗?也就是说你们在大交所和郑交所附近有计算机专线连入交易所吗?
     
  20. 目前CTP使用三所联网主干接入大商所和郑商所的交易系统,其速度和安全性与专线相当。随着CTP的不断发展及客户对速度、性能要求的不断提升,CTP不排除将来在大商所及郑商所附近建立异地系统提供更高速接入两家交易所系统的可能。