Absence of Symbol in FIX44::NewOrderSingle constructor

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Absence of Symbol in FIX44::NewOrderSingle constructor

K. Frank
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hello List!

The constructor for FIX44::NewOrderSingle:

    NewOrderSingle(
      const FIX::ClOrdID& aClOrdID,
      const FIX::Side& aSide,
      const FIX::TransactTime& aTransactTime,
      const FIX::OrdType& aOrdType )

takes fewer arguments than that for FIX42::NewOrderSingle:

    NewOrderSingle(
      const FIX::ClOrdID& aClOrdID,
      const FIX::HandlInst& aHandlInst,
      const FIX::Symbol& aSymbol,
      const FIX::Side& aSide,
      const FIX::TransactTime& aTransactTime,
      const FIX::OrdType& aOrdType )

in particular, not including the Symbol, even though the instrument to
be traded is a required field.

I'm guessing this has something to do with the FIX 4.2 required field:

   <field name='Symbol' required='Y' />

being replaced with the FIX 4.4 required component:

   <component name='Instrument' required='Y' />

I have two questions:

First, what is going on here?

Second, what is the "right" way to construct a FIX44::NewOrderSingle?

I have been calling the shorter constructor:

  FIX44::NewOrderSingle order (/* doesn't include Symbol */ );
  order.set (FIX::Symbol (mySymbol));

This works, but it seems like I am mixing styles, using both a
constructor and setters.

Is this construct / set approach the cleanest way to go?

(The same issue applies to other messages, but NewOrderSingle
is a typical example.)

Thanks for any insight.


K. Frank

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
is your hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials, tech docs,
whitepapers, evaluation guides, and opinion stories. Check out the most
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

I think you nailed it.  The difference in the data dictionary is
causing the generator to generate the constructor slightly
differently.

I think your workaround is the correct way to go.  (To be honest, it's
probably the only way to go.)

Of course, if you want to try your hand at extending the generator to
include required component fields in ctors, I'm sure the patch will be
welcome :)

-Grant


On Fri, Feb 15, 2013 at 4:15 PM, K. Frank <[hidden email]> wrote:

> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
> QuickFIX Support: http://www.quickfixengine.org/services.html
>
> Hello List!
>
> The constructor for FIX44::NewOrderSingle:
>
>     NewOrderSingle(
>       const FIX::ClOrdID& aClOrdID,
>       const FIX::Side& aSide,
>       const FIX::TransactTime& aTransactTime,
>       const FIX::OrdType& aOrdType )
>
> takes fewer arguments than that for FIX42::NewOrderSingle:
>
>     NewOrderSingle(
>       const FIX::ClOrdID& aClOrdID,
>       const FIX::HandlInst& aHandlInst,
>       const FIX::Symbol& aSymbol,
>       const FIX::Side& aSide,
>       const FIX::TransactTime& aTransactTime,
>       const FIX::OrdType& aOrdType )
>
> in particular, not including the Symbol, even though the instrument to
> be traded is a required field.
>
> I'm guessing this has something to do with the FIX 4.2 required field:
>
>    <field name='Symbol' required='Y' />
>
> being replaced with the FIX 4.4 required component:
>
>    <component name='Instrument' required='Y' />
>
> I have two questions:
>
> First, what is going on here?
>
> Second, what is the "right" way to construct a FIX44::NewOrderSingle?
>
> I have been calling the shorter constructor:
>
>   FIX44::NewOrderSingle order (/* doesn't include Symbol */ );
>   order.set (FIX::Symbol (mySymbol));
>
> This works, but it seems like I am mixing styles, using both a
> constructor and setters.
>
> Is this construct / set approach the cleanest way to go?
>
> (The same issue applies to other messages, but NewOrderSingle
> is a typical example.)
>
> Thanks for any insight.
>
>
> K. Frank
>
> ------------------------------------------------------------------------------
> The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
> is your hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials, tech docs,
> whitepapers, evaluation guides, and opinion stories. Check out the most
> recent posts - join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Quickfix-developers mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quickfix-developers



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

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
is your hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials, tech docs,
whitepapers, evaluation guides, and opinion stories. Check out the most
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

