我正在开发一个带有买入/卖出按钮和买入/卖出显示的基本交易平台。
我正在成功发送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());
}
}
有没有人有过这方面的经验,可以为我指明正确的方向?我想我错过了一些显而易见的东西,但我还没有意识到
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
。