{{Quickfixn}} Quickfix/N vs QuickFix.Net Wrapper

Peter van Lonkhuyzen Peter at nutcracker.co.za
Tue Jan 24 23:43:55 PST 2012


Hi Grant

Thanks for the reply

1)      As stated not urgent.

2)      I am more than willing to contribute, and If I do change anything while developing I will pass it back, but at the moment I don't have the time to do additional development outside what I need.

3)      These are the problems I have come upon till now

a.       There are no classes for FIXT1.1, We have a situation where we have to add passwords to logon messages on certain sessions, I do this in the toAdmin method of my fix Application. Under QuickFix.Net I just compared the class type of the message (The code is Oxygen)
  if (Message is Logon) then
due there being no FIXT classes the code now looks like this.
  var f := new MsgType;
  if message.Header.IsSetField(f) then
    Message.Header.GetField(f);
  if f.getValue='A' then

b.  In Fix 5SP2 there now is the ApplicationRequestMessage which I don't seem to find, I have coded it like this
  var cmd := new QuickFix.Message;
  cmd.header.SetField(new MsgType('BW'));
  var id :=datetime.Now.ToString('hhmmss')+IDno.ToString;
  cmd.SetField(new ApplReqID(Id));
  IdNo:=IDNo+1;
  cmd.SetField(new ApplReqType(0));
  var req := new &Group(1351,1355,[1355,1182,1183,0]);
  req.SetField(new RefApplID(ID));
  req.SetField(new ApplBegSeqNum(&from));
  req.SetField(new ApplEndSeqNum(&to));
  cmd.addgroup(req);

