我按照《综合交易平台TraderAPI接口说明》写了一个例子。运行例子时输出见下面。但有以下问题盼高手赐教! 1。登录和订阅行情都显示成功。但是似乎没有收到行情。 2。SessionID 返回为负数 SessionID=-1212809215 3。获得的当前交易日期为空。 4。接受行情是否应在OnRtnDepthMarketData 中? 5。我在每一个重载的Spi函数中设置断点,订阅行情后似乎没有一个回调函数被调用。对照日志也可以证实这一点。 6。另外如果初始联结失败,似乎没有办法处理因为调用函数没有返回。这种情况怎么处理? “Connect to asp-sim2-md1.financial-trading-platform.com:26213 Error“ ================================================ Connect to asp-sim2-md1.financial-trading-platform.com:26213 Session -1212809215 Connected --->>> CMdSpi::OnFrontConnected CFtdcUserApiImplBase::RequestDirectly SessionID=-1212809215 CFtdcUserApiImplBase::RequestDirectly Send --->>> 发送用户登录请求: 成功 Decompress, compress len=[40], orig len=[256] CFtdcUserApiImplBase::HandlePackage FTDC PACKAGE HEADER Version[0X07],Chain[0X4C],SequenceSeries[0],TransactionId[0X00003001],SequenceNumber[0] FieldCount[2],FTDCContentLength[236],RequestId[0] FTDC PACKAGE CONTENT START FIELD [CFTDRspInfoField] START [ErrorID][2][0] [ErrorMsg][0][No Error] FIELD [CFTDRspInfoField] END FIELD [CFTDRspUserLoginField] START [TradingDay][0][] [LoginTime][0][] [BrokerID][0][] [UserID][0][] [SystemName][0][] [FrontID][2][0] [SessionID][2][0] [MaxOrderRef][0][] [SHFETime][0][] [DCETime][0][] [CZCETime][0][] [FFEXTime][0][] FIELD [CFTDRspUserLoginField] END FTDC PACKAGE CONTENT END --->>> CMdSpi::OnRspUserLogin --->>> 获取当前交易日 = CFtdcUserApiImplBase::RequestDirectly SessionID=-1212809215 CFtdcUserApiImplBase::RequestDirectly Send --->>> 发送行情订阅请求: 成功 Decompress, compress len=[49], orig len=[179] CFtdcUserApiImplBase::HandlePackage FTDC PACKAGE HEADER Version[0X06],Chain[0X4C],SequenceSeries[0],TransactionId[0X00004401],SequenceNumber[0] FieldCount[3],FTDCContentLength[159],RequestId[0] FTDC PACKAGE CONTENT START FIELD [CFTDSpecificInstrumentField] START [InstrumentID][0][cu1007] FIELD [CFTDSpecificInstrumentField] END FIELD [CFTDSpecificInstrumentField] START [InstrumentID][0][cu1007] FIELD [CFTDSpecificInstrumentField] END FTDC PACKAGE CONTENT END Decompress, compress len=[6], orig len=[20] CFtdcUserApiImplBase::HandlePackage FTDC PACKAGE HEADER Version[0X07],Chain[0X4C],SequenceSeries[0],TransactionId[0X0000F101],SequenceNumber[0] FieldCount[0],FTDCContentLength[0],RequestId[0] FTDC PACKAGE CONTENT START FTDC PACKAGE CONTENT END Send Heartbeat
2.sessionID是系统自己设定的 3.TradeApi的GetTradingDay()才返回非空的日期 4.重载此函数获取深度行情指针 5.你订阅的合约有误或者不在交易时间 6.注册多个前置机的地址。或者在Register前置机地址之后开while(connected),里面不断的Sleep一个超时时间,然后重新注册新的前置机地址。同时在OnFrontConnect里面改变connected的状态即可。