У нас есть требование отправлять первые 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);
Message
илиFieldMap
, которому вы можете передать порядок полей так же, как вы делали это сgroup
. Но, как отметили Грант и Киаран, ваш пробег может варьироваться, поскольку на самом деле это не стандартная вещь, которая там происходит. - person Christoph John   schedule 18.02.2021