Search code examples
quickfixfix-protocol

QuickFix - Adding a NoLegs group to NewSingleOrder that doesn't seem to exist in the docs


I've been struggling with the Celer API but have managed to at least get prices.

I am however confused on the message structure they require for orders.

In their spec it states they need a NoLegs group but QuickFix only seems to allow NoAllocs, NoEvents, NoPartyIDs, NoSecurityAltId, NoStipulations, NoTradingSessions, NoUnderlyings.

Is there a way I can manually create my own group and add it the same way as setting a value to a tag like below:

QuickFix44.NewOrderSingle request44 = new QuickFix44.NewOrderSingle();

request44.setString(207, "XCEL");

Solution

  • For FIX 4.4 the NoLegs field - which gives the number of Legs in the InstrumentLeg group - is part of the New Order Cross message (s) and the New Order Multileg message (AB). It does not appear in the New Order Single message, because it does not belong there.

    Perhaps you simply need to use the New Order Cross or New Order Multileg message instead. If your counterparty does not support these messages, then you can tweak the data dictionary for New Order Single and rebuild QuickFIX to support the tweaked message.