在C#中处理来自Quickfix的MassQuote响应



我正在开发一个带有买入/卖出按钮和买入/卖出显示的基本交易平台。

我正在成功发送MarketDataRequest->获得MassQuote响应->发回MassQuote确认并获取更新。

我只是不知道如何使用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());
     }
}

有没有人有过这方面的经验,可以为我指明正确的方向?我想我错过了一些显而易见的东西,但我还没有意识到

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

所以,看看这个页面。

您需要首先提取第一个(也是唯一一个)QuoteSets组,然后从中提取第一个和唯一一个QuoteEntries组,然后调用该组上的getField

最新更新