{{Quickfixn}} re question RE: Quickfixn Digest, Vol 10, Issue 23

Grant Birchmeier gbirchmeier at connamara.com
Tue Aug 14 07:43:58 PDT 2012


Your Initiator code looks alright at a glance.  (I don't know VB, but it
seems obvious enough.)

Looks like you want to write an Acceptor to test your app against.  I don't
recommend using SimpleAcceptor.  Instead, I'd look at Executor.  It's a
simple app that responds to every NewOrderSingle message with an
ExecutionReport message (it does this in the OnMessage/NewOrderSingle
handler).  I think you'll see how it works fairly quickly.  (For your
purposes, you can cut out all the non-FIX4.4 functions.)

Since you're not sending NewOrder messages, you'll want to trigger to the
ExecReport some other way.  You can easily move that ExecReport
creation/sending code into a standalone function, and maybe you can trigger
that on-demand via, say, a button or command-line command.

You can use the same config for both Init and Acc, but each will need it's
own [SESSION] section with ConnectionType specified.  The TargetCompID for
one should be the SenderCompID for the other.

One last detail: Do you have a specification for Bloomberg's ExecReport
interface?

FIX is a very slippery protocol, and no counterparty I've ever worked with
uses the default vanilla message formats.  I'd guess that Bloomberg has
added or altered fields, and they should have documentation detailing that.
 In that case, you'll need to update the DataDictionary to match Bloomberg.

Also, Bloomberg's config might require you to change some settings in your
config.  You should review the options in the QF/n config doc page.
http://quickfixn.org/tutorial/configuration

-Grant


On Tue, Aug 14, 2012 at 9:09 AM, Jonathan Hodgson <jhodgson at temenos.com>wrote:

>  Hi Mike and Grant,
>
>  Thanks for the earlier replies, I didn’t reply for a while as I was
> trying not to ask too many questions, I think it's starting to sink in the
> way it works , I include the original question and answers at the end.
>
>
>
> My objective is to be able to receive just execution reports from
> Bloomberg and use that data for a VB application. The Deals will be entered
> on a Bloomberg console and Bloomberg have told me they will send execution
> reports to me on a designated port and IP address. My initial understanding
> was to setup a tcp/ip listening socket and process the data (not using
> quickfix terminology here), but if I was to use the quick fix ending it
> looks like I could use an initiator like (using your recommendation) the
> program listed below and override the execution message once Bloomberg send
> it?
>
> Am I understanding this correctly and how can I get the simple acceptor
> example to send an execution report? Is this what Bloomberg run? Is this
> the equivalent of your Acceptor socket???
>
>
>
> I am using the following initiator vb.net program
>
> Imports QuickFix
>
> Module Module1
>
>     'QuickFIX engine environment variables
>
>     Public mySessionSettings As SessionSettings
>
>     Public myApplication As Application
>
>     Public myStoreFactory As FileStoreFactory
>
>     Public myMessageFactory As DefaultMessageFactory
>
>     Public myLogFactory As ScreenLogFactory
>
>     Public myInitiator As QuickFix.Transport.SocketInitiator
>
>     Public LoggedOn As Boolean
>
>
>
>     Sub Main()
>
>         mySessionSettings = New SessionSettings("C:\Source\Bespoke
> Software\TTFIX\QuickFixConsoleApp\QuickFixConsoleApplication\myconfig.cfg"
> )
>
>         myApplication = New Application
>
>         myStoreFactory = New FileStoreFactory(mySessionSettings)
>
>         myMessageFactory = New DefaultMessageFactory
>
>         myLogFactory = New ScreenLogFactory(True, True, True)
>
>         myInitiator = New QuickFix.Transport.SocketInitiator(myApplication,
> myStoreFactory, mySessionSettings, myLogFactory)
>
>         myInitiator.start()
>
>
>
>         Do
>
>             'Find something to do while waiting
>
>        Loop While LoggedOn = False
>
>     End Sub
>
>
>
> End Module
>
> ....
>
> Public Class Application
>
>     Implements QuickFix.Application
>
> Public Overloads Sub onMessage(ByVal message As
> QuickFix.FIX44.ExecutionReport, ByVal Param As QuickFix.SessionID)
>
>         System.Console.WriteLine()
>
>        ‘Call my VB application with deal information
>
>    End Sub
>
> End Class
>
> ...
>
> With the following config file
>
> [DEFAULT]
>
> ConnectionType=initiator
>
> ReconnectInterval=2
>
> FileStorePath=c:\fixfiles
>
>
>
> StartTime=00:00:00
>
> EndTime=00:00:00
>
> UseDataDictionary=N
>
> DataDictionary=C:\fixfiles\Dictionary\
>
> HttpAcceptPort=9911
>
> SocketConnectHost=127.0.0.1
>
> SocketConnectPort=5001
>
> FileLogPath=c:\fixfiles\logs\
>
>
>
> LogoutTimeout=5
>
> ResetOnLogon=Y
>
>
>
> # standard config elements
>
>
>
> [SESSION]
>
> # inherit ConnectionType, ReconnectInterval and SenderCompID from default
>
> BeginString=FIX.4.4
>
> SenderCompID=CLIENT1
>
> TargetCompID=SIMPLE
>
> HeartBtInt=30
>
>
>
> I am connecting to the simple client
>
>
>
>
>
>
>
> Original question and responses
>
> (question)
>
> I have been asked to use the quickfix engine if possible (with the
> possibility to utilise the full fix engine functionality at a later date)
> to just receive the execution report (and interface this with an
> application), Is it possible to do this from within an acceptor socket. Or
> should I just write a simple socket program monitoring the port and stream
> the raw fix execution report data to my application for processing?
>
> Thanks
>
> Jonathan
>
>
>
> (reply from Grant)
>
> " I'm not clear on your question.I think you're asking if you can use the
> engine just to parse an Execution report, and not actually to connect to an
> interface, right?  Yes, I think this is doable.
>
> I'm not sure where an "acceptor socket" would it in to your question.  In
> FIX terms, an Acceptor is a server and an Initiator is a client.  If your
> app is going to connect to a server and listen for ExecRpts, your app is
> going to need to be an Initiator. Your further questions about sockets are
> confusing me.  Are you connecting to a FIX counterparty or not?"
>
>
>
> (reply from Mike)
>
> "If you are connecting to bloomberg e.g. to receive dropcopies, you want
> to create an Initiator app.  It will handle all the socket connection and
> FIX session protocol details for you.  Take a look at the TradeClient
> example app that comes with QF/n to get started."
>
>
>
> O
>
>
>
>
>
> The information in this e-mail and any attachments is confidential and may be legally privileged.
> It is intended solely for the addressee or addressees. Any use or disclosure of the contents
> of this e-mail/attachments by a not intended recipient is unauthorized and may be unlawful.
> If you have received this e-mail in error please notify the sender.
> Please note that any views or opinions presented in this e-mail are solely those of the author and
> do not necessarily represent those of TEMENOS.
> We recommend that you check this e-mail and any attachments against viruses.
> TEMENOS accepts no liability for any damage caused by any malicious code or virus transmitted by this e-mail.
>
>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>


-- 
Grant Birchmeier
*Connamara Systems, LLC*
*Made-To-Measure Trading Solutions.*
Exactly what you need. No more. No less.*
*
http://connamara.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120814/0eaf6295/attachment-0002.htm>


More information about the Quickfixn mailing list