Example #1
0
        private async Task HandleTableResponse(MarketDataSnapshotFullRefresh snapshot)
        {
            var symbol = snapshot.Symbol.Obj;

            var equFun   = new Func <OrderBookItem, OrderBookItem, bool>((item1, item2) => item1.Id == item2.Id);
            var hashFunc = new Func <OrderBookItem, int>(item => item.Id.GetHashCode());
            var orders   = new List <OrderBookItem>();

            for (var j = 1; j <= snapshot.NoMDEntries.Obj; j++)
            {
                var ob    = snapshot.GetGroup(j, new MarketDataSnapshotFullRefresh.NoMDEntriesGroup());
                var dir   = ob.GetField(new MDEntryType()).Obj;
                var price = ob.GetField(new MDEntryPx()).Obj;
                var size  = ob.GetField(new MDEntrySize()).Obj;
                var id    = long.Parse(ob.GetField(new QuoteEntryID()).Obj);

                var ordeItem = new OrderBookItem(equFun, hashFunc)
                {
                    Id     = id.ToString(),
                    Symbol = symbol,
                    IsBuy  = dir == MDEntryType.BID,
                    Price  = price,
                    Size   = size
                };
                orders.Add(ordeItem);
            }

            await HandleOrderBookSnapshotAsync(symbol, DateTime.UtcNow, orders);
        }
Example #2
0
 /**
  * Callback chamado após o recebimento de mensagem FIX
  * de instantâneo de MarketData.
  *
  */
 public override void onMessage(
     MarketDataSnapshotFullRefresh message,
     SessionID sessionId)
 {
     try
     {
         filaMensagensFIXInstantaneo.Push(message);
     }
     catch (Exception e)
     {
         logger.Error("Falha na leitura da fila filaMensagensFIXInstantaneo: " +
                      e.Message);
     }
 }
Example #3
0
        public void OnMessage(MarketDataSnapshotFullRefresh message)
        {
            Debug.NotNull(this.dataGateway, nameof(this.dataGateway));

            message.GetGroup(1, this.mdBidGroup);
            message.GetGroup(2, this.mdAskGroup);

            var tick = new QuoteTick(
                this.GetSymbol(message.GetField(Tags.Symbol)),
                Price.Create(this.mdBidGroup.GetDecimal(Tags.MDEntryPx)),
                Price.Create(this.mdAskGroup.GetDecimal(Tags.MDEntryPx)),
                Quantity.One(),
                Quantity.One(),
                this.tickTimestampProvider());

            this.dataGateway?.OnData(tick);
        }
Example #4
0
        public void OnMessage(MarketDataSnapshotFullRefresh msg, SessionID sessionID)
        {
            FIX44XMLParser parser = new FIX44XMLParser();

            Console.WriteLine("==========Header::==========");
            Console.WriteLine(parser.getFieldName(Tags.BeginString.ToString()) + ":: " + msg.Header.GetString(Tags.BeginString));
            Console.WriteLine(parser.getFieldName(Tags.BodyLength.ToString()) + ":: " + msg.Header.GetString(Tags.BodyLength));
            Console.WriteLine(parser.getFieldName(Tags.MsgType.ToString()) + ":: MarketDataSnapshotFullRefresh (" + msg.Header.GetString(Tags.MsgType) + ")");
            Console.WriteLine(parser.getFieldName(Tags.MsgSeqNum.ToString()) + ":: " + msg.Header.GetString(Tags.MsgSeqNum));
            Console.WriteLine(parser.getFieldName(Tags.SenderCompID.ToString()) + ":: " + msg.Header.GetString(Tags.SenderCompID));
            Console.WriteLine(parser.getFieldName(Tags.SendingTime.ToString()) + ":: " + msg.Header.GetString(Tags.SendingTime));
            Console.WriteLine(parser.getFieldName(Tags.TargetCompID.ToString()) + ":: " + msg.Header.GetString(Tags.TargetCompID));

            Console.WriteLine("==========Body:: ==========");
            Console.WriteLine(parser.getFieldName(Tags.Symbol.ToString()) + ":: " + msg.GetString(Tags.Symbol));
            Console.WriteLine(parser.getFieldName(Tags.NoMDEntries.ToString()) + ":: " + msg.GetString(Tags.NoMDEntries));

            MarketDataSnapshotFullRefresh.NoMDEntriesGroup g0 = new MarketDataSnapshotFullRefresh.NoMDEntriesGroup();
            for (int grpIndex = 1; grpIndex <= msg.GetInt(Tags.NoMDEntries); grpIndex += 1)
            {
                Console.WriteLine("---------- ----------");
                msg.GetGroup(grpIndex, g0);
                Console.WriteLine(parser.getFieldName(Tags.MDEntryType.ToString()) + ":: " +
                                  parser.getFieldName(Tags.MDEntryType.ToString(), g0.GetString(Tags.MDEntryType).ToString()) +
                                  "(" + g0.GetString(Tags.MDEntryType) + ")"
                                  );

                try
                {
                    Console.WriteLine(parser.getFieldName(Tags.MDEntryPx.ToString()) + ":: " + g0.GetString(Tags.MDEntryPx));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(parser.getFieldName(Tags.MDEntrySize.ToString()) + ":: " + g0.GetString(Tags.MDEntrySize));
                }

                Console.WriteLine(parser.getFieldName(Tags.MDEntryDate.ToString()) + ":: " + g0.GetString(Tags.MDEntryDate));
                Console.WriteLine(parser.getFieldName(Tags.MDEntryTime.ToString()) + ":: " + g0.GetString(Tags.MDEntryTime));
            }

            Console.WriteLine("==========Trailer:: ==========");
            Console.WriteLine(parser.getFieldName(Tags.CheckSum.ToString()) + ":: " + msg.Trailer.GetString(Tags.CheckSum));
        }
