综合交易平台技术Q&A

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

  1. 不是说可以订阅10只以下的行情数据么?
    应该是交易所实时的行情数据转发的吧?
     
  2. 现状:ReqInstrument目前是按照instrumentid查单一合约规格
    建议:允许使用过滤器条件,查多个符合条件(如product,合约月份,交易所等过滤条件)的instrument,如果过滤期为空,则返回所有上市合约。
     
  3. 你的建议很好, 而且api一直就有这个功能。
    ///请求查询合约
    virtual int ReqQryInstrument(CThostFtdcQryInstrumentField *pQryInstrument, int nRequestID) = 0;
    ///查询合约
    struct CThostFtdcQryInstrumentField
    {
    ///合约代码
    TThostFtdcInstrumentIDType InstrumentID;
    ///交易所代码
    TThostFtdcExchangeIDType ExchangeID;
    ///合约在交易所的代码
    TThostFtdcExchangeInstIDType ExchangeInstID;
    ///产品代码
    TThostFtdcInstrumentIDType ProductID;
    };
     
  4. 函数返回值不能反映网络状态

    在调用发送请求的函数前拔掉网线,然后调用函数,函数仍然返回零,
     
  5. 拔掉网线后调用方法, api不能马上诊断出网络连接已经不可用了,可能还是可以发送消息。
    而是过一段时间后才会通知OnFrontDisconnected()。

    所以不要以方法返回值为0就判断服务器已经收到了请求,而是要以收到对应的OnRsp为准。
    当然请求方法返回非0,一定是发送请求不成功了。
     
  6. 不对啊

    api与服务器为tcp连接,向服务器发送数据成功与否,发送后,api应该马上可以判断出来发送成功与否,所以api应该也可以马上向应用程序反映出来
     
  7. 目前是这么一个状况, 所以希望在开发过程中注意这些问题.
    我也会把你的意见反映给开发人员。

    另外,希望把api相关的技术问题写入“综合交易平台技术Q&A”这个专用贴中。
     
  8. 模拟系统会发出报单,这是否可以理解为,模拟行情并不是该品种当前的真实行情价?
    因为我发现MdApi返回的价格信息与真实行情有明显的不同。

    可以问下其他合约不使用真实环境的原因么?

    大连是有5档盘口的,从大智慧中可以看到
     
  9. 1、 目前模拟帐号的成交方式是按照现价成交的,而没有进入盘口队列是么?
    A: 在模拟环境中, 撮合成交也是有标准的交易所系统完成的。所以委托都会进队列,按照价格优先、时间优先的原则来交易。不同是模拟环境中,为了保持交易频繁,会有系统发出的OTC报单。
    Q: 模拟系统会发出报单,这是否可以理解为,模拟行情并不是该品种当前的真实行情价?
    因为我发现MdApi返回的价格信息与真实行情有明显的不同。
    A: 模拟环境使用行情均衡器同步真实环境的行情。首先,作为真实环境的客户端取得真实行情数据,然后通过SHFE的OTC报单类型以成对成交方式在模拟交易所系统产生最新价,再以行情插入报价指令生成买一、卖一价即盘口挂单量。该种方式仅是近似真实行情,仅供测试API使用,万不可用于依赖真实行情的策略测试。

    2、 模拟行情的盘口单量目前都是假值(固定10000),是否可以使用真实行情的数据呢?
    A: 除了产品m的买/卖量是参考真实环境的。其余产品合约都是按照合约的最大报单量来设置。
    Q: 可以问下其他合约不使用真实环境的原因么?
    A: 我们有家客户正在该平台进行模拟交易大赛,为防止投资者者对该平台的行情操控,我们使用10000的报单量以防止与真实行情价格的大幅偏离

    3、 模拟行情中,大连商品只有一档盘口,是否可以开放为五档盘口呢?
    A:即使在真实环境中,各个交易所好像都没有开放深度行情。至少上期所一定只有1档行情。所以模拟环境中也是这样。
    Q:大连是有5档盘口的,从大智慧中可以看到
    A: 交易所通过行情商发布即时及深度行情,CTP通过期货公司的远程席位取得即时行情用于投资者期货交易,不提供超过一档的更深度行情。有行情数据方面的需求请联系pobo这样的行情转发商。
     
  10. 请问是哪家客户正在该平台进行模拟交易大赛?网址?谢谢!
     
  11. 德邦期货,http://www.tebonqh.com/
     
    Last edited by a moderator: Jul 6, 2009
  12. 在他们公司网站上没找到模拟大赛的信息,连个论坛也没有,好象挺落后的吧。
     
  13. 谢谢汪兄如此详细的回答!
     
  14. 我下载了行情开发实例. 在CMD DOS 窗口下运行. 没发现在示例代码中有把行情打印到屏幕上的语句.但实际上程序不停地把行情数据打印到屏幕上. 显然是thostmduserapi.dll打印出来的. 这只是个接口库, 怎么能在这里打印信息呢? 这合适吗
     
  15. thostmduserapi.dll输出调试数据, 在调试时会很方便.
    如果不需要的话, 可以重定向到空设备.
    在开发图形界面时, 不要做任何处理, 这些数据都不会影响程序.

    所以,这个问题不是关键问题.
     
  16. 请教LumenXH:
    你说的新建WIN32 DLL是指用c++,使用C++/Managed代码来包装已经提供的DLL来新生成可以被c#调用的托管DLL?还是用c#来直接新建这个可以被c#调用的DLL?

    如果方便的话能不能针对Api中的一个函数举个简单的例子供借鉴参考。

    谢谢
     

  17. 支持地顶一下,也关注答案
     
  18. wj2000,我想是你前面说的这种情况,直接C#建DLL是不行的。这个东西我做了一半(基础类验证调通),交给了海洋另一位朋友接着干了。如果你是想自己做这个接口,我就先把我有的代码给你。如果你不打算自己做,就不妨等那一位做完了后再一并给你。
     
  19. tom_sh:
    那还是等做完了再看看吧,我现在还没定下来该学c#还是重新拿起c++,只有点过去unix下的编程基础,看c/c++还能看懂,打算抽时间学学c#。过去编程也主要是采用模仿借鉴的方式。
    你的基础类是c#做的吗?
     
  20. WJ2000兄,抱歉,才注意到你之前的帖子,具体接口实现方法,我们另开个帖子说吧