c.  The response that I get from this message is also being rejected by quickfixn due to an invalid value on msgtype even though it is in the XML file. Here are the log extracts.
20120124-14:06:18.594 : 8=FIXT.1.19=11435=BW34=92149=NTCP0152=20120124-14:06:18.58956=JSEPTPGW1346=04061801347=01351=11355=04061801182=01183=010=253
20120124-14:06:18.595 : 8=FIXT.1.19=17935=BX49=JSEPTPGW56=NTCP0134=96152=20120124-14:07:37.7641128=91353=NTCP01-11346=04061801347=01351=11355=4061801182=01183=01354=158=Requested Trades are Not Available10=129
20120124-14:06:18.661 : 8=FIXT.1.19=13635=334=92249=NTCP0152=20120124-14:06:18.66056=JSEPTPGW45=96158=Value is incorrect (out of range) for this tag371=35372=BX373=510=232
But the XML that I use definitely has BX as a valid value for MsgType.
  <field number='35' name='MsgType' type='STRING'>
   <value enum='0' description='HEARTBEAT' />
   <value enum='1' description='TESTREQUEST' />
   <value enum='2' description='RESENDREQUEST' />
   <value enum='3' description='REJECT' />
   <value enum='4' description='SEQUENCERESET' />
   <value enum='5' description='LOGOUT' />
   <value enum='6' description='IOI' />
   <value enum='7' description='ADVERTISEMENT' />
   <value enum='8' description='EXECUTIONREPORT' />
   <value enum='9' description='ORDERCANCELREJECT' />
   <value enum='A' description='LOGON' />
   <value enum='AA' description='DERIVATIVESECURITYLIST' />
   <value enum='AB' description='NEWORDERMULTILEG' />
   <value enum='AC' description='MULTILEGORDERCANCELREPLACE' />
   <value enum='AD' description='TRADECAPTUREREPORTREQUEST' />
   <value enum='AE' description='TRADECAPTUREREPORT' />
   <value enum='AF' description='ORDERMASSSTATUSREQUEST' />
   <value enum='AG' description='QUOTEREQUESTREJECT' />
   <value enum='AH' description='RFQREQUEST' />
   <value enum='AI' description='QUOTESTATUSREPORT' />
   <value enum='AJ' description='QUOTERESPONSE' />
   <value enum='AK' description='CONFIRMATION' />
   <value enum='AL' description='POSITIONMAINTENANCEREQUEST' />
   <value enum='AM' description='POSITIONMAINTENANCEREPORT' />
   <value enum='AN' description='REQUESTFORPOSITIONS' />
   <value enum='AO' description='REQUESTFORPOSITIONSACK' />
   <value enum='AP' description='POSITIONREPORT' />
   <value enum='AQ' description='TRADECAPTUREREPORTREQUESTACK' />
   <value enum='AR' description='TRADECAPTUREREPORTACK' />
   <value enum='AS' description='ALLOCATIONREPORT' />
   <value enum='AT' description='ALLOCATIONREPORTACK' />
   <value enum='AU' description='CONFIRMATION_ACK' />
   <value enum='AV' description='SETTLEMENTINSTRUCTIONREQUEST' />
   <value enum='AW' description='ASSIGNMENTREPORT' />
   <value enum='AX' description='COLLATERALREQUEST' />
   <value enum='AY' description='COLLATERALASSIGNMENT' />
   <value enum='AZ' description='COLLATERALRESPONSE' />
   <value enum='B' description='NEWS' />
   <value enum='BA' description='COLLATERALREPORT' />
   <value enum='BB' description='COLLATERALINQUIRY' />
   <value enum='BC' description='NETWORKCOUNTERPARTYSYSTEMSTATUSREQUEST' />
   <value enum='BD' description='NETWORKCOUNTERPARTYSYSTEMSTATUSRESPONSE' />
   <value enum='BE' description='USERREQUEST' />
   <value enum='BF' description='USERRESPONSE' />
   <value enum='BG' description='COLLATERALINQUIRYACK' />
   <value enum='BH' description='CONFIRMATIONREQUEST' />
   <value enum='BI' description='TRADINGSESSIONLISTREQUEST' />
   <value enum='BJ' description='TRADINGSESSIONLIST' />
   <value enum='BK' description='SECURITYLISTUPDATEREPORT' />
   <value enum='BL' description='ADJUSTEDPOSITIONREPORT' />
   <value enum='BM' description='ALLOCATIONINSTRUCTIONALERT' />
   <value enum='BN' description='EXECUTIONACKNOWLEDGEMENT' />
   <value enum='BO' description='CONTRARYINTENTIONREPORT' />
   <value enum='BP' description='SECURITYDEFINITIONUPDATEREPORT' />
   <value enum='BQ' description='SETTLEMENTOBLIGATIONREPORT' />
   <value enum='BR' description='DERIVATIVESECURITYLISTUPDATEREPORT' />
   <value enum='BS' description='TRADINGSESSIONLISTUPDATEREPORT' />
   <value enum='BT' description='MARKETDEFINITIONREQUEST' />
   <value enum='BU' description='MARKETDEFINITION' />
   <value enum='BV' description='MARKETDEFINITIONUPDATEREPORT' />
   <value enum='BW' description='APPLICATIONMESSAGEREQUEST' />
   <value enum='BX' description='APPLICATIONMESSAGEREQUESTACK' />
   <value enum='BY' description='APPLICATIONMESSAGEREPORT' />
   <value enum='BZ' description='ORDERMASSACTIONREPORT' />
   <value enum='C' description='EMAIL' />
   <value enum='CA' description='ORDERMASSACTIONREQUEST' />
   <value enum='CB' description='USERNOTIFICATION' />
   <value enum='CC' description='STREAMASSIGNMENTREQUEST' />
   <value enum='CD' description='STREAMASSIGNMENTREPORT' />
   <value enum='CE' description='STREAMASSIGNMENTREPORTACK' />
   <value enum='CF' description='PARTYDETAILSLISTREQUEST' />
   <value enum='CG' description='PARTYDETAILSLISTREPORT' />
   <value enum='D' description='NEWORDERSINGLE' />
   <value enum='E' description='NEWORDERLIST' />
   <value enum='F' description='ORDERCANCELREQUEST' />
   <value enum='G' description='ORDERCANCELREPLACEREQUEST' />
   <value enum='H' description='ORDERSTATUSREQUEST' />
   <value enum='J' description='ALLOCATIONINSTRUCTION' />
   <value enum='K' description='LISTCANCELREQUEST' />
   <value enum='L' description='LISTEXECUTE' />
   <value enum='M' description='LISTSTATUSREQUEST' />
   <value enum='N' description='LISTSTATUS' />
   <value enum='P' description='ALLOCATIONINSTRUCTIONACK' />
   <value enum='Q' description='DONTKNOWTRADEDK' />
   <value enum='R' description='QUOTEREQUEST' />
   <value enum='S' description='QUOTE' />
   <value enum='T' description='SETTLEMENTINSTRUCTIONS' />
   <value enum='V' description='MARKETDATAREQUEST' />
   <value enum='W' description='MARKETDATASNAPSHOTFULLREFRESH' />
   <value enum='X' description='MARKETDATAINCREMENTALREFRESH' />
   <value enum='Y' description='MARKETDATAREQUESTREJECT' />
   <value enum='Z' description='QUOTECANCEL' />
   <value enum='a' description='QUOTESTATUSREQUEST' />
   <value enum='b' description='MASSQUOTEACKNOWLEDGEMENT' />
   <value enum='c' description='SECURITYDEFINITIONREQUEST' />
   <value enum='d' description='SECURITYDEFINITION' />
   <value enum='e' description='SECURITYSTATUSREQUEST' />
   <value enum='f' description='SECURITYSTATUS' />
   <value enum='g' description='TRADINGSESSIONSTATUSREQUEST' />
   <value enum='h' description='TRADINGSESSIONSTATUS' />
   <value enum='i' description='MASSQUOTE' />
   <value enum='j' description='BUSINESSMESSAGEREJECT' />
   <value enum='k' description='BIDREQUEST' />
   <value enum='l' description='BIDRESPONSE' />
   <value enum='m' description='LISTSTRIKEPRICE' />
   <value enum='n' description='XML_NON_FIX' />
   <value enum='o' description='REGISTRATIONINSTRUCTIONS' />
   <value enum='p' description='REGISTRATIONINSTRUCTIONSRESPONSE' />
   <value enum='q' description='ORDERMASSCANCELREQUEST' />
   <value enum='r' description='ORDERMASSCANCELREPORT' />
   <value enum='s' description='NEWORDERCROSS' />
   <value enum='t' description='CROSSORDERCANCELREPLACEREQUEST' />
   <value enum='u' description='CROSSORDERCANCELREQUEST' />
   <value enum='v' description='SECURITYTYPEREQUEST' />
   <value enum='w' description='SECURITYTYPES' />
   <value enum='x' description='SECURITYLISTREQUEST' />
   <value enum='y' description='SECURITYLIST' />
   <value enum='z' description='DERIVATIVESECURITYLISTREQUEST' />
  </field>