Example #5
0
 public virtual void onMessage(MarketDataSnapshotFullRefresh message, QuickFix.SessionID session)
 {
     throw new QuickFix.UnsupportedMessageType();
 }
Example #6
0
        public void OnMessage(MarketDataSnapshotFullRefresh msg, SessionID sessionID)
        {
            FIX44XMLParser parser = new FIX44XMLParser();

            Console.WriteLine("==========Header::==========");
            Console.WriteLine(parser.getFieldName(Tags.BeginString.ToString()) + ":: " + msg.Header.GetString(Tags.BeginString));
            Console.WriteLine(parser.getFieldName(Tags.BodyLength.ToString()) + ":: " + msg.Header.GetString(Tags.BodyLength));
            Console.WriteLine(parser.getFieldName(Tags.MsgType.ToString()) + ":: MarketDataSnapshotFullRefresh (" + msg.Header.GetString(Tags.MsgType) + ")");
            Console.WriteLine(parser.getFieldName(Tags.MsgSeqNum.ToString()) + ":: " + msg.Header.GetString(Tags.MsgSeqNum));
            Console.WriteLine(parser.getFieldName(Tags.SenderCompID.ToString()) + ":: " + msg.Header.GetString(Tags.SenderCompID));
            Console.WriteLine(parser.getFieldName(Tags.SendingTime.ToString()) + ":: " + msg.Header.GetString(Tags.SendingTime));
            Console.WriteLine(parser.getFieldName(Tags.TargetCompID.ToString()) + ":: " + msg.Header.GetString(Tags.TargetCompID));

            Console.WriteLine("==========Body:: ==========");
            Console.WriteLine(parser.getFieldName(Tags.Symbol.ToString()) + ":: " + msg.GetString(Tags.Symbol));
            Console.WriteLine(parser.getFieldName(Tags.NoMDEntries.ToString()) + ":: " + msg.GetString(Tags.NoMDEntries));

            MarketDataSnapshotFullRefresh.NoMDEntriesGroup g0 = new MarketDataSnapshotFullRefresh.NoMDEntriesGroup();
            for (int grpIndex = 1; grpIndex <= msg.GetInt(Tags.NoMDEntries); grpIndex += 1)
            {
                Console.WriteLine("---------- ----------");
                msg.GetGroup(grpIndex, g0);
                Console.WriteLine(parser.getFieldName(Tags.MDEntryType.ToString()) + ":: " +
                    parser.getFieldName(Tags.MDEntryType.ToString(), g0.GetString(Tags.MDEntryType).ToString()) +
                    "(" + g0.GetString(Tags.MDEntryType) + ")"
                );

                try
                {
                    Console.WriteLine(parser.getFieldName(Tags.MDEntryPx.ToString()) + ":: " + g0.GetString(Tags.MDEntryPx));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(parser.getFieldName(Tags.MDEntrySize.ToString()) + ":: " + g0.GetString(Tags.MDEntrySize));
                }

                Console.WriteLine(parser.getFieldName(Tags.MDEntryDate.ToString()) + ":: " + g0.GetString(Tags.MDEntryDate));
                Console.WriteLine(parser.getFieldName(Tags.MDEntryTime.ToString()) + ":: " + g0.GetString(Tags.MDEntryTime));
            }

            Console.WriteLine("==========Trailer:: ==========");
            Console.WriteLine(parser.getFieldName(Tags.CheckSum.ToString()) + ":: " + msg.Trailer.GetString(Tags.CheckSum));
        }
