下载了CTP的API,经过几天的分析试验,已经建立了几组最简单的请求/响应。 同时,由于对CTP的理解还不够深入,也遇到了很多问题,比如接口参数与业务场景的对应关系等等。 对此,上期技术是否能提供更多的业务说明资料呢? 此外,不清楚是否是因为使用模拟帐户的原因,在测试过程中,一些响应信息与预期的并不吻合,在这种时候比较难判断是发送的请求信息错误还是CTP的bug。 关于这一点,上期技术能提供更多的技术支持么?比如,类似oracle metalink的一个开放式错误报告平台? 另,再次感谢jovebird最近的帮助!
关于“响应信息与预期的并不吻合”,常见的原因是: 客户端在准备请求参数前没有清0,就开始设置字段,那些没有设置的字段就可能随机数。 服务器会处理所有的请求参数中的字段,这样就导致了预期的记录被过滤掉,或者请求参书不合法导致命令失败,如登入失败,撤单失败等。
TraderApi是类,其成员函数无法直接从c#中PInvoke,所以需要新建WIN32 DLL,将Api中的函数全部extern出来,然后再从C#中调用这个新建的DLL。 之前和贵公司的阿华兄聊过,知道你们近期没有公开C#接口的计划,所以只好自己动手搞定了
多谢汪兄指点,对C本身就不是很熟,估计会问题多多,想来以后还要多亲近 先来两个小问题 1、合约所属的交易所不正确 以下是合约查询结果的一部分数据 Code: FIELD [CFTDOrderField] START [BrokerID][0][2030] [InstrumentID][0][a0909] [ExchangeID][0][SHFE] FIELD [CFTDOrderField] END 是模拟帐户的原因么? 2、响应中bIsLast始终为True 以下为报单查询的响应数据 Code: FTDC PACKAGE HEADER Version[0X06],Chain[0X43],SequenceSeries[4],TransactionId[0X00008001],SequenceNumber[2] FieldCount[2],FTDCContentLength[1060],RequestId[4] FTDC PACKAGE CONTENT START FIELD [CFTDOrderField] START [InstrumentID][0][a1001] [InsertDate][0][20090619] [InsertTime][0][13:13:26] FIELD [CFTDOrderField] END FIELD [CFTDOrderField] START [InstrumentID][0][a0909] [InsertDate][0][20090619] [InsertTime][0][14:38:59] FIELD [CFTDOrderField] END FTDC PACKAGE CONTENT END 以下为终端得到的结果 Code: ======>> QueryOrder OK!! InstrumentID:a1001 OrderStatus:AllTraded bIsLast:True ======>> QueryOrder OK!! InstrumentID:a0909 OrderStatus:AllTraded bIsLast:True
是不是象下面地址里介绍的那样搞“托管”? 你也使用托管C++吗? http://www.hylt.net/vb/showthread.php?t=19951 使用托管C++粘合C#和C++代码(一) http://www.hylt.net/vb/showthread.php?t=19954
综合交易平台模拟交易系统只配置了一个上期所的交易所系统,所以只有上期所的合约,其他交易所的合约也只是在上期所模拟了一个同样的品种。 bislast标示是否是最后一笔记录,在查询报单时如果有多笔,前面收到的记录应该bislast为0,最后一笔的bislast为1。
关于mduserapi的登陆/登出问题(traderapi表现正常):似乎无论填写任何brokerid,userid,password都可以login,且返回的CThostFtdcRspUserLoginField只设置frontid和sessionid,其余项目均填空。另外,发logout请求(使用traderapi的brokerid,userid,password给CThostFtdcUserLogoutField赋值,或者干脆全部填空)时,OnRspUserLogout不放生回调动作。这些都是预期的反应么?