谁能告诉我,为什么我们需要在市场数据请求中使用重复组。我们应该根据市场数据请求从接受方收到什么回复/答复。请告诉我们如何在接受方一方收到市场数据请求?为什么在通过FIX请求市场数据时需要重复组?
发送市场数据请求
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);
}
呃,上下文是什么?谁说你需要在市场数据请求中使用重复组,以及你在谈论什么请求? – 2012-08-15 07:46:08
他正在谈论FIX重复组我只是通过推理,一旦我的咖啡已经到达我的大脑,他会回到他身边 – 2012-08-15 07:54:38
删除'java'标签,因为这不一定与Java有任何关系。 – maba 2012-08-15 08:17:21