public virtual void Send(FIXMarketDataRequest Request) { Console.WriteLine(BeAEwTZGlZaeOmY5cm.J00weU3cM6(992)); MarketDataRequest marketDataRequest = new MarketDataRequest(new MDReqID(Request.MDReqID), new SubscriptionRequestType(Request.SubscriptionRequestType), new MarketDepth(Request.MarketDepth)); if (Request.ContainsField(265)) marketDataRequest.set(new MDUpdateType(Request.MDUpdateType)); MarketDataRequest.NoMDEntryTypes noMdEntryTypes = new MarketDataRequest.NoMDEntryTypes(); for (int i = 0; i < Request.NoMDEntryTypes; ++i) { noMdEntryTypes.set(new MDEntryType(Request.GetMDEntryTypesGroup(i).MDEntryType)); marketDataRequest.addGroup((Group)noMdEntryTypes); } noMdEntryTypes.Dispose(); MarketDataRequest.NoRelatedSym noRelatedSym = new MarketDataRequest.NoRelatedSym(); for (int i = 0; i < Request.NoRelatedSym; ++i) { FIXRelatedSymGroup relatedSymGroup = Request.GetRelatedSymGroup(i); noRelatedSym.set(new Symbol(relatedSymGroup.Symbol)); if (relatedSymGroup.ContainsField(65)) noRelatedSym.set(new SymbolSfx(relatedSymGroup.SymbolSfx)); if (relatedSymGroup.ContainsField(48)) noRelatedSym.set(new SecurityID(relatedSymGroup.SecurityID)); if (relatedSymGroup.ContainsField(22)) noRelatedSym.set(new IDSource(relatedSymGroup.SecurityIDSource)); if (relatedSymGroup.ContainsField(167)) noRelatedSym.set(new QuickFix.SecurityType(relatedSymGroup.SecurityType)); if (relatedSymGroup.ContainsField(200)) noRelatedSym.set(new MaturityMonthYear(relatedSymGroup.MaturityMonthYear)); if (relatedSymGroup.ContainsField(202)) noRelatedSym.set(new StrikePrice(relatedSymGroup.StrikePrice)); if (relatedSymGroup.ContainsField(206)) noRelatedSym.set(new OptAttribute(relatedSymGroup.OptAttribute)); if (relatedSymGroup.ContainsField(231)) noRelatedSym.set(new ContractMultiplier(relatedSymGroup.ContractMultiplier)); if (relatedSymGroup.ContainsField(223)) noRelatedSym.set(new CouponRate(relatedSymGroup.CouponRate)); if (relatedSymGroup.ContainsField(207)) noRelatedSym.set(new SecurityExchange(relatedSymGroup.SecurityExchange)); if (relatedSymGroup.ContainsField(106)) noRelatedSym.set(new Issuer(relatedSymGroup.Issuer)); if (relatedSymGroup.ContainsField(348)) noRelatedSym.set(new EncodedIssuerLen(relatedSymGroup.EncodedIssuerLen)); if (relatedSymGroup.ContainsField(349)) noRelatedSym.set(new EncodedIssuer(relatedSymGroup.EncodedIssuer)); if (relatedSymGroup.ContainsField(107)) noRelatedSym.set(new SecurityDesc(relatedSymGroup.SecurityDesc)); if (relatedSymGroup.ContainsField(350)) noRelatedSym.set(new EncodedSecurityDescLen(relatedSymGroup.EncodedSecurityDescLen)); if (relatedSymGroup.ContainsField(351)) noRelatedSym.set(new EncodedSecurityDesc(relatedSymGroup.EncodedSecurityDesc)); marketDataRequest.addGroup((Group)noRelatedSym); } noRelatedSym.Dispose(); try { Session.sendToTarget((QuickFix.Message)marketDataRequest, this.fSessionID); } catch (Exception ex) { Console.WriteLine(BeAEwTZGlZaeOmY5cm.J00weU3cM6(1096) + ex.Message); } }
public void SendMarketDataRequest(FIXMarketDataRequest request) { SubscriptionDataType subscriptionDataType = (SubscriptionDataType) 0; for (int i = 0; i < request.NoMDEntryTypes; ++i) { switch (request.GetMDEntryTypesGroup(i).MDEntryType) { case '0': case '1': if (request.MarketDepth == 1) { subscriptionDataType |= SubscriptionDataType.Quotes; break; } else { subscriptionDataType |= SubscriptionDataType.OrderBook; break; } case '2': subscriptionDataType |= SubscriptionDataType.Trades; break; } } for (int i = 0; i < request.NoRelatedSym; ++i) { FreeQuant.Instruments.Instrument instrument1 = FreeQuant.Instruments.InstrumentManager.Instruments[request.GetRelatedSymGroup(i).Symbol]; Instrument instrument2 = Map.FQ_OQ_Instrument[(object) instrument1] as Instrument; switch (request.SubscriptionRequestType) { case '1': this.provider.CallSubscribe(instrument2, subscriptionDataType); break; case '2': this.provider.CallUnsubscribe(instrument2, subscriptionDataType); break; default: throw new Exception("Unknown subscription request type " + (object) request.SubscriptionRequestType); } } }