コード例 #1
0
        public override void onMessage(QuickFix44.TradingSessionStatus message, SessionID session)
        {
            // getting attributes

            TradSesStatus tradSesStatus = message.getTradSesStatus();

            // firing event

            Console.WriteLine("QuickFix44.TradingSessionStatus: {0}", tradSesStatus);
        }
コード例 #2
0
ファイル: ExampleApplication.cs プロジェクト: zeropool/Vigoth
        /**
         * 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();
            }
        }