2012-02-15 11 views
1

私は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 

...アイデア誰ですか?

+0

あなたの編集は、あなたの質問に対する確かな解決策です。市場データのスナップショットメッセージのようなクイックフィックス標準は、リピータとデリミタの標準的なフィールドエントリを遵守しているのと同じように、quickfix.Groupのカスタムインスタンスを内部的に呼び出します。 1つのヒントは、グループエントリは一度だけインスタンス化する必要があり、ループの外で実行できることです。 (グループエントリの単一インスタンシエーションパターンについては、クイックフィックスドキュメントのパターンを参照してください:http://www.quickfixengine.org/quickfix/doc/html/python/repeating_groups_2.html)。 – chinnychinchin

答えて

0

あなたが提供したPythonスタブについてはわかりませんが、おそらく問題があると思います。ここで

group = quickfix42.MarketDataSnapshotFillRefresh.NoMDEntries() 

は、オブジェクト(おそらくそれをMarketDataSnapshotFillRefreshをつづりの間違っている)MarketDataSnapshotFullRefresh内部の内部クラスのオブジェクトを取得します。

group = quickfix.CustomMessage.NoMDEntries() 

ここでは、クラスオブジェクトではなく、繰り返しグループ内の繰り返しグループの数(カウント)が表示されます。

Quickfixは、グループメンバーをブラウズするgetGroupメソッドを提供しているので、自分で行うのではなく、getGroupメソッドを使用します。

+0

ポインタのおかげで...しかし、私は辞書からCustomMessageにアクセスすることができません...どのようにフィールドやカスタムメッセージのグループを参照できますか? – pynoob

関連する問題