1

Buy/Sell ボタンと Bid/Ask ディスプレイを備えた基本的な取引プラットフォームを開発しています。

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

QuickFixn を使用して応答から価格を取得する方法がわかりません

以下の応答例

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|

そこに価格が表示されますが、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());
     }
}

誰かが私を正しい方向に向けることができるこれに関する経験を持っていますか? 明らかな何かが欠けていると思いますが、まだ気づいていません

4

1 に答える 1

1

BidSpotRateおよびSellSpotRate繰り返しグループ内にありますが、メッセージの最上位にあるように抽出しようとしています。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

だから、このページをチェックしてください。

まず最初の (そして唯一の) QuoteSets グループを抽出し、そこから最初の (そして唯一の) QuoteEntries グループを抽出し、そのグループ呼び出す必要がありgetFieldます。

于 2016-05-18T15:05:11.913 に答える