static void on_deep_market_data(struct CUstpFtdcDepthMarketDataField *deepmd) { Quote *quote; if (deepmd == NULL) { xcb_log(XCB_LOG_WARNING, "deepmd is NULL!"); return; } if (NEW0(quote)) { /* FIXME */ quote->thyquote.m_nLen = sizeof(tHYQuote); RMCHR(deepmd->UpdateTime, ':'); quote->thyquote.m_nTime = atoi(deepmd->UpdateTime) * 1000 + deepmd->UpdateMillisec; strcpy(quote->thyquote.m_cHYDM, deepmd->InstrumentID); quote->thyquote.m_dZJSJ = deepmd->PreSettlementPrice; quote->thyquote.m_dJJSJ = deepmd->SettlementPrice; quote->thyquote.m_dCJJJ = 0; quote->thyquote.m_dZSP = deepmd->PreClosePrice; quote->thyquote.m_dJSP = deepmd->ClosePrice; quote->thyquote.m_dJKP = deepmd->OpenPrice; quote->thyquote.m_nZCCL = deepmd->PreOpenInterest; quote->thyquote.m_nCCL = deepmd->OpenInterest; quote->thyquote.m_dZXJ = deepmd->LastPrice; quote->thyquote.m_nCJSL = deepmd->Volume; quote->thyquote.m_dCJJE = deepmd->Turnover; quote->thyquote.m_dZGBJ = deepmd->UpperLimitPrice; quote->thyquote.m_dZDBJ = deepmd->LowerLimitPrice; quote->thyquote.m_dZGJ = deepmd->HighestPrice; quote->thyquote.m_dZDJ = deepmd->LowestPrice; quote->thyquote.m_dZXSD = deepmd->PreDelta; quote->thyquote.m_dJXSD = deepmd->CurrDelta; quote->thyquote.m_dMRJG1 = deepmd->BidPrice1; quote->thyquote.m_dMCJG1 = deepmd->AskPrice1; quote->thyquote.m_nMRSL1 = deepmd->BidVolume1; quote->thyquote.m_nMCSL1 = deepmd->AskVolume1; quote->thyquote.m_dMRJG2 = deepmd->BidPrice2; quote->thyquote.m_dMCJG2 = deepmd->AskPrice2; quote->thyquote.m_nMRSL2 = deepmd->BidVolume2; quote->thyquote.m_nMCSL2 = deepmd->AskVolume2; quote->thyquote.m_dMRJG3 = deepmd->BidPrice3; quote->thyquote.m_dMCJG3 = deepmd->AskPrice3; quote->thyquote.m_nMRSL3 = deepmd->BidVolume3; quote->thyquote.m_nMCSL3 = deepmd->AskVolume3; quote->thyquote.m_dMRJG4 = deepmd->BidPrice4; quote->thyquote.m_dMCJG4 = deepmd->AskPrice4; quote->thyquote.m_nMRSL4 = deepmd->BidVolume4; quote->thyquote.m_nMCSL4 = deepmd->AskVolume4; quote->thyquote.m_dMRJG5 = deepmd->BidPrice5; quote->thyquote.m_dMCJG5 = deepmd->AskPrice5; quote->thyquote.m_nMRSL5 = deepmd->BidVolume5; quote->thyquote.m_nMCSL5 = deepmd->AskVolume5; process_quote(quote); } else xcb_log(XCB_LOG_WARNING, "Error allocating memory for quote"); }
static void on_deep_market_data(struct DFITCDepthMarketDataField *deepmd) { Quote *quote; if (deepmd == NULL) return; if (NEW0(quote)) { /* FIXME */ quote->thyquote.m_nLen = sizeof (tHYQuote); RMCHR(deepmd->UpdateTime, ':'); quote->thyquote.m_nTime = atoi(deepmd->UpdateTime) * 1000 + deepmd->UpdateMillisec; strcpy(quote->thyquote.m_cJYS, deepmd->exchangeID); strcpy(quote->thyquote.m_cHYDM, deepmd->instrumentID); quote->thyquote.m_dZJSJ = deepmd->preSettlementPrice; quote->thyquote.m_dJJSJ = deepmd->settlementPrice; quote->thyquote.m_dCJJJ = deepmd->AveragePrice; quote->thyquote.m_dZSP = deepmd->preClosePrice; quote->thyquote.m_dJSP = deepmd->closePrice; quote->thyquote.m_dJKP = deepmd->openPrice; quote->thyquote.m_nZCCL = deepmd->preOpenInterest; quote->thyquote.m_nCCL = deepmd->openInterest; quote->thyquote.m_dZXJ = deepmd->lastPrice; quote->thyquote.m_nCJSL = deepmd->Volume; quote->thyquote.m_dCJJE = deepmd->turnover; quote->thyquote.m_dZGBJ = deepmd->upperLimitPrice; quote->thyquote.m_dZDBJ = deepmd->lowerLimitPrice; quote->thyquote.m_dZGJ = deepmd->highestPrice; quote->thyquote.m_dZDJ = deepmd->lowestPrice; quote->thyquote.m_dZXSD = deepmd->preDelta; quote->thyquote.m_dJXSD = deepmd->currDelta; quote->thyquote.m_dMRJG1 = deepmd->BidPrice1; quote->thyquote.m_dMCJG1 = deepmd->AskPrice1; quote->thyquote.m_nMRSL1 = deepmd->BidVolume1; quote->thyquote.m_nMCSL1 = deepmd->AskVolume1; process_quote(quote); } else xcb_log(XCB_LOG_WARNING, "Error allocating memory for quote"); }