<div><font color="#000000"><font>Your Initiator code looks alright at a glance. (I don't know VB, but it seems obvious enough.)<br></font></font></div><div><font color="#000000"><font><br></font></font></div><div><font color="#000000"><font>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). </font></font><font color="#000000"><font> I think you'll see how it works fairly quickly. </font></font><font color="#000000"><font>(For your purposes, you can cut out all the non-FIX4.4 functions.) </font></font><font color="#000000"><font><br>
</font></font></div><div><font color="#000000"><font><br></font></font></div><div><font color="#000000"><font>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.<br>
</font></font></div><div><font color="#000000"><font><br></font></font></div><div><font color="#000000"><font>You can use the same config for both Init and Acc, but each will need it's own [SESSION] section with </font></font>ConnectionType specified. The TargetCompID for one should be the SenderCompID for the other.<font color="#000000"><font><br>
</font></font></div><div><font color="#000000"><font><br></font></font></div><div><font color="#000000"><font>One last detail: </font></font><font color="#000000"><font>Do you have a specification for Bloomberg's ExecReport interface?<br>
</font></font></div><div><font color="#000000"><font><br></font></font></div><div><font color="#000000"><font>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.<br>
</font></font></div><div><font color="#000000"><font><br></font></font></div><div><font color="#000000"><font>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.<br>
</font></font></div><div><a href="http://quickfixn.org/tutorial/configuration">http://quickfixn.org/tutorial/configuration</a><font color="#000000"><font><br></font></font></div><div><br></div><div>-Grant</div><div><br></div>
<div><br></div><div class="gmail_quote">On Tue, Aug 14, 2012 at 9:09 AM, Jonathan Hodgson <span dir="ltr"><<a href="mailto:jhodgson@temenos.com" target="_blank">jhodgson@temenos.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-GB" link="blue" vlink="purple">
<div>
<p>Hi Mike and Grant, </p>
<p> 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.</p>
<p> </p>
<p>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?</p>
<p>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???</p>
<p> </p>
<p>I am using the following initiator <a href="http://vb.net" target="_blank">vb.net</a> program</p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">Imports</span><span style="font-size:9.5pt;font-family:Consolas"> QuickFix</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">Module</span><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:#2b91af">Module1</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:green">'QuickFIX engine environment variables </span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">Public</span> mySessionSettings
<span style="color:blue">As</span> <span style="color:#2b91af">SessionSettings</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Public</span> myApplication <span style="color:blue">As</span>
<span style="color:#2b91af">Application</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Public</span> myStoreFactory <span style="color:blue">As</span>
<span style="color:#2b91af">FileStoreFactory</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Public</span> myMessageFactory <span style="color:blue">
As</span> <span style="color:#2b91af">DefaultMessageFactory</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Public</span> myLogFactory <span style="color:blue">As</span>
<span style="color:#2b91af">ScreenLogFactory</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Public</span> myInitiator <span style="color:blue">As</span> QuickFix.Transport.<span style="color:#2b91af">SocketInitiator</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Public</span> LoggedOn <span style="color:blue">As</span>
<span style="color:blue">Boolean</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Sub</span> Main()</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> mySessionSettings =
<span style="color:blue">New</span> <span style="color:#2b91af">SessionSettings</span>(<span style="color:#a31515">"C:\Source\Bespoke Software\TTFIX\QuickFixConsoleApp\QuickFixConsoleApplication\myconfig.cfg"</span>)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> myApplication =
<span style="color:blue">New</span> <span style="color:#2b91af">Application</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> myStoreFactory =
<span style="color:blue">New</span> <span style="color:#2b91af">FileStoreFactory</span>(mySessionSettings)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> myMessageFactory =
<span style="color:blue">New</span> <span style="color:#2b91af">DefaultMessageFactory</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> myLogFactory =
<span style="color:blue">New</span> <span style="color:#2b91af">ScreenLogFactory</span>(<span style="color:blue">True</span>,
<span style="color:blue">True</span>, <span style="color:blue">True</span>)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> myInitiator =
<span style="color:blue">New</span> QuickFix.Transport.<span style="color:#2b91af">SocketInitiator</span>(myApplication, myStoreFactory, mySessionSettings, myLogFactory)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> myInitiator.start()</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Do</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:green">'Find something to do while waiting</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Loop</span> <span style="color:blue">While</span> LoggedOn =
<span style="color:blue">False</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">End</span> <span style="color:blue">Sub</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">End</span><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Module</span></span></p>
<p class="MsoNormal" style="text-autospace:none">....<span style="font-size:9.5pt;font-family:Consolas;color:blue">
</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">Public</span><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Class</span> <span style="color:#2b91af">Application</span></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Implements</span> QuickFix.<span style="color:#2b91af">Application</span></span></p>
<p>Public Overloads Sub onMessage(ByVal message As QuickFix.FIX44.ExecutionReport, ByVal Param As QuickFix.SessionID)</p>
<p> System.Console.WriteLine()</p>
<p> ‘Call my VB application with deal information</p>
<p> End Sub</p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">End</span><span style="font-size:9.5pt;font-family:Consolas">
<span style="color:blue">Class</span></span></p>
<p>...</p>
<p>With the following config file</p>
<p>[DEFAULT]</p>
<p>ConnectionType=initiator</p>
<p>ReconnectInterval=2</p>
<p>FileStorePath=c:\fixfiles</p>
<p> </p>
<p>StartTime=00:00:00</p>
<p>EndTime=00:00:00</p>
<p>UseDataDictionary=N</p>
<p>DataDictionary=C:\fixfiles\Dictionary\</p>
<p>HttpAcceptPort=9911</p>
<p>SocketConnectHost=127.0.0.1</p>
<p>SocketConnectPort=5001</p>
<p>FileLogPath=c:\fixfiles\logs\</p>
<p> </p>
<p>LogoutTimeout=5</p>
<p>ResetOnLogon=Y</p>
<p> </p>
<p># standard config elements</p>
<p> </p>
<p>[SESSION]</p>
<p># inherit ConnectionType, ReconnectInterval and SenderCompID from default</p>
<p>BeginString=FIX.4.4</p>
<p>SenderCompID=CLIENT1</p>
<p>TargetCompID=SIMPLE</p>
<p>HeartBtInt=30</p>
<p> </p>
<p>I am connecting to the simple client</p>
<p> </p>
<p> </p>
<p> </p>
<p><span lang="EN-US">Original question and responses</span></p>
<p><span>(question)</span></p>
<p class="MsoNormal"><span>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?</span></p>
<p class="MsoNormal"><span>Thanks</span></p>
<p class="MsoNormal"><span>Jonathan</span></p>
<p><span> </span></p>
<p><span>(reply from Grant)</span></p>
<p><span>" 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.</span></p>
<p><span>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?"
</span></p>
<p><span> </span></p>
<p><span>(reply from Mike)</span></p>
<p><span>"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." </span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">O</p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"> </p>
</div>
</div>
<pre>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.
</pre><br>_______________________________________________<br>
Quickfixn mailing list<br>
<a href="mailto:Quickfixn@lists.quickfixn.com">Quickfixn@lists.quickfixn.com</a><br>
<a href="http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com" target="_blank">http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div><font><span style="background-color:#000000"><span style="background-color:#ffffff">Grant Birchmeier</span></span></font><font><font color="#3333ff"><br></font></font></div>
<div><font><b><font color="#3333ff"><span style="background-color:#ffcc33"><span style="background-color:#ffcc66"><span style="background-color:#ffcc99"><span style="background-color:#ffffff"><span style="background-color:#ffcc00">Connamara Systems, LLC</span></span></span></span></span></font></b></font><br>
</div><div><font><b>Made-To-Measure Trading Solutions.</b></font></div><div><font>Exactly what you need. No more. No less.</font><font><b><font color="#3333ff"><br></font></b></font></div><div><font><a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
</font></div><br>