Regards
Peter

peter at nutcracker.co.za<mailto:marc at nutcracker.co.za>
T: +27 11 575 0002
F: +27 11 576 0002


NUTCRACKER | Ground floor, Roland Garros | The Campus | 57 Sloane Street | Bryanston | 2021
www.nutcracker.co.za<http://www.nutcracker.co.za>

Disclaimer:
"This e-mail may contain confidential information and may be legally privileged and is intended only for the person to whom it is addressed. If you are not the intended recipient, you are notified that you may not use, distribute or copy this document in any manner whatsoever. Kindly also notify Nutcracker Technologies (Pty) Ltd immediately by telephone, and delete the e-mail. When addressed to clients of Nutcracker Technologies (Pty) Ltd. any opinion or advice contained in this e-mail is subject to the terms and conditions expressed in any applicable terms of business or client engagement letter. Nutcracker Technologies (Pty) Ltd does not accept liability for any damage, loss or expense arising from this e-mail and/or from the accessing of any files attached to this e-mail."


From: quickfixn-bounces at lists.quickfixn.com [mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Grant Birchmeier
Sent: 20 January 2012 05:26 PM
To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} Quickfix/N vs QuickFix.Net Wrapper

1) You can check it out and build if this is urgent.

2) I made issue 31 to track this.  It's not a high priority right now, though.  We welcome anyone who would like to give it a shot and submit a patch.
https://github.com/connamara/quickfixn/issues/31

3) We have message classes and tests for FIX5.  Can you be more specific as to what's missing?

-Grant


On Fri, Jan 20, 2012 at 3:39 AM, Peter van Lonkhuyzen <Peter at nutcracker.co.za<mailto:Peter at nutcracker.co.za>> wrote:
Hi All

We currently have been using the quickfix .net wrapper for our systems.
I am currently trying to port one of these to quickfix/n so that it doesn't have to be built as 32 bit specific.

It ported fine and is working so I have to say Job well done to you guys.

I ran into the following problems


1)      As already reported and due in the next version. I can't programatically set the Sequence numbers.

2)      No Support for ToXML. No Trainsmash as for My purposes toString is fine.

3)      Limited support fo Fix 5 (I Say this with reservations but based on my use of the Quickfix.net wrapper)

There are no prebuilt message classes for FIXT,Fix5.0SP1 & SP2

This caused a problem as one of our logon's needs a password and what I did in the FixApplication.ToAdmin event I would insert the password field if the message passed in was the Logon Message type. The work around is simple but cumbersome, I first have to see if there is a messagetype field and then check if it has a value of A.





Regards

Peter van Lonkhuyzen
peter at nutcracker.co.za<mailto:marc at nutcracker.co.za>
T: +27 11 575 0002<tel:%2B27%2011%20575%200002>
F: +27 11 576 0002<tel:%2B27%2011%20576%200002>


NUTCRACKER | Ground floor, Roland Garros | The Campus | 57 Sloane Street | Bryanston | 2021
www.nutcracker.co.za<http://www.nutcracker.co.za>

Disclaimer:
"This e-mail may contain confidential information and may be legally privileged and is intended only for the person to whom it is addressed. If you are not the intended recipient, you are notified that you may not use, distribute or copy this document in any manner whatsoever. Kindly also notify Nutcracker Technologies (Pty) Ltd immediately by telephone, and delete the e-mail. When addressed to clients of Nutcracker Technologies (Pty) Ltd. any opinion or advice contained in this e-mail is subject to the terms and conditions expressed in any applicable terms of business or client engagement letter. Nutcracker Technologies (Pty) Ltd does not accept liability for any damage, loss or expense arising from this e-mail and/or from the accessing of any files attached to this e-mail."



_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto: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/20120125/2e9a39f0/attachment-0002.htm>


More information about the Quickfixn mailing list