我们要求按照设置的顺序发送消息的前 3 个字段,即 QuoteReqID、OnBehalfOfCompID、Account。但是,当它们被添加到消息中时,它们会按数字升序重新排序,即 Account、OnBehalfOfCompID、QuoteReqID。使用该组,我们可以定义字段顺序,但我看不到为消息执行此操作的选项。有人知道我们如何实现这一目标吗?
var message = new QuoteRequest();
int[] fieldOrder = new[] {Tags.Currency, Tags.Symbol, Tags.SecurityType, Tags.CFICode, Tags.NoLegs, Tags.LegQty, Tags.LegFutSettDate, Tags.LegSecuritySubType};
message.SetField(new QuoteReqID(stream.QuoteRequestId));
message.SetField(new OnBehalfOfCompID(_compId));
message.SetField(new Account(_accountId));
var group = new Group(Tags.NoRelatedSym, 0, fieldOrder);
group.SetField(new Currency(stream.Ccy));
group.SetField(new Symbol(stream.Ccy1 + "/" + stream.Ccy2));
group.SetField(new SecurityType("FOR"));
group.SetField(new CFICode("FORWARD"));
group.SetField(new NoLegs(1));
group.SetField(new LegQty(stream.Amount));
group.SetField(new LegFutSettDate(stream.FutSettDate));
group.SetField(new LegSecuritySubType("TOD"));
message.AddGroup(group);
QuickFix.Session.SendToTarget(message, _ratesSession.SessionId);