public override void onMessage(QuickFix44.TradingSessionStatus message, SessionID session) { // getting attributes TradSesStatus tradSesStatus = message.getTradSesStatus(); // firing event Console.WriteLine("QuickFix44.TradingSessionStatus: {0}", tradSesStatus); }
/** * Capture and process the trading session status updates, part of the login process */ public override void onMessage(QuickFix44.TradingSessionStatus status, QuickFix.SessionID session) { // send notification Console.WriteLine("TradingSessionStatus received"); sessionStatus = status; // subscribe to CollateralReports QuickFix44.CollateralInquiry collateralInq = new QuickFix44.CollateralInquiry(); collateralInq.set(new QuickFix.CollInquiryID(nextID().ToString())); collateralInq.set(subscriptionType); send(collateralInq, session); // create a MarketDataRequest to subscribe QuickFix44.MarketDataRequest dataRequest = new QuickFix44.MarketDataRequest(); dataRequest.set(new QuickFix.MDReqID(nextID().ToString())); dataRequest.set(new QuickFix.MarketDepth(1)); // top of book is only choice for retail dataRequest.set(new QuickFix.MDUpdateType(QuickFix.MDUpdateType.FULL_REFRESH)); dataRequest.set(subscriptionType); // add the type of entries desired in the refresh // bid QuickFix44.MarketDataRequest.NoMDEntryTypes entryTypes; entryTypes = new QuickFix44.MarketDataRequest.NoMDEntryTypes(); entryTypes.set(new QuickFix.MDEntryType(QuickFix.MDEntryType.BID)); dataRequest.addGroup(entryTypes); // ask entryTypes = new QuickFix44.MarketDataRequest.NoMDEntryTypes(); entryTypes.set(new QuickFix.MDEntryType(QuickFix.MDEntryType.OFFER)); dataRequest.addGroup(entryTypes); // go through the sessionStatus in order to name each instrument to subscribe to for (uint g = 1; g <= sessionStatus.getField(new QuickFix.IntField(QuickFix.NoRelatedSym.FIELD)).getValue(); g++) { QuickFix44.SecurityList.NoRelatedSym relatedSymbols = new QuickFix44.SecurityList.NoRelatedSym(); QuickFix44.SecurityList.NoRelatedSym symbolGroup = (QuickFix44.SecurityList.NoRelatedSym)sessionStatus.getGroup(g, relatedSymbols); QuickFix44.MarketDataRequest.NoRelatedSym instrument = new QuickFix44.MarketDataRequest.NoRelatedSym(); instrument.set(symbolGroup.getSymbol()); dataRequest.addGroup(instrument); } // send notification Console.WriteLine("MarketDataRequest sent"); // send message to the API send(dataRequest, sessionID_md); // fire an event that the login is complete if (this.loginComplete != null) { this.loginComplete(); } }