Example #7
0
        private void trataMensagemFIX(MarketDataSnapshotFullRefresh mensagem)
        {
            listaInstrumentosFIX = new SortedDictionary <string, MarketDataSnapshotFullRefresh.NoMDEntries>();

            try
            {
                int ocorrencias =
                    mensagem.getInt(NoMDEntries.FIELD);

                // Apenas trata a mensagem FIX se houver ocorrências no NoMDEntries
                if (ocorrencias > 0)
                {
                    uint ocorrencia;
                    for (ocorrencia = 1;
                         ocorrencia <= ocorrencias; ocorrencia++)
                    {
                        MarketDataSnapshotFullRefresh.NoMDEntries grupo = new MarketDataSnapshotFullRefresh.NoMDEntries();
                        mensagem.getGroup(ocorrencia, grupo);

                        // Mensagens de Negocio são enviados depois de todas as outras mensagens
                        if (grupo.getChar(MDEntryType.FIELD) == MDEntryType.TRADE)
                        {
                            if (!listaInstrumentosFIX.ContainsKey(
                                    grupo.getString(6032)))
                            {
                                listaInstrumentosFIX.Add(grupo.getString(6032), grupo);
                            }
                        }

                        enviaInstantaneo(
                            mensagem.getHeader().getInt(MsgSeqNum.FIELD),
                            ocorrencia,
                            mensagem,
                            grupo);
                    }

                    if (listaInstrumentosFIX.Count > 0)
                    {
                        IEnumerator <KeyValuePair <string, MarketDataSnapshotFullRefresh.NoMDEntries> >
                        itens = listaInstrumentosFIX.GetEnumerator();
                        while (itens.MoveNext())
                        {
                            KeyValuePair <string, MarketDataSnapshotFullRefresh.NoMDEntries>
                            item = itens.Current;
                            enviaInstantaneo(
                                Convert.ToInt32(item.Key),
                                ocorrencia++,
                                mensagem,
                                item.Value);
                        }
                    }
                }
                else
                {
                    logger.Debug("SNAPSHOT - sem elementos");
                }
            }

            catch (FieldNotFound e)
            {
                logger.Error("Campo nao encontrado na mensagem: " + e.Message);
            }
        }
