@@ -47,7 +47,7 @@ LRESULT CMdUserApi::_OnMsg(WPARAM wParam, LPARAM lParam)
4747 RCV_REPORT_STRUCTEx* pLast = &pHeader->m_pReport [pHeader->m_nPacketNum - 1 ];
4848
4949 // 前后都不合要求才跳过
50- // if (FilterExchange (pFirst->m_wMarket) || FilterExchange (pLast->m_wMarket))
50+ if (FilterExchangeInstrument (pFirst->m_wMarket , 0 ) || FilterExchangeInstrument (pLast->m_wMarket , 0 ))
5151 {
5252 for (i = 0 ; i < pHeader->m_nPacketNum ; i++)
5353 {
@@ -322,42 +322,22 @@ void CMdUserApi::OnRspQryInstrument(DepthMarketDataField* _pField,RCV_REPORT_STR
322322 m_msgQueue->Input_NoCopy (ResponeType::OnRspQryInstrument, m_msgQueue, m_pClass, index >= Count - 1 , 0 , pField, sizeof (InstrumentField), nullptr , 0 , nullptr , 0 );
323323}
324324
325- bool CMdUserApi::FilterExchange (WORD wMarket)
326- {
327- // 只要上海与深圳,不处理三板
328- return wMarket != SB_MARKET_EX;
329- }
330325
331- bool CMdUserApi::FilterInstrument (WORD wMarket, int instrument)
326+ bool CMdUserApi::FilterExchangeInstrument (WORD wMarket, int instrument)
332327{
333- // 只处理A股,不处理债券与基金
334- int prefix1 = instrument / 100000 ;
335- switch (wMarket)
336- {
337- case SH_MARKET_EX:
338- return (prefix1 == 6 );
339- case SZ_MARKET_EX:
340- return (prefix1 == 0 ) || (prefix1 == 3 );
341- default :
342- break ;
343- }
344- return false ;
328+ // 行情太多,需要过滤
329+ return (bool )m_msgQueue->Input_Output (ResponeType::OnFilterSubscribe, m_msgQueue, m_pClass, Market_2_ExchangeType (wMarket), 0 , nullptr , instrument, nullptr , 0 , nullptr , 0 );
345330}
346331
347332// 行情回调,得保证此函数尽快返回
348333void CMdUserApi::OnRtnDepthMarketData (RCV_REPORT_STRUCTEx *pDepthMarketData, int index, int Count)
349334{
350335 // 把不想要的过滤了,加快速度
351- // if (
352- // FilterExchange(pDepthMarketData->m_wMarket)
353- // &&FilterInstrument(pDepthMarketData->m_wMarket, atoi(pDepthMarketData->m_szLabel))
354- // )
355- // {
356- // }
357- // else
358- // {
359- // return;
360- // }
336+ if (!FilterExchangeInstrument (
337+ pDepthMarketData->m_wMarket ,
338+ atoi (pDepthMarketData->m_szLabel ))
339+ )
340+ return ;
361341
362342 DepthMarketDataField* pField = (DepthMarketDataField*)m_msgQueue->new_block (sizeof (DepthMarketDataField));
363343
0 commit comments