K. Frank
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hello Grant!

Two follow-up questions

First, could someone give me a quick explanation about the difference
between a "field" and a "component"?  Is this something defined in FIX,
or is it a distinction specific to QuickFIX?

If it's a FIX concept, is it something new to FIX 4.4?

My second question appear in line, below:

On Fri, Feb 15, 2013 at 5:38 PM, Grant Birchmeier
<[hidden email]> wrote:
> I think you nailed it.  The difference in the data dictionary is
> causing the generator to generate the constructor slightly
> differently.

It's very interesting to me to hear that you use a code generator, that,
I presume, reads the data dictionary.

Am I correct that the source bundle I downloaded, quickfix-1.13.3.zip
(or the nearly identical linux version, quickfix-1.13.3.tar.gz) contains
the output of the code generator, but not the generator itself?

> I think your workaround is the correct way to go.  (To be honest, it's
> probably the only way to go.)

It seems very reasonable, if a little imperfect to use the two-step
construct / set process.

> Of course, if you want to try your hand at extending the generator to
> include required component fields in ctors, I'm sure the patch will be
> welcome :)

I doubt I would have the strength for that, but if I wanted to look into
it, where would I find the generator, and information on how to run the
upstream build process, i.e., the part that builds and runs the generator,
instead of just using its output?

> -Grant

Thanks for helping explain what's going on.


K. Frank


> On Fri, Feb 15, 2013 at 4:15 PM, K. Frank <[hidden email]> wrote:
>>
>> Hello List!
>>
>> The constructor for FIX44::NewOrderSingle:
>>
>>     NewOrderSingle(
>>       const FIX::ClOrdID& aClOrdID,
>>       const FIX::Side& aSide,
>>       const FIX::TransactTime& aTransactTime,
>>       const FIX::OrdType& aOrdType )
>>
>> takes fewer arguments than that for FIX42::NewOrderSingle:
>>
>>     NewOrderSingle(
>>       const FIX::ClOrdID& aClOrdID,
>>       const FIX::HandlInst& aHandlInst,
>>       const FIX::Symbol& aSymbol,
>>       const FIX::Side& aSide,
>>       const FIX::TransactTime& aTransactTime,
>>       const FIX::OrdType& aOrdType )
>>
>> in particular, not including the Symbol, even though the instrument to
>> be traded is a required field.
>>
>> I'm guessing this has something to do with the FIX 4.2 required field:
>>
>>    <field name='Symbol' required='Y' />
>>
>> being replaced with the FIX 4.4 required component:
>>
>>    <component name='Instrument' required='Y' />
>>
>> I have two questions:
>>
>> First, what is going on here?
>>
>> Second, what is the "right" way to construct a FIX44::NewOrderSingle?
>>
>> I have been calling the shorter constructor:
>>
>>   FIX44::NewOrderSingle order (/* doesn't include Symbol */ );
>>   order.set (FIX::Symbol (mySymbol));
>>
>> This works, but it seems like I am mixing styles, using both a
>> constructor and setters.
>>
>> Is this construct / set approach the cleanest way to go?
>>
>> (The same issue applies to other messages, but NewOrderSingle
>> is a typical example.)
>>
>> Thanks for any insight.
>>
>> K. Frank

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
is your hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials, tech docs,
whitepapers, evaluation guides, and opinion stories. Check out the most
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

Mike Gatny
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html



On Feb 17, 2013 4:27 PM, "K. Frank" <[hidden email]> wrote:
> First, could someone give me a quick explanation about the difference
> between a "field" and a "component"?  Is this something defined in FIX,
> or is it a distinction specific to QuickFIX?

FIX protocol distinction.  As far as the quickfix data dict is concerned, "component" is like "include".

> If it's a FIX concept, is it something new to FIX 4.4

Correct.

>
> My second question appear in line, below:
>
> On Fri, Feb 15, 2013 at 5:38 PM, Grant Birchmeier
> <[hidden email]> wrote:
> > I think you nailed it.  The difference in the data dictionary is
> > causing the generator to generate the constructor slightly
> > differently.
>
> It's very interesting to me to hear that you use a code generator, that,
> I presume, reads the data dictionary.

