使用QuickFX / n进行每次报价/价格变动来接收出价/报价的最佳方法是什么

问题描述 投票:-1回答:1

我目前使用以下代码来获取当前价格。然后我在public void OnMessage(QuickFix.FIX44.MassQuote m, SessionID s)

上收到值
            QuickFix.FIX44.MarketDataRequest msg = new QuickFix.FIX44.MarketDataRequest();

            // Fill message fields
            msg.SetField(new MDReqID("001"));
            msg.SetField(new SubscriptionRequestType('1'));
            msg.SetField(new MarketDepth(0));
            msg.SetField(new MDUpdateType(MDUpdateType.FULL_REFRESH));

            // Add the MDEntryTypes group
            QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup noMDEntryTypes = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup();
            noMDEntryTypes.SetField(new MDEntryType('0'));
            msg.AddGroup(noMDEntryTypes);

            // Add the NoRelatedSym group
            QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup noRelatedSym = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup();
            noRelatedSym.SetField(new Symbol(pair.Insert(3, "/")));
            msg.AddGroup(noRelatedSym);


            Console.WriteLine("Sending Market Request...");
            if(!_priceSession.SendRedundantResendRequests) _priceSession.SendRedundantResendRequests = true;
            SendMessagePrice(msg);

但是这种方法对我来说并不理想。我希望能够在更新后立即查看当前价格。在这个小例子中,我想在控制台更新时立即将最新的买入/卖出价格Console.WriteLine()(我想一次只看到一个货币对的价格)。

如果有人可以提出更好的方法来更快,更轻松地获取数据,那就太好了。

谢谢你。

编辑:来自服务器的响应

8 = FIX.4.4 | 9 = 378 | 35 = i | 34 = 2 | 49 = XXXXX | 52 = 20200122-10:09:26.537 | 56 = QXXX | 117 = 1 | 296 = 1 | 302 = 001 | 295 = 5 | 299 = 0 | 106 = 0 | 134 = 2000000 | 135 = 1000000 | 188 = 1.10914 | 190 = 1.10916 | 299 = 1 | 106 = 10 | 134 = 1800000 | 135 = 1000000 | 188 = 1.10914 | 190 = 1.10916 | 299 = 2 | 106 = 11 | 134 = 1500000 | 135 = 500000 | 188 = 1.10914 | 190 = 1.10916 | 299 = 3 | 106 = 6 | 134 = 1000000 | 135 = 100000 | 188 = 1.10914 | 190 = 1.10916 | 299 = 4 | 106 = 6 | 134 = 2000000 | 135 = 5400000 | 188 = 1.10913 | 190 = 1.10917 | 10 = 113 |

编辑:过一会儿,我从交易对手收到此消息后收到此错误

收到的消息

传入:8 = FIX.4.49 = 50235 = W34 = 749 = XXXXX52 = 20200122-10:09:28.07456 = QXXX55 = EUR / USD262 = 001268 = 10269 = 0270 = 1.10914271 = 1700000299 = 1106 = 6269 = 0270 = 1.10914271 = 1000000299 = 3106 = 11269 = 0270 = 1.10914271 = 1000000299 = 0106 = 10269 = 0270 = 1.10913271 = 3000000299 = 4106 = 10269 = 0270 = 1.10913271 = 1500000299 = 2106 = 9269 = 1270 = 1.10916271 = 1000000299 = 0106 = 0269 = 1270 = 1.10916271 = 1000000299 = 1106 = 10269 = 1270 = 1.10916271 = 500000299 = 2106 = 11269 = 1270 = 1.10916271 = 100000299 = 3106 = 6269 = 1270 = 1.10917271 = 4500000299 = 4106 = 1310 = 232

事件:消息7被拒绝:标记多次出现(Field = 106)

c# quickfix fix-protocol quickfixn
1个回答
1
投票

由于您使用的是PrimeXM,因此市场数据更新的传达方式略有不同。他们正在发送MassQuote消息(msgtype i),您需要使用MassQuoteAck消息(msgtype b)进行回复。

© www.soinside.com 2019 - 2024. All rights reserved.