Я пытаюсь читать из движка FIX с помощью Python и Quickfix, и мне удалось заставить движок распознавать пользовательские сообщения, изменив используемый словарь данных (с необходимыми группами сообщений).
Проблема, с которой я сейчас сталкиваюсь, заключается в чтении повторяющихся групп из пользовательских сообщений. В документации по быстрому исправлению показано следующее:
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
...есть у кого идеи?