0

I am using quickfix in my window service application C#. Please help to shed some light on why I cannot exact the value of 269 (MDEntryType) from the 35=W that we are receiving.

20230725-07:36:02.762 : 8=FIX.4.4 9=566 35=W 56=INI-DEMO 49=SERVERDEMO34=994 52=20230725-07:36:02.654 262=20230727073534134USDSGD 55=USD/SGD 167=SPOT 64=20230727 7250=SP 268=6 269=0 270=341.46 271=1000000 278=20230727073534134USDSGD.86.29_B 269=1 270=341.63 271=1000000 278=20230727073534134USdSGD.86.29_B 269=0 270=341.457 271=3000000 278=20230727073534134USDSGD.86.29_C 269=1 270=341.633 271=3000000 278=20230727073534134USDSGD.86.29_C 269=0 270=341.451 271=5000000 278=20230727073534134USDSGD.86.29_D 269=1 270=341.639 271=5000000 278=20230727073534134USDSGD.86.29_D 60=20230725-07:36:02.654 10=044

Here’s the piece of code I am using:

var group =  new QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries();
MDEntryType MDEntryType = new MDEntryType();
MDEntryPx MDEntryPx = new MDEntryPx();

                message.getGroup(1, group);
                group.get(MDEntryType);
                group.get(MDEntryPx);
                
                message.getGroup(2, group);
                group.get(MDEntryType);
                group.get(MDEntryPx);`

I also tried to call like this:

QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries noMDEntries = new QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries();
MarketDataRequest.NoMDEntryTypes mdEntryType = new MarketDataRequest.NoMDEntryTypes();
mDEntryType = message.getField(new MDEntryType()).getValue();

But none of them works.

My application replied

35=j:
20230725-07:36:02.765 : 8=FIX.4.4 9=155 35=j 34=1015 49=INI-DEMO 52=20230725-07:36:02.764 56=SERVERDEMO 263=1 264=0 265=0 45=994 58=Conditionally Required Field Missing (269) 372=W 380=5 10=091 

How can I extract the value for tag269 and tag270. Is there another way to call the repeating tag269 under parent tag268?

I also tried to call like this:

QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries noMDEntries = new QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntries(); MarketDataRequest.NoMDEntryTypes mdEntryType = new MarketDataRequest.NoMDEntryTypes(); mDEntryType = message.getField(new MDEntryType()).getValue();

But none of them works.

Christoph John
  • 3,003
  • 2
  • 13
  • 23
Lynn
  • 1

1 Answers1

1

I am no expert in quickfixn, but reading their docs over at http://quickfixn.org/tutorial/repeating-groups.html it seems like you need to instantiate the NoMDEntriesGroup instead of just NoMDEntries.

So .e.g.

var group =  new QuickFix44.MarketDataSnapshotFullRefresh.NoMDEntriesGroup();

Reference: https://github.com/connamara/quickfixn/blob/ce2cdf6ddd966329874be9e6c8a6006c1214c28d/Messages/FIX44/MarketDataSnapshotFullRefresh.cs#L4891

Christoph John
  • 3,003
  • 2
  • 13
  • 23