Python と Quickfix を使用して FIX エンジンから読み取ろうとしていますが、使用するデータ ディクショナリを (必要なメッセージ グループと共に) 変更することで、エンジンにカスタム メッセージを認識させることができました。
私が今直面している問題は、カスタム メッセージから繰り返しグループを読み取ることです。クイックフィックスのドキュメントには、次のことが示されています。
import quickfix
import quickfix42
noMDEntries = quickfix.NoMDEntries()
message.getField(noMDEntries)
group = quickfix42.MarketDataSnapshotFillRefresh.NoMDEntries()
MDEntryType = quickfix.MDEntryType()
MDEntryPx = quickfix.MDEntryPx()
MDEntrySize = quickfix.MDEntrySize()
orderID = quickfix.OrderID();
message.getGroup(1, group);
group.getField(MDEntryType);
group.getField(MDEntryPx);
group.getField(MDEntrySize);
group.getField(orderID);
...これは FIX メッセージには適しています。カスタムメッセージを次のように参照しようとすると:
group = quickfix.CustomMessage.NoMDEntries()
...属性エラーが出ます。
カスタム メッセージで繰り返しグループを読み取る方法に関するアイデアはありますか?
編集1:
ハックを見つけましたが、これを行うより良い方法があると確信しています...
for i in range(int(message.getField(NoMDEntries):
group = quickfix.Group(int(message.repeatingField), int(message.delimField))
message.getGroup(i+1, group)
print group.getField(MDEntryPx)
#do something with repeating fields etc
...アイデアはありますか?