66#include " ../include/ApiStruct.h"
77
88#include " ../include/toolkit.h"
9+ #include " ../include/ApiProcess.h"
910#include " ../QuantBox_CTP_Trade/TypeConvert.h"
1011
1112#include " ../QuantBox_Queue/MsgQueue.h"
@@ -492,7 +493,7 @@ void CMdUserApi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMark
492493 // // 测试平台穿越速度,用完后需要注释掉
493494 // WriteLog("CTP:OnRtnDepthMarketData:%s %f %s.%03d", pDepthMarketData->InstrumentID, pDepthMarketData->LastPrice, pDepthMarketData->UpdateTime, pDepthMarketData->UpdateMillisec);
494495
495- DepthMarketDataField * pField = (DepthMarketDataField *)m_msgQueue->new_block (sizeof (DepthMarketDataField) );
496+ DepthMarketDataNField * pField = (DepthMarketDataNField *)m_msgQueue->new_block (sizeof (DepthMarketDataNField)+ sizeof (DepthField)* 10 );
496497
497498 strcpy (pField->InstrumentID , pDepthMarketData->InstrumentID );
498499 pField->Exchange = TThostFtdcExchangeIDType_2_ExchangeType (pDepthMarketData->ExchangeID );
@@ -548,60 +549,52 @@ void CMdUserApi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMark
548549 pField->PreSettlementPrice = pDepthMarketData->PreSettlementPrice ;
549550 pField->PreOpenInterest = pDepthMarketData->PreOpenInterest ;
550551
552+ InitBidAsk (pField);
553+
551554 do
552555 {
553556 if (pDepthMarketData->BidVolume1 == 0 )
554557 break ;
555- pField->BidPrice1 = pDepthMarketData->BidPrice1 ;
556- pField->BidVolume1 = pDepthMarketData->BidVolume1 ;
558+ AddBid (pField, pDepthMarketData->BidPrice1 , pDepthMarketData->BidVolume1 , 0 );
557559
558560 if (pDepthMarketData->BidVolume2 == 0 )
559561 break ;
560- pField->BidPrice2 = pDepthMarketData->BidPrice2 ;
561- pField->BidVolume2 = pDepthMarketData->BidVolume2 ;
562+ AddBid (pField, pDepthMarketData->BidPrice2 , pDepthMarketData->BidVolume2 , 0 );
562563
563564 if (pDepthMarketData->BidVolume3 == 0 )
564565 break ;
565- pField->BidPrice3 = pDepthMarketData->BidPrice3 ;
566- pField->BidVolume3 = pDepthMarketData->BidVolume3 ;
566+ AddBid (pField, pDepthMarketData->BidPrice3 , pDepthMarketData->BidVolume3 , 0 );
567567
568568 if (pDepthMarketData->BidVolume4 == 0 )
569569 break ;
570- pField->BidPrice4 = pDepthMarketData->BidPrice4 ;
571- pField->BidVolume4 = pDepthMarketData->BidVolume4 ;
570+ AddBid (pField, pDepthMarketData->BidPrice4 , pDepthMarketData->BidVolume4 , 0 );
572571
573572 if (pDepthMarketData->BidVolume5 == 0 )
574573 break ;
575- pField->BidPrice5 = pDepthMarketData->BidPrice5 ;
576- pField->BidVolume5 = pDepthMarketData->BidVolume5 ;
574+ AddBid (pField, pDepthMarketData->BidPrice5 , pDepthMarketData->BidVolume5 , 0 );
577575 } while (false );
578576
579577 do
580578 {
581579 if (pDepthMarketData->AskVolume1 == 0 )
582580 break ;
583- pField->AskPrice1 = pDepthMarketData->AskPrice1 ;
584- pField->AskVolume1 = pDepthMarketData->AskVolume1 ;
581+ AddAsk (pField, pDepthMarketData->AskPrice1 , pDepthMarketData->AskVolume1 , 0 );
585582
586583 if (pDepthMarketData->AskVolume2 == 0 )
587584 break ;
588- pField->AskPrice2 = pDepthMarketData->AskPrice2 ;
589- pField->AskVolume2 = pDepthMarketData->AskVolume2 ;
585+ AddAsk (pField, pDepthMarketData->AskPrice2 , pDepthMarketData->AskVolume2 , 0 );
590586
591587 if (pDepthMarketData->AskVolume3 == 0 )
592588 break ;
593- pField->AskPrice3 = pDepthMarketData->AskPrice3 ;
594- pField->AskVolume3 = pDepthMarketData->AskVolume3 ;
589+ AddAsk (pField, pDepthMarketData->AskPrice3 , pDepthMarketData->AskVolume3 , 0 );
595590
596591 if (pDepthMarketData->AskVolume4 == 0 )
597592 break ;
598- pField->AskPrice4 = pDepthMarketData->AskPrice4 ;
599- pField->AskVolume4 = pDepthMarketData->AskVolume4 ;
593+ AddAsk (pField, pDepthMarketData->AskPrice4 , pDepthMarketData->AskVolume4 , 0 );
600594
601595 if (pDepthMarketData->AskVolume5 == 0 )
602596 break ;
603- pField->AskPrice5 = pDepthMarketData->AskPrice5 ;
604- pField->AskVolume5 = pDepthMarketData->AskVolume5 ;
597+ AddAsk (pField, pDepthMarketData->AskPrice5 , pDepthMarketData->AskVolume5 , 0 );
605598 } while (false );
606599
607600 // 这两个队列先头循序不要搞混,有删除功能的语句要放在后面
@@ -613,7 +606,7 @@ void CMdUserApi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMark
613606 }
614607#endif
615608
616- m_msgQueue->Input_NoCopy (ResponeType::OnRtnDepthMarketData, m_msgQueue, m_pClass, 0 , 0 , pField, sizeof (DepthMarketDataField) , nullptr , 0 , nullptr , 0 );
609+ m_msgQueue->Input_NoCopy (ResponeType::OnRtnDepthMarketData, m_msgQueue, m_pClass, DepthLevelType::FULL , 0 , pField, pField-> Size , nullptr , 0 , nullptr , 0 );
617610 // 要关注一下其内的
618611 // }
619612}
0 commit comments