我試圖從使用Python和Quickfix的FIX引擎中讀取數據,並設法通過修改使用的數據字典(必要的消息組)來使引擎識別自定義消息。閱讀使用Python Quickfix在自定義消息中重複組
我現在面臨的問題是讀取自定義消息中的重複組。該quickfix documentation顯示以下內容:
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
...想法嗎?
你的編輯是一個堅實的解決你的問題。與市場數據快照消息一樣,quickfix標準以與您類似的方式在內部調用quickfix.Group的自定義實例 - 只需遵守中繼器和分隔符的標準字段條目即可。一個技巧是組條目只需要實例化一次,並且可以在循環之外完成! (對於組入口單實例化模式,請參閱quickfix文檔中的模式:http://www.quickfixengine.org/quickfix/doc/html/python/repeating_groups_2.html)。 – chinnychinchin 2017-01-13 16:53:20