2011-07-25 4 views
3

C#でQuickFix44.NewOrderMultilegメッセージを処理するとき、どのようにして足の詳細を抽出しますか?C#でQuickFixを使用してマルチレグ注文の脚を読み取るにはどうすればよいですか?

私は今のところ唯一の市場データに適用され、および/または期限が切れ乱暴であるように思わ見つけた唯一のドキュメント: http://www.quickfixengine.org/quickfix/doc/html/csharp/repeating_groups_2.html

答えて

3

アプリケーションで行っているが、あなたは行かなければならないと同じ少し深い。

NewOrderMultileg -> InstrumentLeg/LegSipulations and other groups and fields. 

NoLegsを読み取ることによって、メッセージ内に存在脚の数を取得します。次に、グループを1つずつ読むメッセージを反復処理します。

メッセージ内のコンポーネントは、グループまたは単一である可能性があります。接尾辞Grpを見つけると、複数のグループが予想されます。説明のためにhereを参照してください。

同じコードを複数回書き込んでループしないでください。あなたは、そのメッセージにいくつのグループがあるか分かりません。

for (int i = 1; i <= groupCount; ++i) 
{ 
    message.getGroup(i, group); 
    group.get(MDEntryType); 
    group.get(MDEntryPx); 
    group.get(MDEntrySize); 
    group.get(orderID); 
    /* Do other stuff */ 
} 

メッセージ内のコンポーネント(各レッグに1つ)については、そのループ内のコンポーネントも読み取ります。

+0

あなたの例では 'group'の宣言は何ですか?そして、もし注文がLegOrdGrpとUndInstrmtGrpの両方を持っていたら、どうやって区別しますか? – Eric

+0

@Eric - グループはNewOrderMultileg :: NoLegsです。これはグループです** **足の数ではありません**。 2番目の質問では、特定のグループ(NewOrderMultileg :: NoUnderlyings)のグループ数**を読み込んだ後、**フルメッセージを繰り返し処理します。あなたの答えは – DumbCoder

+0

+1です。しかし、私が間違っていない場合、反復グループはゼロベースではありません(残念なことに)、あなたのループは[1、groupCount]に入る必要があります –