@@ -998,35 +998,27 @@ void CTraderApi::ReqQryInvestorPosition(const string& szInstrumentId)
998998
999999void CTraderApi::OnRspQryInvestorPosition (CSecurityFtdcInvestorPositionField *pInvestorPosition, CSecurityFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
10001000{
1001- // if(m_msgQueue)
1002- // m_msgQueue->Input_OnRspQryInvestorPosition(this,pInvestorPosition,pRspInfo,nRequestID,bIsLast);
1003-
1004- if (bIsLast)
1005- ReleaseRequestMapBuf (nRequestID);
1006- }
1007-
1008- void CTraderApi::ReqQryInvestorPositionDetail (const string& szInstrumentId)
1009- {
1010- if (nullptr == m_pApi)
1011- return ;
1012-
1013- SRequest* pRequest = MakeRequestBuf (E_QryInvestorPositionDetailField);
1014- if (nullptr == pRequest)
1015- return ;
1016-
1017- CSecurityFtdcQryInvestorPositionDetailField& body = pRequest->QryInvestorPositionDetailField ;
1001+ if (!IsErrorRspInfo (pRspInfo, nRequestID, bIsLast))
1002+ {
1003+ if (pInvestorPosition)
1004+ {
1005+ PositionField field = { 0 };
10181006
1019- strncpy (body.BrokerID , m_RspUserLogin.BrokerID ,sizeof (TSecurityFtdcBrokerIDType));
1020- strncpy (body.InvestorID , m_RspUserLogin.UserID ,sizeof (TSecurityFtdcInvestorIDType));
1021- strncpy (body.InstrumentID ,szInstrumentId.c_str (),sizeof (TSecurityFtdcInstrumentIDType));
1007+ strcpy (field.InstrumentID , pInvestorPosition->InstrumentID );
10221008
1023- AddToSendQueue (pRequest);
1024- }
1009+ field.Side = TSecurityFtdcPosiDirectionType_2_PositionSide (pInvestorPosition->PosiDirection );
1010+ field.HedgeFlag = TSecurityFtdcHedgeFlagType_2_HedgeFlagType (pInvestorPosition->HedgeFlag );
1011+ field.Position = pInvestorPosition->Position ;
1012+ field.TdPosition = pInvestorPosition->TodayPosition ;
1013+ field.YdPosition = pInvestorPosition->Position - pInvestorPosition->TodayPosition ;
10251014
1026- void CTraderApi::OnRspQryInvestorPositionDetail (CSecurityFtdcInvestorPositionDetailField *pInvestorPositionDetail, CSecurityFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
1027- {
1028- // if(m_msgQueue)
1029- // m_msgQueue->Input_OnRspQryInvestorPositionDetail(this,pInvestorPositionDetail,pRspInfo,nRequestID,bIsLast);
1015+ XRespone (ResponeType::OnRspQryInvestorPosition, m_msgQueue, this , bIsLast, 0 , &field, sizeof (PositionField), nullptr , 0 , nullptr , 0 );
1016+ }
1017+ else
1018+ {
1019+ XRespone (ResponeType::OnRspQryInvestorPosition, m_msgQueue, this , bIsLast, 0 , nullptr , 0 , nullptr , 0 , nullptr , 0 );
1020+ }
1021+ }
10301022
10311023 if (bIsLast)
10321024 ReleaseRequestMapBuf (nRequestID);
0 commit comments