2016-05-17 11 views
1

私は購入/売りボタンと入札/入札表示で基本的な取引プラットフォームを開発しています。C#のQuickfixからのMassQuoteレスポンスの処理

MarketDataRequestを正常に送信しています - > MassQuote応答を取得します - > MassQuoteAcknowledgementを送信して更新を取得します。

私はちょうど私がそこに価格を確認

8=FIX.4.4|9=132|35=i|34=6|49=XXXXXXX|52=20160517-22:38:56.159|56=XXXXXXXXX|117=4|296=1|302=AP2|295=1|299=0|188=1.97471|190=1.97506|10=053| 

の下

例レスポンスQuickFixn

を使用して応答のうち、価格を取得する方法を見つけ出すことはできませんが、私はどのように把握することはできません

私のC#アプリでそれを抽出する。

public void HandleMassQuote(QuickFix.FIX44.MassQuote msg) 
{ 
    try 
    { 
     // Acknowledgement sending code removed 
     if (msg.IsSetField(new QuickFix.Fields.BidSpotRate())) 
     { 
       BuyPrice = msg.GetField(new QuickFix.Fields.BidSpotRate()).ToString(); 

       Trace.WriteLine("Bid Rate: " + BuyPrice); 
     } 
     if (msg.IsSetField(new QuickFix.Fields.OfferSpotRate())) 
     { 
       SellPrice = msg.GetField(new QuickFix.Fields.OfferSpotRate()).ToString(); 

       Trace.WriteLine("Offer Rate: " + SellPrice); 
     } 
    } 

    catch (Exception e) 
    { 
     Trace.WriteLine(e.ToString()); 
    } 
} 

私に正しい方向で指摘できる人はいますか?私は何かが分かりにくいと思っていますが、それでもまだ起きていません。

+0

'Trace.WriteLine(" Bid Rate: "+ BuyPrice);これはあなたが間違っているところです。オブジェクトを印刷しようとしていますが、実装によっては動作しないかもしれません。オブジェクトから価格を抽出し、それを印刷します。価格を抽出する方法があるかもしれません。 – DumbCoder

+1

@DumbCoder - 彼のコードでは、 'BuyPrice'は実際には文字列であり、オブジェクトではありません。 –

答えて

1

BidSpotRateSellSpotRateは繰り返しグループ内にありますが、それらはトップレベルにあるように抽出しようとしています。メッセージ。あなたはFieldNotFound例外を捕まえていますか?

ここにあなたのメッセージ本文です:だから

117=4  QuoteID 
296=1  NoQuoteSets (indicates 1 QuoteSet group will follow) 
    302=AP2 QuoteSetID (first tag of first QuoteSet) 
    295=1  NoQuoteEntries (indicates 1 QuoteEntry group will follow) 
    299=0  QuoteEntryID (first tag of first QuoteEntry) 
    188=1.97471 BidSpotRate 
    190=1.97506 SellSpotRate 

this pageをチェックしてください。

あなたはまず最初に(とのみ)QuoteSetsグループ、そのからの最初の(そして唯一の)QuoteEntriesグループ、およびそのグループにその後、コールgetFieldを抽出する必要があります。

+0

ありがとうございました! – Brett

関連する問題