2014-09-25 23 views
3

我找不到任何在網絡上應該很簡單的事例。如何訪問QuickFix的通用組api?

如何在QuickFix中定義通用組?我使用的是Python的綁定和定義MDIncrementalRefresh組這樣的:

group = fix42.MarketDataIncrementalRefresh().NoMDEntries()

不過我想讀一組不標準FIX4.2,叫NoChartData。因此,我不能稱之爲它,因爲它不存在於我的FIX引擎中(我正在推遲重建QF - 請參閱How to redefine QuickFix classes for custom groups?

我有一些想法,QF有一個構造函數,所以我可以創建一個通用組對象並向其添加字段。有誰知道如何在飛行中定義組,而無需重建QF類?

謝謝

回答

2

Python不是我的強項,但是這應該會讓人想到。您可以使用任意組計數器字段和任意組條目分隔符創建一個新組。

您在MarketDataIncrementalRefresh消息給的NoMDEntries示例將具有計數器字段= 268(NoMDEntries)和條目定界符= 278(MDEntryID)。 在這個例子中,您將創建組是這樣的:

group = quickfix.Group(268, 278)

要創建你所需要的非標組,將「268」用適當的組計數器場數,並取代「278」與適當的入口分隔符。

要設置組的田地,使用下面的(再次,作爲一個例子爲MarketDataIncrementalRefresh):

// Set the MDEntryID, which is the group entry delimiter 
group.setField(quickfix.StringField(278, "id1")) 

// Set the DeskID 
group.setField(quickfix.StringField(284, "tradedesk1")) 
+1

這正是我需要的,謝謝!正如你所說的,通過指定計數器字段和輸入分隔符,我可以定義組並從中獲取所有字段。 (我不需要你的例子的第二部分,因爲我試圖解析一個團隊進來,而不是創建一個出去。)我認爲這將是容易的!隨着對兩行代碼的更改,我能夠克服這3天的障礙。你搖滾。 – Wapiti 2014-09-26 04:22:22

+1

我很高興它的工作! – 2014-09-26 13:03:43