Example #8
0
        /**
         * Monta e envia mensagem Market Data de Snapshot (instantaneo) para o ESPER.
         * Layout da mensagem:
         * SeqNum									9(15)
         * type										X(1)
         * symbol									X(20)
         * securityID								X(20)
         * body:
         *      MDUpdateAction (279)				X(1)
         *      MDEntryID (278)					X(10)
         *      MDEntryDate (272)					X(8)
         *      MDEntryTime (273)					X(8)
         *
         *		MDEntryPositionNo (290)			X(6)
         *		MDEntryPx (270)					X(15)
         *		MDEntrySize (271)					X(15)
         *		NumberOfOrders (346)				X(15)
         *		OrderID (37)						X(50)
         *		MDEntryBuyer (288)					X(10)
         *		MDEntrySeller (289)				X(10)
         *		TickDirection (274)				X(1)
         *		NetChgPrevDay (451)				X(11)
         *		UniqueTradeID (6032)				X(20)
         *		OpenCloseSettlFlag (286)			9(1)
         *		TradingSessionSubID (625)		X(2)
         *		SecurityTradingStatus (326)		9(3)
         *		NoReferentialPrices (6932)		9(3)
         *			ReferentialPriceType (6934)	9(1)
         *			ReferentialPx (6933)			X(15)
         *			TransactTime (60)				X(20)
         */
        private void enviaInstantaneo(
            int seqNum,
            uint ocorrencia,
            MarketDataSnapshotFullRefresh mensagem,
            MarketDataSnapshotFullRefresh.NoMDEntries grupo)
        {
            String mensagemMDS;
            String instrumento = null;

            try
            {
                // SeqNum - 9(15)
                mensagemMDS = seqNum.ToString("D10");
                mensagemMDS = mensagemMDS + ocorrencia.ToString("D5");

                // type - X(1)
                mensagemMDS = mensagemMDS + grupo.getChar(MDEntryType.FIELD);

                // symbol - X(20)
                instrumento = mensagem.getString(Symbol.FIELD);
                mensagemMDS = mensagemMDS + instrumento.PadLeft(20);

                // securityID - X(20)
                mensagemMDS = mensagemMDS + mensagem.getString(SecurityID.FIELD).PadLeft(20);

                // body

                // Se OFERTA_COMPRA ou OFERTA_VENDA, envia NEW em MDUpdateAction
                if (grupo.getChar(MDEntryType.FIELD) == MDEntryType.BID ||
                    grupo.getChar(MDEntryType.FIELD) == MDEntryType.OFFER)
                {
                    mensagemMDS = mensagemMDS + MDUpdateAction.NEW;
                }
                else
                {
                    mensagemMDS = mensagemMDS + " ";
                }

                mensagemMDS = mensagemMDS + " ".PadLeft(10);
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntryDate()) ? grupo.getString(MDEntryDate.FIELD) : "").PadLeft(8);
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntryTime()) ? grupo.getString(MDEntryTime.FIELD) : "").PadLeft(8).Trim();
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntryPositionNo()) ? grupo.getString(MDEntryPositionNo.FIELD) : " ").PadLeft(6);
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntryPx()) ? grupo.getString(MDEntryPx.FIELD) : " ").PadLeft(15);
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntrySize()) ? grupo.getString(MDEntrySize.FIELD) : " ").PadLeft(15);
                mensagemMDS = mensagemMDS + (grupo.isSet(new NumberOfOrders()) ? grupo.getString(NumberOfOrders.FIELD) : " ").PadLeft(15);
                mensagemMDS = mensagemMDS + (grupo.isSet(new OrderID()) ? grupo.getString(OrderID.FIELD) : " ").PadLeft(50);
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntryBuyer()) ? grupo.getString(MDEntryBuyer.FIELD) : " ").PadLeft(10);
                mensagemMDS = mensagemMDS + (grupo.isSet(new MDEntrySeller()) ? grupo.getString(MDEntrySeller.FIELD) : " ").PadLeft(10);
                mensagemMDS = mensagemMDS + (grupo.isSet(new TickDirection()) ? grupo.getString(TickDirection.FIELD) : " ").PadLeft(1);
                mensagemMDS = mensagemMDS + (mensagem.isSetField(NetChgPrevDay.FIELD) ? mensagem.getString(NetChgPrevDay.FIELD) : " ").PadLeft(11);
                mensagemMDS = mensagemMDS + (grupo.isSetField(6032) ? grupo.getString(6032) : " ").PadLeft(20);
                mensagemMDS = mensagemMDS + (grupo.isSet(new OpenCloseSettlFlag()) ? grupo.getInt(OpenCloseSettlFlag.FIELD) : 0).ToString("D1");
                mensagemMDS = mensagemMDS + (grupo.isSet(new TradingSessionSubID()) ? grupo.getString(TradingSessionSubID.FIELD) : " ").PadLeft(2);
                mensagemMDS = mensagemMDS + (grupo.isSetField(326) ? grupo.getInt(326) : 0).ToString("D3");

                if (grupo.isSetField(6932))
                {
                    int ocorrencias = grupo.getInt(6932);
                    mensagemMDS = mensagemMDS + ocorrencias.ToString("D3");

                    for (uint ocorrenciaPrecos = 1;
                         ocorrenciaPrecos <= ocorrencias; ocorrenciaPrecos++)
                    {
                        //ATP: Sinistraço!!!!
                        Group grupoPrecos = new Group(6932, 6934, new int[] { 6934, 6933, 60, 0 });
                        grupo.getGroup(ocorrenciaPrecos, grupoPrecos);

                        mensagemMDS = mensagemMDS + (grupoPrecos.isSetField(6934) ? grupoPrecos.getInt(6934).ToString("D1") : "0");
                        mensagemMDS = mensagemMDS + (grupoPrecos.isSetField(6933) ? grupoPrecos.getString(6933) : " ").PadLeft(15);
                        mensagemMDS = mensagemMDS + (grupoPrecos.isSetField(TransactTime.FIELD) ? grupoPrecos.getString(TransactTime.FIELD) : "").PadLeft(20);
                    }
                }
                else
                {
                    mensagemMDS = mensagemMDS + "000";
                }

                try
                {
                    filaMensagensRetransmissorBMF.Push(mensagemMDS);
                }
                catch (Exception e)
                {
                    logger.Error("Falha na leitura da fila filaMensagensRetransmissorBMF: " +
                                 e.Message, e);
                }

                logger.Debug("SNAPHOT - Instrumento[" +
                             mensagem.getString(Symbol.FIELD) + "] tipo[" +
                             grupo.getChar(MDEntryType.FIELD) + "] Mensagem[" +
                             mensagemMDS + "]");
            }
            catch (FieldNotFound e)
            {
                logger.Error("Instrumento[" + instrumento +
                             "]: Campo nao encontrado na mensagem: " + e.Message);
                return;
            }
            catch (Exception e)
            {
                logger.Error("enviaInstantaneo: " + e.Message, e);
            }
        }
