int testValidateDictQuoteRequest( int count ) { FIX42::QuoteRequest message( FIX::QuoteReqID("1") ); FIX42::QuoteRequest::NoRelatedSym noRelatedSym; for( int i = 1; i <= 10; ++i ) { noRelatedSym.set( FIX::Symbol("IBM") ); noRelatedSym.set( FIX::MaturityMonthYear() ); noRelatedSym.set( FIX::PutOrCall(FIX::PutOrCall_PUT) ); noRelatedSym.set( FIX::StrikePrice(120) ); noRelatedSym.set( FIX::Side(FIX::Side_BUY) ); noRelatedSym.set( FIX::OrderQty(100) ); noRelatedSym.set( FIX::Currency("USD") ); noRelatedSym.set( FIX::OrdType(FIX::OrdType_MARKET) ); message.addGroup( noRelatedSym ); } FIX::DataDictionary dataDictionary( "../spec/FIX42.xml" ); count = count - 1; int start = GetTickCount(); for ( int j = 0; j <= count; ++j ) { dataDictionary.validate( message ); } return GetTickCount() - start; }
int testSerializeFromStringQuoteRequest( int count ) { FIX42::QuoteRequest message( FIX::QuoteReqID("1") ); FIX42::QuoteRequest::NoRelatedSym noRelatedSym; for( int i = 1; i <= 10; ++i ) { noRelatedSym.set( FIX::Symbol("IBM") ); noRelatedSym.set( FIX::MaturityMonthYear() ); noRelatedSym.set( FIX::PutOrCall(FIX::PutOrCall_PUT) ); noRelatedSym.set( FIX::StrikePrice(120) ); noRelatedSym.set( FIX::Side(FIX::Side_BUY) ); noRelatedSym.set( FIX::OrderQty(100) ); noRelatedSym.set( FIX::Currency("USD") ); noRelatedSym.set( FIX::OrdType(FIX::OrdType_MARKET) ); message.addGroup( noRelatedSym ); } std::string string = message.toString(); count = count - 1; int start = GetTickCount(); for ( int j = 0; j <= count; ++j ) { message.setString( string ); } return GetTickCount() - start; }
int testReadFromQuoteRequest( int count ) { count = count - 1; FIX42::QuoteRequest message( FIX::QuoteReqID("1") ); FIX42::QuoteRequest::NoRelatedSym group; for( int i = 1; i <= 10; ++i ) { group.set( FIX::Symbol("IBM") ); group.set( FIX::MaturityMonthYear() ); group.set( FIX::PutOrCall(FIX::PutOrCall_PUT) ); group.set( FIX::StrikePrice(120) ); group.set( FIX::Side(FIX::Side_BUY) ); group.set( FIX::OrderQty(100) ); group.set( FIX::Currency("USD") ); group.set( FIX::OrdType(FIX::OrdType_MARKET) ); message.addGroup( group ); } group.clear(); int start = GetTickCount(); for ( int j = 0; j <= count; ++j ) { FIX::QuoteReqID quoteReqID; FIX::Symbol symbol; FIX::MaturityMonthYear maturityMonthYear; FIX::PutOrCall putOrCall; FIX::StrikePrice strikePrice; FIX::Side side; FIX::OrderQty orderQty; FIX::Currency currency; FIX::OrdType ordType; FIX::NoRelatedSym noRelatedSym; message.get( noRelatedSym ); int end = noRelatedSym; for( int k = 1; k <= end; ++k ) { message.getGroup( k, group ); group.get( symbol ); group.get( maturityMonthYear ); group.get( putOrCall); group.get( strikePrice ); group.get( side ); group.get( orderQty ); group.get( currency ); group.get( ordType ); maturityMonthYear.getValue(); putOrCall.getValue(); strikePrice.getValue(); side.getValue(); orderQty.getValue(); currency.getValue(); ordType.getValue(); } } return GetTickCount() - start; }
void Application::queryQuoteRequest(FIX::Symbol symbol) { getQuote=false; FIX42::QuoteRequest message; FIX::QuoteReqID genQuoteReqID; genQuoteReqID = m_generator.genOrderID(); message.set(genQuoteReqID); FIX42::QuoteRequest::NoRelatedSym symbolGroup; symbolGroup.set( symbol ); message.addGroup(symbolGroup); setHeader( message.getHeader() ); FIX::Session::sendToTarget( message ); }
int testCreateQuoteRequest( int count ) { count = count - 1; int start = GetTickCount(); FIX::Symbol symbol; FIX::MaturityMonthYear maturityMonthYear; FIX::PutOrCall putOrCall; FIX::StrikePrice strikePrice; FIX::Side side; FIX::OrderQty orderQty; FIX::Currency currency; FIX::OrdType ordType; for ( int i = 0; i <= count; ++i ) { FIX42::QuoteRequest massQuote( FIX::QuoteReqID("1") ); FIX42::QuoteRequest::NoRelatedSym noRelatedSym; for( int j = 1; j <= 10; ++j ) { symbol.setValue( "IBM" ); maturityMonthYear.setValue( "022003" ); putOrCall.setValue( FIX::PutOrCall_PUT ); strikePrice.setValue( 120 ); side.setValue( FIX::Side_BUY ); orderQty.setValue( 100 ); currency.setValue( "USD" ); ordType.setValue( FIX::OrdType_MARKET ); noRelatedSym.set( symbol ); noRelatedSym.set( maturityMonthYear ); noRelatedSym.set( putOrCall ); noRelatedSym.set( strikePrice ); noRelatedSym.set( side ); noRelatedSym.set( orderQty ); noRelatedSym.set( currency ); noRelatedSym.set( ordType ); massQuote.addGroup( noRelatedSym ); noRelatedSym.clear(); } } return GetTickCount() - start; }