/** * 现场交易请求 * @return */ public static Message createLiveTradesRequest() { QuickFix.FIX44.MarketDataRequest liveTradesRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); // noRelatedSym.Set(new Symbol("LTC/USD")); noRelatedSym.Set(new Symbol("LTC/CNY")); liveTradesRequest.AddGroup(noRelatedSym); liveTradesRequest.Set(new MDReqID("123")); liveTradesRequest.Set(new SubscriptionRequestType('1')); liveTradesRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group.Set(new MDEntryType('2')); liveTradesRequest.AddGroup(group); return liveTradesRequest; }
/** * 24h行情请求 * @return */ public static Message create24HTickerRequest() { QuickFix.FIX44.MarketDataRequest tickerRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); //noRelatedSym.Set(new Symbol("BTC/CNY")); noRelatedSym.Set(new Symbol("BTC/CNY")); tickerRequest.AddGroup(noRelatedSym); tickerRequest.Set(new MDReqID("123")); tickerRequest.Set(new SubscriptionRequestType('1')); tickerRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group1 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group1.Set(new MDEntryType('4')); tickerRequest.AddGroup(group1); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group2 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group2.Set(new MDEntryType('5')); tickerRequest.AddGroup(group2); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group3 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group3.Set(new MDEntryType('7')); tickerRequest.AddGroup(group3); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group4 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group4.Set(new MDEntryType('8')); tickerRequest.AddGroup(group4); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group5 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group5.Set(new MDEntryType('9')); tickerRequest.AddGroup(group5); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group6 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group6.Set(new MDEntryType('B')); tickerRequest.AddGroup(group6); return tickerRequest; }
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); } }
private void MarketDataRequestFullOrderbookIncremential(string[] symbol_ids) { Console.WriteLine($"Sending MarketDataRequest with {symbol_ids.Length} items."); QuickFix.FIX44.MarketDataRequest mdr = new QuickFix.FIX44.MarketDataRequest(); mdr.MDReqID = new MDReqID(Guid.NewGuid().ToString()); mdr.SubscriptionRequestType = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES); mdr.MarketDepth = new MarketDepth(0); mdr.MDUpdateType = new MDUpdateType(MDUpdateType.INCREMENTAL_REFRESH); { var type = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); type.MDEntryType = new MDEntryType(MDEntryType.BID); mdr.AddGroup(type); } { var type = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); type.MDEntryType = new MDEntryType(MDEntryType.OFFER); mdr.AddGroup(type); } foreach (var symbol_id in symbol_ids) { var relatedsym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); relatedsym.Symbol = new Symbol(symbol_id); mdr.AddGroup(relatedsym); } SendMessage(mdr); }
private void MarketDataRequestQuotes(string[] symbol_ids) { QuickFix.FIX44.MarketDataRequest mdr = new QuickFix.FIX44.MarketDataRequest(); mdr.MDReqID = new MDReqID(Guid.NewGuid().ToString()); mdr.SubscriptionRequestType = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES); mdr.MarketDepth = new MarketDepth(1); mdr.MDUpdateType = new MDUpdateType(MDUpdateType.FULL_REFRESH); { var type = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); type.MDEntryType = new MDEntryType(MDEntryType.BID); mdr.AddGroup(type); } { var type = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); type.MDEntryType = new MDEntryType(MDEntryType.OFFER); mdr.AddGroup(type); } foreach (var symbol_id in symbol_ids) { var relatedsym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); relatedsym.Symbol = new Symbol(symbol_id); mdr.AddGroup(relatedsym); } SendMessage(mdr); }
private void QueryMarketDataRequest() { QuickFix.FIX44.MarketDataRequest result = new QuickFix.FIX44.MarketDataRequest(); result.SetField(new MDReqID(DateTime.Now.Millisecond.ToString())); var noContraBrokersGroup = new QuickFix.FIX44.ExecutionReport.NoContraBrokersGroup(); noContraBrokersGroup.Set(QueryPool()); result.AddGroup(noContraBrokersGroup); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup symGroup = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); symGroup.SetField(QuerySymbol()); symGroup.SetField(new MDUpdateType(MDUpdateType.INCREMENTAL_REFRESH)); symGroup.SetField(new MarketDepth(0)); symGroup.SetField(new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup typesGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); typesGroup.SetField(new MDEntryType(MDEntryType.BID)); result.AddGroup(typesGroup); typesGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); typesGroup.SetField(new MDEntryType(MDEntryType.OFFER)); result.AddGroup(symGroup); Console.WriteLine(result); SendMessage(result, ".MD"); }
public void RepeatingGroup_FieldOrder() { QuickFix.FIX44.MarketDataRequest msg = new QuickFix.FIX44.MarketDataRequest(); msg.MDReqID = new MDReqID("fooMdReqID"); msg.SubscriptionRequestType = new SubscriptionRequestType('1'); msg.MarketDepth = new MarketDepth(0); // this group is irrelevant to the test, but it's required in the message QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup entryTypesGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); entryTypesGroup.MDEntryType = new MDEntryType('0'); msg.AddGroup(entryTypesGroup); entryTypesGroup.MDEntryType = new MDEntryType('1'); msg.AddGroup(entryTypesGroup); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup symGroup = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); // spec order of fields is 55,65,48,22 symGroup.Symbol = new Symbol("FOO1"); symGroup.SymbolSfx = new SymbolSfx("sfx1"); symGroup.SecurityID = new SecurityID("secid1"); symGroup.SecurityIDSource = new SecurityIDSource("src1"); msg.AddGroup(symGroup); symGroup.Symbol = new Symbol("FOO2"); symGroup.SymbolSfx = new SymbolSfx("sfx2"); symGroup.SecurityID = new SecurityID("secid2"); symGroup.SecurityIDSource = new SecurityIDSource("src2"); msg.AddGroup(symGroup); string msgString = msg.ToString(); string expected = String.Join(Message.SOH, new string[] { "146=2", "55=FOO1", "65=sfx1", "48=secid1", "22=src1", "55=FOO2", "65=sfx2", "48=secid2", "22=src2", }); StringAssert.Contains(expected, msgString); }
/** * 现场交易请求 * @return */ public static Message createLiveTradesRequest() { QuickFix.FIX44.MarketDataRequest liveTradesRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); // noRelatedSym.Set(new Symbol("LTC/USD")); noRelatedSym.Set(new Symbol("LTC/CNY")); liveTradesRequest.AddGroup(noRelatedSym); liveTradesRequest.Set(new MDReqID("123")); liveTradesRequest.Set(new SubscriptionRequestType('1')); liveTradesRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group.Set(new MDEntryType('2')); liveTradesRequest.AddGroup(group); return(liveTradesRequest); }
public static Message CreateLiveTradesRequest() { QuickFix.FIX44.MarketDataRequest liveTradesRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); noRelatedSym.Set(TradeSymbol); liveTradesRequest.AddGroup(noRelatedSym); liveTradesRequest.Set(new MDReqID(GetFreeID)); liveTradesRequest.Set(new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES)); liveTradesRequest.Set(new MDUpdateType(MDUpdateType.INCREMENTAL_REFRESH)); liveTradesRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group.Set(new MDEntryType(MDEntryType.TRADE)); liveTradesRequest.AddGroup(group); return(liveTradesRequest); }
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); }
public static Message CreateOrderBookRequest(int depth = 0) { QuickFix.FIX44.MarketDataRequest orderBookRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); noRelatedSym.Set(TradeSymbol); orderBookRequest.AddGroup(noRelatedSym); orderBookRequest.Set(new MDReqID(GetFreeID)); orderBookRequest.Set(new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES)); orderBookRequest.Set(new MDUpdateType(MDUpdateType.INCREMENTAL_REFRESH)); orderBookRequest.Set(new MarketDepth(depth)); // 0 means full book QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup bid = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); bid.Set(new MDEntryType(MDEntryType.BID)); orderBookRequest.AddGroup(bid); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup offer = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); offer.Set(new MDEntryType(MDEntryType.OFFER)); orderBookRequest.AddGroup(offer); return(orderBookRequest); }
/** * 订单数据 * @return */ public static Message createOrderBookRequest() { QuickFix.FIX44.MarketDataRequest orderBookRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); noRelatedSym.Set(new Symbol("BTC/CNY")); orderBookRequest.AddGroup(noRelatedSym); orderBookRequest.Set(new MDReqID("123")); orderBookRequest.Set(new SubscriptionRequestType('1')); orderBookRequest.Set(new MDUpdateType(1));//0全部 。1增量 orderBookRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group1 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group1.Set(new MDEntryType('0')); orderBookRequest.AddGroup(group1); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group2 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group2.Set(new MDEntryType('1')); orderBookRequest.AddGroup(group2); return(orderBookRequest); }
/// <summary> /// Creates a FIX4.4 MarketDataRequest message. /// </summary> /// <param name="id"></param> /// <param name="security"></param> /// <param name="subscriptionType"></param> /// <param name="depth"></param> /// <returns></returns> public QuickFix.FIX44.MarketDataRequest MarketDataRequest(string id, Security security, char subscriptionType, int depth) { QuickFix.FIX44.MarketDataRequest marketDataRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.Fields.NoRelatedSym noRelatedSym = new QuickFix.Fields.NoRelatedSym(1); marketDataRequest.SetField(noRelatedSym); QuickFix.Fields.MDReqID mdReqId = new QuickFix.Fields.MDReqID(id); marketDataRequest.SetField(mdReqId); QuickFix.Fields.SubscriptionRequestType subscriptionRequestType = new QuickFix.Fields.SubscriptionRequestType(subscriptionType); marketDataRequest.SetField(subscriptionRequestType); QuickFix.Fields.MarketDepth marketDepth = new QuickFix.Fields.MarketDepth(depth); marketDataRequest.SetField(marketDepth); QuickFix.Fields.MDUpdateType mdUpdateType = new QuickFix.Fields.MDUpdateType(MarketDataUpdateType.FullRefresh); marketDataRequest.SetField(mdUpdateType); QuickFix.Fields.NoMDEntryTypes noMdEntryType = new QuickFix.Fields.NoMDEntryTypes(2); marketDataRequest.SetField(noMdEntryType); QuickFix.Fields.Symbol symbol = new QuickFix.Fields.Symbol(security.Symbol); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup relatedSymbols = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); relatedSymbols.SetField(symbol); marketDataRequest.AddGroup(relatedSymbols); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup mdEntryTypes = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); { mdEntryTypes.SetField(new QuickFix.Fields.MDEntryType(MarketDataEntryType.Bid)); marketDataRequest.AddGroup(mdEntryTypes); mdEntryTypes.SetField(new QuickFix.Fields.MDEntryType(MarketDataEntryType.Offer)); marketDataRequest.AddGroup(mdEntryTypes); } return(marketDataRequest); }
/** * 24h行情请求 * @return */ public static Message create24HTickerRequest() { QuickFix.FIX44.MarketDataRequest tickerRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); //noRelatedSym.Set(new Symbol("BTC/CNY")); noRelatedSym.Set(new Symbol("BTC/CNY")); tickerRequest.AddGroup(noRelatedSym); tickerRequest.Set(new MDReqID("123")); tickerRequest.Set(new SubscriptionRequestType('1')); tickerRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group1 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group1.Set(new MDEntryType('4')); tickerRequest.AddGroup(group1); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group2 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group2.Set(new MDEntryType('5')); tickerRequest.AddGroup(group2); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group3 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group3.Set(new MDEntryType('7')); tickerRequest.AddGroup(group3); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group4 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group4.Set(new MDEntryType('8')); tickerRequest.AddGroup(group4); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group5 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group5.Set(new MDEntryType('9')); tickerRequest.AddGroup(group5); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group6 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group6.Set(new MDEntryType('B')); tickerRequest.AddGroup(group6); return(tickerRequest); }
public static Message Create24HTickerRequest() { QuickFix.FIX44.MarketDataRequest tickerRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); noRelatedSym.Set(TradeSymbol); tickerRequest.AddGroup(noRelatedSym); tickerRequest.Set(new MDReqID(GetFreeID)); tickerRequest.Set(new SubscriptionRequestType('1')); tickerRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group1 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group1.Set(new MDEntryType(MDEntryType.OPENING_PRICE)); tickerRequest.AddGroup(group1); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group2 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group2.Set(new MDEntryType(MDEntryType.CLOSING_PRICE)); tickerRequest.AddGroup(group2); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group3 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group3.Set(new MDEntryType(MDEntryType.TRADING_SESSION_HIGH_PRICE)); tickerRequest.AddGroup(group3); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group4 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group4.Set(new MDEntryType(MDEntryType.TRADING_SESSION_LOW_PRICE)); tickerRequest.AddGroup(group4); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group5 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group5.Set(new MDEntryType(MDEntryType.TRADING_SESSION_VWAP_PRICE)); tickerRequest.AddGroup(group5); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group6 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group6.Set(new MDEntryType(MDEntryType.TRADE_VOLUME)); tickerRequest.AddGroup(group6); return(tickerRequest); }
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; }
public void RepeatingGroup_DelimiterFieldFirst() { QuickFix.FIX44.MarketDataRequest msg = new QuickFix.FIX44.MarketDataRequest(); msg.MDReqID = new MDReqID("fooMdReqID"); msg.SubscriptionRequestType = new SubscriptionRequestType('1'); msg.MarketDepth = new MarketDepth(0); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup entryTypesGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); entryTypesGroup.MDEntryType = new MDEntryType('0'); msg.AddGroup(entryTypesGroup); entryTypesGroup.MDEntryType = new MDEntryType('1'); msg.AddGroup(entryTypesGroup); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup symGroup = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); symGroup.Symbol = new Symbol("FOO1"); symGroup.SecurityID = new SecurityID("secid1"); msg.AddGroup(symGroup); symGroup.Symbol = new Symbol("FOO2"); symGroup.SecurityID = new SecurityID("secid2"); msg.AddGroup(symGroup); string msgString = msg.ToString(); string expected = String.Join(Message.SOH, new string[] { "146=2", "55=FOO1", "48=secid1", "55=FOO2", "48=secid2" }); StringAssert.Contains(expected, msgString); }
/** * 订单数据 * @return */ public static Message createOrderBookRequest() { QuickFix.FIX44.MarketDataRequest orderBookRequest = new QuickFix.FIX44.MarketDataRequest(); QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup(); noRelatedSym.Set(new Symbol("BTC/CNY")); orderBookRequest.AddGroup(noRelatedSym); orderBookRequest.Set(new MDReqID("123")); orderBookRequest.Set(new SubscriptionRequestType('1')); orderBookRequest.Set(new MDUpdateType(1));//0全部 。1增量 orderBookRequest.Set(new MarketDepth(0)); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group1 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group1.Set(new MDEntryType('0')); orderBookRequest.AddGroup(group1); QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup group2 = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup(); group2.Set(new MDEntryType('1')); orderBookRequest.AddGroup(group2); return orderBookRequest; }