Menu
  • HOME
  • TAGS

QuickFix/N how best to deal with multiple FIX versions

c#,quickfix,fix

The problem is that is that FIX message types from different versions don't have any relationship except for their base class - at the lowest level, all FIX messages derive from Message. You need to take the information you need from a message, package it in such a way that...

Connecting F# app to FIXImulator

sockets,f#,fix

One issue was, as suggested in a comment, target IP address in the first config file. I had to change it from 0.0.0.0 back to 127.0.0.1. Apart from that I found two other problems in the code above. One problem was that I tried to get the session IDs before...

QuickFIX/J mixing two different versions

java,quickfix,fix,quickfixj

One way to do this is to customize the Data Dictionary FIX4.4.xml and replace the fields in it that can sometimes be in FIX 5.0 format. Eg by copying them from FIX5.0.xml and placing them in the proper messages in FIX4.4.xml. From the QuickFIX/J user manual: The simplest customization is...

Is it possible to change cast of an object dynamically?

c#,quickfix,fix

You have some options: dynamic You can use dynamic keyword to make "duck typing": dynamic order= newOrderSingle; order.Set(new Price(limitPrice)); Unfortunately, you loose intellisense and will get RuntimeBinderException when order has not such a method (is of type FIX42 f.e.). GenericInvoker You can use my library: newOrderSingle.DetermineType() .When((QuickFix.FIX42 msg) => msg.Set(/*...

Confused about layers of FIX Protocol

protocols,network-protocols,fix

FIX Session Layer is the part of the protocol responsible for the session framework. Things like authentication, connection control etc... FIX Application Layer is the part responsible for actual application information. Things like order status, requests etc... FIX Presentation Layer is the definition of how the protocol is actually commmunicated....

Tag not defined for this message type for MarketDataRequest

fix

Case 1: This is not a FIX or QuickFIX error. Your message was valid per FIX protocol, but it's not what your counterparty expects. That error message in tag 58 was set by your counterparty. It sounds like you haven't read your counterparty's documentation that tells you what fields they...

QuickFix/N sending error message before getting to crack

c#,quickfix,fix

I don't see field 64 mentioned in the definition of MarketData SnapShot full refresh message for FIX4.4. Not just that, it appears more than once in the reply from the "established" API. Field 64 is the field for Settlement Date... It may be that the counterparty is sending more data...

Financial Information eXchange web platform (QuickFix/J)

java,activemq,fix,quickfixj

Not all counterparties run acceptors but all of the ones that I have ever worked with (50 or so) are so you will (probably) not need to run an acceptor. Usually each client has its own CompID pair, given by the counterparty, and it is those details that (uniquely)...

Getting Session Properties (Username and Password) for QuickFix/n

c#,quickfix,fix,quickfixj

You are on the right track with String username = sessionSettings.getString(sessionId, "Username");, but the method call in QuickFIX/n is slightly different. The call is more like sessionSettings.Get(sessionId).GetString("Username");. See this example: var configuration = new System.Text.StringBuilder().AppendLine("[ DEFAULT ]") .AppendLine("ConnectionType=initiator") .AppendLine("[SESSION]") .AppendLine("BeginString=FIX.4.4") .AppendLine("SenderCompID=Sender") .AppendLine("TargetCompID=Target") .AppendLine("Username=Gandalf")...

memory mapping files for high frequency trading?

ipc,mmap,quickfix,fix,memory-mapping

Memory mapping is really fast and it gives you an area that bot processes can access. The problem that arises is: How do the processes know that data has changed? You could add a kind of version number that increases as data changes, but with all additional locking across processes...

Implementing a FIX client through QuickFixJ throws NoSuchMethodError

java,quickfix,fix,quickfixj

Importing the second example as-is instead of trying to implement into my own Eclipse project worked. The problem appears to have been caused by using an incorrect import from the quickfix-all jar causing the wrong method to be called during start up.

capturing incoming FIX messages which fail QuickFix validation

quickfix,fix

Validation via XML spec file is in session level processing. So, there is not suitable hook for this. On the other hand, there are some configuration parameters; UseDataDictionary : eliminates validation ValidateUserDefinedFields : eliminates user defined field's validation look for detailed descriptions edit: If your real problem is monitoring rejections,...

Rejection of FIX order modification: what happens to the original order?

fix,trading

TL;DR You should consult your counterparty's FIX specification document(s) for the exact behavior to expect from that specific counterparty when an attempt to replace a working order is rejected. Long answer Assuming nothing has happened to the original order 11=blah.0 between the time it was placed and the OrderCancelReplaceRequest with...

quickfix.Message cannot be cast to quickfix.fix50sp2.Message

java,quickfix,fix,quickfixj

When the begin string is FIXT.1.1 quickfix will treat the message as FIX50 with the DefaultMessageFactory. So it will automatically generate a FIX.5.0 message. The resolution is to write your own custom message factory to generate a SP2 message when the transport is FIXT.1.1. Here's how I did it. Write...

SocketInitiator getSession give session not at the same order as in the config file

java,session,quickfix,fix,quickfixj

It is normal behavior that the sessions are not ordered as the SessionID->Sessions are stored in a HashMap and converted to a List on the getSessions() method. from SessionConnector (superclass of SocketInitiator) public ArrayList<SessionID> getSessions() { return new ArrayList<SessionID>(sessions.keySet()); } (As a reminder, a HashMap doesn't guarantee order of the...