Correct.

>
> Am I correct that the source bundle I downloaded, quickfix-1.13.3.zip
> (or the nearly identical linux version, quickfix-1.13.3.tar.gz) contains
> the output of the code generator, but not the generator itself?

Contains both the generated files and the generator.  See the spec/ dir.

> > I think your workaround is the correct way to go.  (To be honest, it's
> > probably the only way to go.)
>
> It seems very reasonable, if a little imperfect to use the two-step
> construct / set process.
>
> > Of course, if you want to try your hand at extending the generator to
> > include required component fields in ctors, I'm sure the patch will be
> > welcome :)
>
> I doubt I would have the strength for that, but if I wanted to look into
> it, where would I find the generator, and information on how to run the
> upstream build process, i.e., the part that builds and runs the generator,
> instead of just using its output?

Just cd spec/ and run the generate script.  Then build as usual.


------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
is your hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials, tech docs,
whitepapers, evaluation guides, and opinion stories. Check out the most
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

K. Frank
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi Mike!

Thanks.  That's very informative, and clears up my questions.


K. Frank


On Sun, Feb 17, 2013 at 11:10 PM, Mike Gatny <[hidden email]> wrote:

>
> On Feb 17, 2013 4:27 PM, "K. Frank" <[hidden email]> wrote:
>> First, could someone give me a quick explanation about the difference
>> between a "field" and a "component"?  Is this something defined in FIX,
>> or is it a distinction specific to QuickFIX?
>
> FIX protocol distinction.  As far as the quickfix data dict is concerned,
> "component" is like "include".
> ...
>> where would I find the generator, and information on how to run the
>> upstream build process, i.e., the part that builds and runs the generator,
>> instead of just using its output?
>
> Just cd spec/ and run the generate script.  Then build as usual.

------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet,
is your hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials, tech docs,
whitepapers, evaluation guides, and opinion stories. Check out the most
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

Rafael Thome Guimaraes
In reply to this post by Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html

Hi all!

Cann anyone tell me in wich conditions a session resets its seqnums?

Tks,
Thomé


________________________________

Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não deverá utilizar, copiar, alterar, divulgar a informação nela contida ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperação.

This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, change, take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

Mike Gatny
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html



On May 16, 2013 10:13 PM, "Rafael Thome Guimaraes" <[hidden email]> wrote:
>
> Cann anyone tell me in wich conditions a session resets its seqnums?

Depends on your config and your counterparty.  In general, seqnums are reset at session start.  See the StartTime config option.  See also the ResetOn{Logon,Logout,Disconnect} config options.


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|

Re: Absence of Symbol in FIX44::NewOrderSingle constructor

Rafael Thome Guimaraes
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html
QuickFIX Support: http://www.quickfixengine.org/services.html


Thanks Mike!

 

 

 

Rafael Thomé Guimarães

Analista-Programador

DO-CBCN / DI-CRAD - MIDDLEWARE

' +55 11 2565-7006

* [hidden email]

cid:image001.gif@01C9D55A.E5179270

 

www.bmfbovespa.com.br

 

 

cid:image003.gif@01CBD760.1C45F490Evite imprimir. Colabore com o Meio Ambiente!

 

 

 

From: Mike Gatny [mailto:[hidden email]]
Sent: sexta-feira, 17 de maio de 2013 00:38
To: Rafael Thome Guimaraes
Cc: Quickfix Developers List
Subject: Re: [Quickfix-developers] Absence of Symbol in FIX44::NewOrderSingle constructor

 


On May 16, 2013 10:13 PM, "Rafael Thome Guimaraes" <[hidden email]> wrote:
>
> Cann anyone tell me in wich conditions a session resets its seqnums?

Depends on your config and your counterparty.  In general, seqnums are reset at session start.  See the StartTime config option.  See also the ResetOn{Logon,Logout,Disconnect} config options.




Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não deverá utilizar, copiar, alterar, divulgar a informação nela contida ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperação.

This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, change, take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers