Я пытаюсь подписаться на ценовой поток, используя следующий код:
Using l_msg As New QuickFix42.MarketDataRequest(New MDReqID(Date.Now.Ticks.ToString), New SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT_PLUS_UPDATES), New MarketDepth(1))
l_msg.setField(New MDUpdateType(1))
l_msg.setField(New AggregatedBook(False))
l_msg.setField(New NoMDEntryTypes(2))
l_msg.setField(New MDEntryType("0"c))
l_msg.setField(New MDEntryType("1"c))
l_msg.setField(New Symbol("EUR/USD"))
l_msg.setField(New NoRelatedSym(1))
Session.sendToTarget(l_msg, SENDER_COMP_ID.Value, TARGET_COMP_ID.Value)
End Using
Полученное сообщение FIX:
8 = FIX.4.2 9 =140 35 = V 34 = 2 49 = SENDER_COMP_ID 52 = 20110909-15: 44: 02,855 56 = TARGET_COMP_ID 55 = EUR / USD 146 = 1 262 = 634511906383686907 263 = 1 264 = 1 265 = 1 266 = N 267 = 2 269 =1 10 = 079
Мне нужно изменить порядок тегов, чтобы сразу после тега 146 появлялось 55. Я пытался вызывать setField
в другом порядке, но каждый раз это дает один и тот же результат.
Как правильно обрабатывать порядок тегов сообщений?
Правка - проблема решена:
Я следовал Предложение DumbCoder и создавал сообщениеиспользуя addGroup
вместо setField
.Следующий пример кода мне также помог: http://forexforums.dailyfx.com/fix-api-support/411090-fix-api-example.html
Примечание. Пример написан на Java и предназначен для QF44.