public void SubscribeMarketData(string symbol, string reqID)
        {
            MDReqID mdReqID = new MDReqID(reqID);
            SubscriptionRequestType subType      = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES);
            MarketDepth             marketDepth  = new MarketDepth(1);
            MDUpdateType            mdUpdateType = new MDUpdateType(0);

            QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup marketDataEntryGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup();
            marketDataEntryGroup.SetField(new MDEntryType(MDEntryType.BID));
            marketDataEntryGroup.SetField(new MDEntryType(MDEntryType.OFFER));

            QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup symbolGroup = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup();
            symbolGroup.Set(new Symbol(symbol));

            QuickFix.FIX44.MarketDataRequest message = new QuickFix.FIX44.MarketDataRequest();
            message.SetField(mdReqID);
            message.SetField(subType);
            message.SetField(marketDepth);
            message.SetField(mdUpdateType);

            message.AddGroup(marketDataEntryGroup);
            message.AddGroup(symbolGroup);

            if (m_SessionID != null)
            {
                Session.SendToTarget(message, m_SessionID);
            }
        }
示例#2
0
        private static void ResolveMarketDataRequest(MarketDataRequest message, out Symbol symbol, out char bidAskObj, out string currencyCodeObj)
        {
            MDReqID mdReqId = new MDReqID();

            message.Get(mdReqId);

            SubscriptionRequestType subType = new SubscriptionRequestType();

            message.Get(subType);

            MarketDepth marketDepth = new MarketDepth();

            message.Get(marketDepth);

            var symbolGroup = new FixSpec.MarketDataRequest.NoRelatedSymGroup();

            message.GetGroup(1, symbolGroup);
            symbol = new Symbol();
            symbolGroup.Get(symbol);

            FixSpec.MarketDataRequest.NoMDEntryTypesGroup marketDataEntryGroup = new FixSpec.MarketDataRequest.NoMDEntryTypesGroup();
            message.GetGroup(1, marketDataEntryGroup);
            var mDEntryType = new MDEntryType();

            marketDataEntryGroup.Get(mDEntryType);

            bidAskObj       = mDEntryType.Obj;
            currencyCodeObj = symbol.Obj;
            var marketDepthObj = marketDepth.Obj;
        }
示例#3
0
        public override void onMessage(QuickFix44.MarketDataRequestReject message, SessionID session)
        {
            // getting attributes

            MDReqID        mdReqID        = message.getMDReqID();
            MDReqRejReason mdReqRejReason = message.getMDReqRejReason();

            // firing event

            Console.WriteLine("QuickFix44.MarketDataRequestReject: {0}, {1}", mdReqID, mdReqRejReason);
        }
示例#4
0
        private QuickFix.FIX44.MarketDataRequest QueryMarketDataRequest44()
        {
            MDReqID mdReqID = new MDReqID("MARKETDATAID");
            SubscriptionRequestType subType     = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT);
            MarketDepth             marketDepth = new MarketDepth(0);

            QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup marketDataEntryGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup();
            marketDataEntryGroup.Set(new MDEntryType(MDEntryType.BID));

            QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup symbolGroup = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup();
            symbolGroup.Set(new Symbol("LNUX"));

            QuickFix.FIX44.MarketDataRequest message = new QuickFix.FIX44.MarketDataRequest(mdReqID, subType, marketDepth);
            message.AddGroup(marketDataEntryGroup);
            message.AddGroup(symbolGroup);

            return(message);
        }
示例#5
0
        private FixSpec.MarketDataRequest QueryMarketDataRequest()
        {
            MDReqID mdReqId = new MDReqID("CLIAPP");
            SubscriptionRequestType subType     = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT);
            MarketDepth             marketDepth = new MarketDepth(0);

            FixSpec.MarketDataRequest.NoMDEntryTypesGroup marketDataEntryGroup = new FixSpec.MarketDataRequest.NoMDEntryTypesGroup();
            marketDataEntryGroup.Set(new MDEntryType(MDEntryType.BID));

            var symbolGroup = new FixSpec.MarketDataRequest.NoRelatedSymGroup();

            symbolGroup.Set(new Symbol("EURUSD"));

            var message = new FixSpec.MarketDataRequest(mdReqId, subType, marketDepth);

            message.AddGroup(marketDataEntryGroup);
            message.AddGroup(symbolGroup);

            return(message);
        }
示例#6
0
        public QuickFix.FIX42.MarketDataRequest QueryMarketDataRequest42(string productName)
        {
            MDReqID mdReqID = new MDReqID("MARKETDATAID");
            SubscriptionRequestType subType     = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES);
            MarketDepth             marketDepth = new MarketDepth(1);

            QuickFix.FIX42.MarketDataRequest.NoMDEntryTypesGroup marketDataEntryGroup = new QuickFix.FIX42.MarketDataRequest.NoMDEntryTypesGroup();
            marketDataEntryGroup.Set(new MDEntryType(MDEntryType.BID));

            QuickFix.FIX42.MarketDataRequest.NoRelatedSymGroup symbolGroup = new QuickFix.FIX42.MarketDataRequest.NoRelatedSymGroup();
            symbolGroup.Set(new Symbol(productName));
            symbolGroup.Set(new SecurityExchange("*"));
            symbolGroup.Set(new SecurityType(SecurityType.COMMON_STOCK));

            QuickFix.FIX42.MarketDataRequest message = new QuickFix.FIX42.MarketDataRequest(mdReqID, subType, marketDepth);
            message.AddGroup(marketDataEntryGroup);
            message.AddGroup(symbolGroup);

            return(message);
        }