1

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

我正在成功发送 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 回答