2012-05-22 3 views
1

У меня есть текстовый файл с сообщениями FIX (все они и MarketDataIncrementalRefresh (Тип X)), и я пытаюсь найти способ использования QuickFIX в C# для создания сообщений MarketDataIncrementalRefresh из строк.Попытка конвертировать строку в MarketDataIncrementalRefresh

Любые предложения?

здесь пример того, как одна строка выглядит следующим образом:

1128 = 9 9 = 263 35 = Х 49 = СМЕ 34 = 10568699 52 = 20110110205433535 75 = 20110110 268 = 2 279 = 1 22 = 8 48 = 812201 83 = 1243518 107 = GEZ2 269 = 1 270 = 9825,0 271 = 153 273 = 205433000 336 = 2 346 = 14 1023 = 1 279 = 122 = 8 48 = 812201 83 = 1243519 107 = GEZ2 269 = 1270 = 9826,0 271 = 453 273 = 205433000 336 = 2 346 = 21 1023 = 3 10 = 058

ответ

2

В основном это, как его сделать:

string line = sr.ReadLine(); 
QuickFix42.MessageFactory fac = new QuickFix42.MessageFactory(); 
QuickFix.MsgType msgType = QuickFix.Message.identifyType(line); 
QuickFix.Message message = fac.create("", msgType.getObject() as string); 
message.setString(line, false); 

Фабрика создает соответствующий тип сообщения, как только его дали, так что в этом случае, так как тип был {X}, QuickFix.Message сообщение является указателем на MarketDataIncrementalRefresh а затем message.setString устанавливает остальную часть реквизита из данной строки.

1

в Java вы можете использовать либо

MessageUtils.parse(MessageFactory messageFactory, DataDictionary dataDictionary, java.lang.String messageString)

see here.

самого объекта Message, see here либо с помощью конструктора:

Message(java.lang.String string, DataDictionary dd, boolean validate) 

или метод fromString:

fromString(java.lang.String messageData, DataDictionary sessionDictionary, DataDictionary applicationDictionary, boolean doValidation) 

Вы должны быть в состоянии найти подобные вещи для QuickFix/п

Я нашел только this, что позволяет вам создавать сообщение из строки, используя co nstructor. Тем не менее это должно работать, если вы не можете найти эквивалент выше в выбранном вами API.

+0

Спасибо, что посмотрю quickfix/n. Я знаю, что в обертке quickfix .net нет MessageUtils.parse, надеюсь, quickfix/n имеет его. Что касается строки ctor в FIX.message, она работает, но все, что она делает, это создать сообщение. Мне нужно, чтобы создать правильный тип сообщения в моем случае MarketDataIncrementalRefresh, чтобы выразить это другими словами, можете ли вы найти способ конвертировать сообщение в MarketDataIncrementalRefresh? –

+0

попробуйте MessageCracker http://www.quickfixengine.org/quickfix/doc/html/class_f_i_x_1_1_message_cracker.html, я не уверен, как он работает именно в C#, посмотрите на этот пример. http://quickfixn.org/tutorial/receiving-messages Это приложение FIX, которое получает сообщение с сервера. Однако, если ваше приложение также наследует MessageCracker, прочитайте строку FIX в Message, как указано выше, а затем вызовите crack в Message. Переопределите соответствующий метод onMessage, то есть onMessage (MarketDataIncrementReferesh msg) {}, и вам должно быть хорошо идти. – robthewolf

Смежные вопросы