Example #9
0
 /// <summary>
 /// Handles <see cref="MarketDataSnapshotFullRefresh"/> messages.
 /// </summary>
 /// <param name="message">The FIX message.</param>
 /// <param name="sessionId">The session identifier.</param>
 public void OnMessage(MarketDataSnapshotFullRefresh message, SessionID sessionId)
 {
     this.FixMessageHandler.OnMessage(message);
 }
Example #10
0
		public virtual void Send(FIXMarketDataSnapshot Snapshot)
		{
			MarketDataSnapshotFullRefresh snapshotFullRefresh = new MarketDataSnapshotFullRefresh(new Symbol(Snapshot.Symbol));
			if (Snapshot.ContainsField(262))
				snapshotFullRefresh.set(new MDReqID(Snapshot.MDReqID));
			if (Snapshot.ContainsField(65))
				snapshotFullRefresh.set(new SymbolSfx(Snapshot.SymbolSfx));
			if (Snapshot.ContainsField(48))
				snapshotFullRefresh.set(new SecurityID(Snapshot.SecurityID));
			if (Snapshot.ContainsField(22))
				snapshotFullRefresh.set(new IDSource(Snapshot.SecurityIDSource));
			if (Snapshot.ContainsField(167))
				snapshotFullRefresh.set(new QuickFix.SecurityType(Snapshot.SecurityType));
			if (Snapshot.ContainsField(200))
				snapshotFullRefresh.set(new MaturityMonthYear(Snapshot.MaturityMonthYear));
			if (Snapshot.ContainsField(202))
				snapshotFullRefresh.set(new StrikePrice(Snapshot.StrikePrice));
			if (Snapshot.ContainsField(206))
				snapshotFullRefresh.set(new OptAttribute(Snapshot.OptAttribute));
			if (Snapshot.ContainsField(231))
				snapshotFullRefresh.set(new ContractMultiplier(Snapshot.ContractMultiplier));
			if (Snapshot.ContainsField(223))
				snapshotFullRefresh.set(new CouponRate(Snapshot.CouponRate));
			if (Snapshot.ContainsField(207))
				snapshotFullRefresh.set(new SecurityExchange(Snapshot.SecurityExchange));
			if (Snapshot.ContainsField(106))
				snapshotFullRefresh.set(new Issuer(Snapshot.Issuer));
			if (Snapshot.ContainsField(348))
				snapshotFullRefresh.set(new EncodedIssuerLen(Snapshot.EncodedIssuerLen));
			if (Snapshot.ContainsField(349))
				snapshotFullRefresh.set(new EncodedIssuer(Snapshot.EncodedIssuer));
			if (Snapshot.ContainsField(107))
				snapshotFullRefresh.set(new SecurityDesc(Snapshot.SecurityDesc));
			if (Snapshot.ContainsField(350))
				snapshotFullRefresh.set(new EncodedSecurityDescLen(Snapshot.EncodedSecurityDescLen));
			if (Snapshot.ContainsField(351))
				snapshotFullRefresh.set(new EncodedSecurityDesc(Snapshot.EncodedSecurityDesc));
			if (Snapshot.ContainsField(291))
				snapshotFullRefresh.set(new FinancialStatus(((object)Snapshot.FinancialStatus).ToString()));
			if (Snapshot.ContainsField(292))
				snapshotFullRefresh.set(new CorporateAction(((object)Snapshot.CorporateAction).ToString()));
			for (int i = 0; i < Snapshot.NoMDEntries; ++i)
			{
				MarketDataSnapshotFullRefresh.NoMDEntries noMdEntries = new MarketDataSnapshotFullRefresh.NoMDEntries();
				FIXMDEntriesGroup mdEntriesGroup = Snapshot.GetMDEntriesGroup(i);
				noMdEntries.set(new MDEntryType(mdEntriesGroup.MDEntryType));
				noMdEntries.set(new MDEntryPx(mdEntriesGroup.MDEntryPx));
				if (mdEntriesGroup.ContainsField(271))
					noMdEntries.set(new MDEntrySize(mdEntriesGroup.MDEntrySize));
				if (mdEntriesGroup.ContainsField(272))
					noMdEntries.set(new MDEntryDate(mdEntriesGroup.MDEntryDate));
				if (mdEntriesGroup.ContainsField(273))
					noMdEntries.set(new MDEntryTime(mdEntriesGroup.MDEntryTime));
				if (mdEntriesGroup.ContainsField(274))
					noMdEntries.set(new TickDirection(mdEntriesGroup.TickDirection));
				if (mdEntriesGroup.ContainsField(275))
					noMdEntries.set(new MDMkt(mdEntriesGroup.MDMkt));
				if (mdEntriesGroup.ContainsField(336))
					noMdEntries.set(new TradingSessionID(mdEntriesGroup.TradingSessionID));
				if (mdEntriesGroup.ContainsField(276))
					noMdEntries.set(new QuoteCondition(mdEntriesGroup.QuoteCondition));
				if (mdEntriesGroup.ContainsField(277))
					noMdEntries.set(new TradeCondition(mdEntriesGroup.TradeCondition));
				if (mdEntriesGroup.ContainsField(282))
					noMdEntries.set(new MDEntryOriginator(mdEntriesGroup.MDEntryOriginator));
				if (mdEntriesGroup.ContainsField(283))
					noMdEntries.set(new LocationID(mdEntriesGroup.LocationID));
				if (mdEntriesGroup.ContainsField(284))
					noMdEntries.set(new DeskID(mdEntriesGroup.DeskID));
				if (mdEntriesGroup.ContainsField(59))
					noMdEntries.set(new QuickFix.TimeInForce(mdEntriesGroup.TimeInForce));
				if (mdEntriesGroup.ContainsField(126))
					noMdEntries.set(new ExpireTime(mdEntriesGroup.ExpireTime));
				if (mdEntriesGroup.ContainsField(110))
					noMdEntries.set(new MinQty(mdEntriesGroup.MinQty));
				if (mdEntriesGroup.ContainsField(18))
					noMdEntries.set(new ExecInst(mdEntriesGroup.ExecInst));
				if (mdEntriesGroup.ContainsField(287))
					noMdEntries.set(new SellerDays(mdEntriesGroup.SellerDays));
				if (mdEntriesGroup.ContainsField(37))
					noMdEntries.set(new OrderID(mdEntriesGroup.OrderID));
				if (mdEntriesGroup.ContainsField(299))
					noMdEntries.set(new QuoteEntryID(mdEntriesGroup.QuoteEntryID));
				if (mdEntriesGroup.ContainsField(288))
					noMdEntries.set(new MDEntryBuyer(mdEntriesGroup.MDEntryBuyer));
				if (mdEntriesGroup.ContainsField(289))
					noMdEntries.set(new MDEntrySeller(mdEntriesGroup.MDEntrySeller));
				if (mdEntriesGroup.ContainsField(346))
					noMdEntries.set(new NumberOfOrders(mdEntriesGroup.NumberOfOrders));
				if (mdEntriesGroup.ContainsField(290))
					noMdEntries.set(new MDEntryPositionNo(mdEntriesGroup.MDEntryPositionNo));
				if (mdEntriesGroup.ContainsField(58))
					noMdEntries.set(new Text(mdEntriesGroup.Text));
				if (mdEntriesGroup.ContainsField(354))
					noMdEntries.set(new EncodedTextLen(mdEntriesGroup.EncodedTextLen));
				if (mdEntriesGroup.ContainsField(355))
					noMdEntries.set(new EncodedText(mdEntriesGroup.EncodedText));
				snapshotFullRefresh.addGroup((Group)noMdEntries);
				noMdEntries.Dispose();
			}
			try
			{
				Session.sendToTarget((QuickFix.Message)snapshotFullRefresh, this.fSessionID);
			}
			catch (Exception ex)
			{
				Console.WriteLine(BeAEwTZGlZaeOmY5cm.J00weU3cM6(1148) + ex.Message);
			}
		}