CTP行情接收

Discussion in 'CTP' started by FirstYYY, Nov 23, 2011.

  1. 我按照《综合交易平台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. 2.sessionID是系统自己设定的
    3.TradeApi的GetTradingDay()才返回非空的日期
    4.重载此函数获取深度行情指针
    5.你订阅的合约有误或者不在交易时间
    6.注册多个前置机的地址。或者在Register前置机地址之后开while(connected),里面不断的Sleep一个超时时间,然后重新注册新的前置机地址。同时在OnFrontConnect里面改变connected的状态即可。