{{Quickfixn}} RES: felipe's custom message problem

Ervin MARGUČ ervin at enteralpha.com
Thu Aug 2 02:37:40 PDT 2012


Hi

 

I had the same problem how to handle custom messages. In QuickFIX c++ I
solve that problem with implementing my DefaultMessageFactory derived class
and all my type safe custom messages classes for sending and receiving (this
was done without changing c++ dll). When I port my derived FIX engine to
QuickFIX/n I discover that DefaultMessageFactory isn't support as parameter
in ThreadedSocketAcceptor and SocketInitiator so I decide to made this
change in QuickFIX/n source and public it for public use (this changes still
wait in github Pull Requests). In my forked source of QuickFixn you can also
find how to use and handle custom type safe messages
(custom-fields-groups-and-messages.md).

 

I'm not fan to make unpublished custom modification on third party libraries
to pleased application needs because this makes future trouble on any third
party library update.

 

best regards

Ervin MARGUC

 

From: quickfixn-bounces at lists.quickfixn.com
[mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Felipe Soares
Sent: Wednesday, August 01, 2012 1:23 PM
To: Grant Birchmeier; Mailing list for QuickFIX/n
Subject: {{Quickfixn}} RES: felipe's custom message problem

 

Grant,

 

We downloaded the source code and are trying this other direction since the
other one isn´t working, but do you have any tutorial of how I am supposed
to do it?

 

regards

 

De: Grant Birchmeier [mailto:gbirchmeier at connamara.com] 
Enviada em: terça-feira, 31 de julho de 2012 12:57
Para: Mailing list for QuickFIX/n; Felipe Soares
Assunto: Re: {{Quickfixn}} felipe's custom message problem

 

Furthermore, I'd recommend that you actually look into downloading the QF/N
source and regenerating a version according to your custom FIX44.xml DD.
However, you'll need Ruby to generate the source.

 

This will give you a FIX44 version of the ApplicationMessageRequest and
field methods.  These are preferred over the generic methods.

 

-Grant

 

 

On Tue, Jul 31, 2012 at 10:52 AM, Grant Birchmeier
<gbirchmeier at connamara.com> wrote:

Felipe,

In this an future discussions, I highly recommend that you turn off digest
mode.  It's making it difficult to follow the discussion when the subject
lines are constantly changing.

Problem 1: In your cfg file, you need to add UseDataDictionary=Y

Problem 2: You are not constructing your repeating group correctly.

Problem 3: You were not using the correct message constructor.  (The first
parameter to Message(string,bool) is an entire FIX message string, not just
the 35 field.)

To construct your message with generic methods, it should look like this:

 

            QuickFix.Message m = new Message();
            m.Header.SetField(new BeginString("FIX.4.4"));
            m.SetField(new QuickFix.Fields.StringField(35, "BW"));

            m.SetField(new QuickFix.Fields.StringField(1346, "TRADER"));
//AppReqId
            m.SetField(new QuickFix.Fields.IntField(1347, 0)); //ApplReqType

            int[] ordering = {1355,1182,1183};
            Group g = new Group(1351, 1355, ordering);

            // first group element
            g.SetField(new QuickFix.Fields.StringField(1355,("foo")));
//RefApplID
            g.SetField(new QuickFix.Fields.IntField(1182, 10));
//ApplBegSeqNum
            g.SetField(new QuickFix.Fields.IntField(1183, 20));
//ApplEndSeqNum
            m.AddGroup(g);

            // second group element
            g.SetField(new QuickFix.Fields.StringField(1355, ("bar")));
//RefApplID
            g.SetField(new QuickFix.Fields.IntField(1182, 11));
//ApplBegSeqNum
            g.SetField(new QuickFix.Fields.IntField(1183, 22));
//ApplEndSeqNum
            m.AddGroup(g);

            Console.WriteLine(m.ToString());

            // prints
8=FIX.4.4|9=82|35=BW|1346=TRADER|1347=0|1351=2|1355=foo|1182=10|1183=20|1355
=bar|1182=11|1183=22|10=202|

 

 



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com

_______________________________________________
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/20120802/d1bb0880/attachment-0002.htm>


More information about the Quickfixn mailing list