MarketDataRequest marketDataRequest = new MarketDataRequest(); String reqID = symbol+new Date().getTime(); //unique ID marketDataRequest.setString(MDReqID.FIELD,reqID); // set ID char requestType = SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES; marketDataRequest.setChar(SubscriptionRequestType.FIELD,requestType); // set update type marketDataRequest.setInt(MarketDepth.FIELD, 0); marketDataRequest.setInt(MDUpdateType.FIELD, 0); MarketDataRequest.NoMDEntryTypes entryTypes = new MarketDataRequest.NoMDEntryTypes(); // create group to request both bid and offers entryTypes.set(new MDEntryType(MDEntryType.BID)); marketDataRequest.addGroup(entryTypes); entryTypes.set(new MDEntryType(MDEntryType.OFFER)); marketDataRequest.addGroup(entryTypes); MarketDataRequest.NoRelatedSym noRelatedSym = new MarketDataRequest.NoRelatedSym(); // create group to add list of symbols noRelatedSym.set(new Symbol(getSymbol(symbol))); marketDataRequest.addGroup(noRelatedSym);
private static Message marketDataRequest(String symbol, char subscriptionRequestType) { MarketDataRequest tickerRequest = new MarketDataRequest(); NoRelatedSym noRelatedSym = new NoRelatedSym(); noRelatedSym.set(new Symbol(symbol)); tickerRequest.addGroup(noRelatedSym); tickerRequest.set(new MDReqID("123")); // any value tickerRequest.set(new SubscriptionRequestType(subscriptionRequestType)); tickerRequest.set(new MarketDepth(0)); addMDType(tickerRequest, MDEntryType.BID); addMDType(tickerRequest, MDEntryType.OFFER); addMDType(tickerRequest, MDEntryType.TRADE); addMDType(tickerRequest, MDEntryType.INDEX_VALUE); addMDType(tickerRequest, MDEntryType.OPENING_PRICE); addMDType(tickerRequest, MDEntryType.CLOSING_PRICE); addMDType(tickerRequest, MDEntryType.SETTLEMENT_PRICE); addMDType(tickerRequest, MDEntryType.TRADING_SESSION_HIGH_PRICE); addMDType(tickerRequest, MDEntryType.TRADING_SESSION_LOW_PRICE); addMDType(tickerRequest, MDEntryType.TRADING_SESSION_VWAP_PRICE); addMDType(tickerRequest, MDEntryType.IMBALANCE); addMDType(tickerRequest, MDEntryType.TRADE_VOLUME); addMDType(tickerRequest, MDEntryType.OPEN_INTEREST); return tickerRequest; }
public static MarketDataRequest buildMarketDataRequest( String mdReqId, String symbol, char subscriptionRequestType, int marketDepth, int mdUpdateType, char... mdEntryTypes) { MarketDataRequest message = new MarketDataRequest(); NoRelatedSym symGroup = new NoRelatedSym(); symGroup.set(new Symbol(symbol)); message.addGroup(symGroup); message.set(new MDReqID(mdReqId)); message.set(new SubscriptionRequestType(subscriptionRequestType)); message.set(new MarketDepth(marketDepth)); // message.set(new MDUpdateType(mdUpdateType)); for (char mdEntryType : mdEntryTypes) { NoMDEntryTypes entryTypesGroup = new NoMDEntryTypes(); entryTypesGroup.set(new MDEntryType(mdEntryType)); message.addGroup(entryTypesGroup); } return message; }
public MarketDataRequest createMarketDataRequest( String mdReqId, String symbol, char subscriptionRequestType, int marketDepth, int mdUpdateType, char... mdEntryTypes) { MarketDataRequest message = new MarketDataRequest(); NoRelatedSym symGroup = new NoRelatedSym(); symGroup.set(new Symbol(symbol)); message.addGroup(symGroup); message.set(new MDReqID(mdReqId)); message.set(new SubscriptionRequestType(subscriptionRequestType)); message.set(new MarketDepth(marketDepth)); message.set(new MDUpdateType(mdUpdateType)); for (char mdEntryType : mdEntryTypes) { NoMDEntryTypes entryTypesGroup = new NoMDEntryTypes(); entryTypesGroup.set(new MDEntryType(mdEntryType)); message.addGroup(entryTypesGroup); } return message; }