Is it possible to
create a QuickFIX application which acts as both an initiator and an
acceptor?
Here's the business
requirements for an application I'm looking to build:
Our trading office
has 10 traders who each need to be able to create and send orders to a single
broker. I have successfully created an initiator application which connects to
the broker and can send new orders (and handle cancel/replaces, etc) by polling
a database which is populated with orders by a trading order entry client
application which sits in front of each of the 10 traders. The flow is
basically as follows:
- A trader enters an
order and the details are written to the database as a new
order
- The QuickFIX
initiator application periodically (5x per second) polls the db for
new orders. If it finds them it sends them.
- As ExecReports
come back from the broker, the db is updated with order status
information
- The trader sees
updated order status by polling the db for order status
changes
I need to improve
the speed with which orders are entered into the system by traders and then
taken by the initiator application and passed along to the broker.
Is it
possible to create a single QuickFIX application which can act as an initiator
(to the broker) as well as an acceptor (to each of the trading clients)? In
other words, could I create my QuickFIX application such that it behaves like an
order router? Ideally it would accept FIX connections from each of the 10
trading client applications (which act as initiators), and then orders created
by the trading client would pass through to my QuickFIX "router", which would
then send it along directly to the broker. Or is this not a valid way of
configuration a QuickFIX application (i.e. it has to be either an initiator or
an acceptor, but it can't be both)?
I'm hoping that I
can have an acceptor object as well as an initiator object in the same
application and define them both in the config file. My goal is to eliminate
the latency introduced by the use of the db for communications. If this is not
a valid construct, am I correct in assuming that the best way to tackle this
requirement is to create an initiator application which connects to the broker,
and then create and use my own socket connections between my initiator
application and the 10 trading clients?
Many thanks in
advance for any advice,
John
--------------------------------------
jo...@ha...
|