任何人都可以告诉我,为什么我们需要在市场数据请求中使用重复组。我们应该从接受者那里收到针对市场数据请求的回复/回复。请告诉我们如何在接受方接收市场数据请求?
发送市场数据请求
public void sendMarketDataRequest(SessionID sessionId, String request, int ord){ // request new or old
String bankName = "HBL";
String mdReqCcyPair = "EURUSD";
String mkdreqId = "010qwerty";
SubscriptionRequestType type = new SubscriptionRequestType('1');
if(request.equals("new")){
reqId.put(mkdreqId, mkdreqId);
}else{
type.setValue('2');
}
quickfix.fix44.MarketDataRequest mdRequest = new quickfix.fix44.MarketDataRequest(new MDReqID(mkdreqId), type, new MarketDepth(1));
mdRequest.setField(new quickfix.field.Symbol(mdReqCcyPair));
mdRequest.setField(new Product(2));
mdRequest.setField(new NoRelatedSym(1));
mdRequest.setField(new MDUpdateType(0));
mdRequest.setField(new NoMDEntryTypes(3));
mdRequest.setField(new StringField(582, "1"));
quickfix.fix44.MarketDataSnapshotFullRefresh.NoMDEntries group = new quickfix.fix44.MarketDataSnapshotFullRefresh.NoMDEntries();
group.set(new MDEntryType('0'));
group.set(new MDEntryPx(12.32));
group.set(new MDEntrySize(10));
group.set(new OrderID("OrderId"));
mdRequest.addGroup(group);
group.set(new MDEntryType('1'));
group.set(new MDEntryPx(12.32));
group.set(new MDEntrySize(10));
group.set(new OrderID("OrderId"));
mdRequest.addGroup(group);
qCcyPair.substring(0, 3);
mdRequest.setField(new Currency(mdReqDealtCcy));
mdRequest.setField(new NoPartyIDs(1));
mdRequest.setField(new PartyID(bankName));
try{
boolean re = Session.sendToTarget(mdRequest, sessionId);
System.out.println(mdRequest);
System.out.println(re);
}catch(Exception e){e.printStackTrace();}
}
收到结束代码
public void onMessage( quickfix.fix44.MarketDataRequest message, SessionID sessionID )
throws FieldNotFound, UnsupportedMessageType, IncorrectTagValue {
System.out.println("On Message: "+message);
}
答案 0 :(得分:4)
市场数据请求通常不用于单个工具;您通常需要一组仪器的市场数据。重复组中的每个组代表您想要数据的工具。响应将取决于您的对手方以及您上次完成市场数据刷新的时间(通常为每日)。在您的初始请求后,然后按固定的时间表,您将收到完整的市场数据刷新消息。如果您的对手方支持日内更新模型,您将收到快照刷新消息,这些消息是部分数据刷新。快照消息仅提供自上次刷新(全部或部分)以来已更改的市场数据的更新,并且旨在成为较小的消息,因此希望降低延迟。并非所有交易对手都支持部分刷新。如果您在接收方那边接收市场数据请求(显然通常在卖方),您应首先提供完整的市场数据更新,涵盖所有要求的工具详细信息。是否支持增量更新是一项业务决策。