0

I have a FIX format log file and a data structure I've built myself in C#. What I want to do is to run the log file in QuickFix and build my own event listener. In that listener, I'll convert the FIX types into the types I need and fill my DS.

I've been going through the QuickFix tutorials and examples, but couldn't figure it out. I don't need it to go through a network or anything like that.

Please help and thank you, Yonatan

Yonatan K
  • 600
  • 1
  • 5
  • 12
  • I am not sure that I understand you, quickfix provides a good data structure for the messages already – robthewolf Jan 31 '13 at 10:12
  • the part about my DS is actually irrelevant. I just want to use QuickFix to parse a FIX log file and fire the appropriate OnMessage events. – Yonatan K Jan 31 '13 at 11:52
  • This might be a duplicate of this question then http://stackoverflow.com/questions/13160132/how-to-replay-a-quickfix-log Additionally you should look at the test server that comes with the quickfix download (it does on java I presume it does on other distributions - if not you could use the java one). The test server will just act as a dummy server replying to your fix session in a simple way. I have adapted it to mimic one of our brokers more closely. – robthewolf Jan 31 '13 at 13:24
  • another related question http://stackoverflow.com/questions/14430806/reading-quickfix-log-file – robthewolf Jan 31 '13 at 13:26
  • I don't understand your use-case. Are you just doing post-session analysis? – Grant Birchmeier Jan 31 '13 at 14:57
  • I am building a trading simulator into which i'll be able to plug my automated trading algorithm. I want to use the FIX log as the traffic in the simulator and have my algorithm "act" in that trading environment. – Yonatan K Jan 31 '13 at 16:30
  • Sounds reasonable. A log would be good input for a fake market feed. – Grant Birchmeier Jan 31 '13 at 19:15

1 Answers1

1

None of the QuickFIX ports provide this functionality. At best, you could build a simple app that could read the logfile line-by-line and pass each line to QF's Message(string) constructor. To convert that Message to a more specific type, you can feed it to a more-specific-type constructor, such as ExecutionReport(Message).

The above are for the original C++ QF. The other ports (QF/J and QF/n) should have similar mechanisms.

You will not be able to use the MessageCracker to fire OnMessage() events because you're not actually listening on a session. Instead, I'd recommend using a switch or doing an overload based on message class arguments.

Grant Birchmeier
  • 17,809
  • 11
  • 63
  • 98