void Application::queryMarketDataRequest() { FIX::MDReqID genMDReqID; genMDReqID = m_generator.genOrderID(); FIX::MDReqID mdReqID( genMDReqID ); FIX::SubscriptionRequestType subType( '1' ); FIX::MarketDepth marketDepth( 2 ); FIX::MDUpdateType mDUpdateType(1); FIX::AggregatedBook aggregatedBook(true); FIX42::MarketDataRequest::NoMDEntryTypes marketDataEntryGroup; FIX::MDEntryType mdEntryType1( FIX::MDEntryType_BID ); FIX::MDEntryType mdEntryType2( FIX::MDEntryType_OFFER); marketDataEntryGroup.set( mdEntryType1 ); marketDataEntryGroup.set( mdEntryType2 ); FIX42::MarketDataRequest::NoRelatedSym symbolGroup; FIX::Symbol symbol( "IBM" ); symbolGroup.set( symbol ); FIX42::MarketDataRequest message( mdReqID, subType, marketDepth ); message.addGroup( marketDataEntryGroup ); message.addGroup( symbolGroup ); message.set(mDUpdateType); message.set(aggregatedBook); setHeader( message.getHeader() ); FIX::Session::sendToTarget( message ); }
void FixProviderImpl::unsubscribe(std::vector<std::string> symbols) { std::string uuid = FreeQuant::toGuidString(); FIX::MDReqID mdReqId(uuid); FIX::SubscriptionRequestType subType(FIX::SubscriptionRequestType_DISABLE_PREVIOUS_SNAPSHOT_PLUS_UPDATE_REQUEST); FIX::MarketDepth marketDepth(1); FIX44::MarketDataRequest message(mdReqId, subType, marketDepth); message.set(FIX::MDUpdateType(FIX::MDUpdateType_INCREMENTAL_REFRESH)); message.set(FIX::AggregatedBook(true)); std::string s; s.append(1, FIX::Scope_LOCAL); FIX::Scope scope(s); message.set(scope); message.set(FIX::MDImplicitDelete(false)); FIX44::MarketDataRequest::NoMDEntryTypes typeGroup; typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_OPENING_PRICE)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_CLOSING_PRICE)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_TRADING_SESSION_HIGH_PRICE)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_TRADING_SESSION_LOW_PRICE)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_BID)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_OFFER)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_TRADE_VOLUME)); message.addGroup(typeGroup); typeGroup.set(FIX::MDEntryType(FIX::MDEntryType_OPEN_INTEREST)); message.addGroup(typeGroup); FIX44::MarketDataRequest::NoRelatedSym symGroup; symGroup.set(FIX::Symbol("GOOG")); message.addGroup(symGroup); symGroup.set(FIX::Symbol("IF1210")); message.addGroup(symGroup); FIX::SessionID sessionID; sessionID.fromString(_sessionString); try { FIX::Session::sendToTarget(message, sessionID); } catch (FIX::SessionNotFound&) {} }