quickfix-users Mailing List for QuickFIX (Page 17)
Brought to you by:
orenmnero
You can subscribe to this list here.
2002 |
Jan
|
Feb
(4) |
Mar
(6) |
Apr
(2) |
May
(4) |
Jun
(1) |
Jul
(1) |
Aug
(2) |
Sep
(11) |
Oct
(3) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(7) |
Feb
(3) |
Mar
(10) |
Apr
(40) |
May
(63) |
Jun
(12) |
Jul
(26) |
Aug
(13) |
Sep
(6) |
Oct
(13) |
Nov
(17) |
Dec
(28) |
2004 |
Jan
(13) |
Feb
(6) |
Mar
(9) |
Apr
(20) |
May
(15) |
Jun
(29) |
Jul
(22) |
Aug
(11) |
Sep
(32) |
Oct
(34) |
Nov
(22) |
Dec
(33) |
2005 |
Jan
(17) |
Feb
(8) |
Mar
(3) |
Apr
(20) |
May
(19) |
Jun
(29) |
Jul
(30) |
Aug
(10) |
Sep
(24) |
Oct
|
Nov
(17) |
Dec
(11) |
2006 |
Jan
(32) |
Feb
(54) |
Mar
(34) |
Apr
(43) |
May
(14) |
Jun
(11) |
Jul
(10) |
Aug
(43) |
Sep
(37) |
Oct
(44) |
Nov
(16) |
Dec
(11) |
2007 |
Jan
(26) |
Feb
(5) |
Mar
(23) |
Apr
(3) |
May
(22) |
Jun
(17) |
Jul
(22) |
Aug
(34) |
Sep
(17) |
Oct
(18) |
Nov
(4) |
Dec
(8) |
2008 |
Jan
(28) |
Feb
(28) |
Mar
(23) |
Apr
(37) |
May
(53) |
Jun
(20) |
Jul
(30) |
Aug
(12) |
Sep
(19) |
Oct
(16) |
Nov
(15) |
Dec
(10) |
2009 |
Jan
(19) |
Feb
(8) |
Mar
(21) |
Apr
(8) |
May
(15) |
Jun
(22) |
Jul
(34) |
Aug
(18) |
Sep
(23) |
Oct
(26) |
Nov
(16) |
Dec
(13) |
2010 |
Jan
(38) |
Feb
(17) |
Mar
(39) |
Apr
(34) |
May
(5) |
Jun
(15) |
Jul
(7) |
Aug
(18) |
Sep
(4) |
Oct
(16) |
Nov
(3) |
Dec
(17) |
2011 |
Jan
(28) |
Feb
(12) |
Mar
(36) |
Apr
(9) |
May
(26) |
Jun
(27) |
Jul
(6) |
Aug
(10) |
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
|
2012 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(7) |
May
(9) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(9) |
Nov
(10) |
Dec
(8) |
2013 |
Jan
(3) |
Feb
(2) |
Mar
(7) |
Apr
(2) |
May
|
Jun
(7) |
Jul
(22) |
Aug
(5) |
Sep
(3) |
Oct
(3) |
Nov
(3) |
Dec
(2) |
2014 |
Jan
(4) |
Feb
|
Mar
(7) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(7) |
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2015 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(4) |
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(5) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Nazar A. <na...@um...> - 2010-07-16 19:36:30
|
Hello, guys! Is there any way in quickfix to get message notifications about successful send messages? toApp does not fit my needs, because it is invoked even when connection to server is broken and I need to know, when message is actually send (i.e. removed from quickfix internal message queue). Thanx! Rgds, Nazar Andrienko |
From: Kenny S. <ks...@co...> - 2010-07-15 19:56:30
|
You need to run configure with '--with-ruby' There is an example in 'examples/executor/ruby' -- Kenny Stone Connamara Systems, LLC On Thu, Jul 15, 2010 at 2:40 PM, Noel R. Morais <noe...@gm...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi Guys, > > in the quickfix project site, they say it has APIs for Ruby language. > > Where do I find documentation and source code? Ive downloaded the > trunk and there is nothing about Ruby. > > > Thanks, > > -- > Noel Rocha > http://blog.noelrocha.com.br > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: Noel R. M. <noe...@gm...> - 2010-07-15 19:55:22
|
Hi Guys, sorry. Ive found the API. one more question, there is some performance benchmark or real usages performance metrics about using the ruby API on top of quickfix? Cheers, -- Noel Rocha http://blog.noelrocha.com.br On Thu, Jul 15, 2010 at 4:40 PM, Noel R. Morais <noe...@gm...> wrote: > Hi Guys, > > in the quickfix project site, they say it has APIs for Ruby language. > > Where do I find documentation and source code? Ive downloaded the > trunk and there is nothing about Ruby. > > > Thanks, > > -- > Noel Rocha > http://blog.noelrocha.com.br > |
From: Noel R. M. <noe...@gm...> - 2010-07-15 19:40:45
|
Hi Guys, in the quickfix project site, they say it has APIs for Ruby language. Where do I find documentation and source code? Ive downloaded the trunk and there is nothing about Ruby. Thanks, -- Noel Rocha http://blog.noelrocha.com.br |
From: Neeraj R. <rn...@ya...> - 2010-07-01 03:15:44
|
Hi, Has anyone implemented the CME Enhanced resend request using quickfix ? http://www.cmegroup.com/globex/files/SDKiLinkCore.pdf ref : page 38. thanks Neeraj |
From: Fix U. <fi...@ym...> - 2010-06-30 15:17:13
|
Thanks much Grant. Just for clarification, I want to mention two points. 1. I tried to build a fresh copy of quickfix without any modifications but after running generate_c++.bat. Procedure a) unzip quickfix 2) run generate_c++.bat 3) build_vs9.bat This build also fails. 2. In the source code where I made the code changes in FIX42.xml (this source tree is different from above): I'm going over the two xml files. In fix42/MessageCracker.h I see references for NewOrderMultileg. I just wanted to point this out for clarification. Thanks again for any help. Joe ________________________________ From: Grant Birchmeier <gbi...@co...> To: Fix User <fi...@ym...> Cc: qui...@li... Sent: Wed, June 30, 2010 9:54:44 AM Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged Order I'm unable to point you to documents, because, unfortunately, I'm not sure if there are any. I *believe* that in C++ the generated code goes into the same place as the regular code, so the build procedure should be the same. (Sorry for the uncertainty; I'm much more familiar with the Java QF/J versions of this procedure than the C++ form.) To take a blind guess, I'd check if your addition for NewOrderMultileg may yet include some fields or components that are not standard 4.2; there may be some more fields you need to add into the large set at the end of the xml file. I'm kinda busy at the moment, but I'll try to find time to look at your attachments later today. -Grant On Wed, Jun 30, 2010 at 9:38 AM, Fix User <fi...@ym...> wrote: > Btw, I noticed that I had missed the components for "Parties", "Instrument", > "OrderQtyData" and "CommisionData", and I added those also as well. I'm > still getting the build errors. > > Just to experiment, I tried to build fresh copy of the source without any > modifications but after running the "configure_c++.bat" script. Build fails > with the same errors, so I'm thinking errors I'm getting are not from > my fix42.xml modifications. > > I was not able to find any info on how to rebuild after modifying the > fix*.xmls. Could you pls help, or point me to some documents. > > Thanks much. > > joe > > ________________________________ > From: Fix User <fi...@ym...> > To: Grant Birchmeier <gbi...@co...>; > qui...@li... > Sent: Wed, June 30, 2010 8:24:35 AM > Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged > Order > > Dear Grant, > > Thank you. Yes, indeed, IB has a spec and I'm using it, but I think due to > my inexperience with FIX things are not 100% clear what certain things mean. > On New Order Multileg, the spec says "the message format is based on > Multileg format of FIX 4.3". > > Anyway, I've tried to add "NewOrderMultileg" to FIX42.xml but I am getting > some build errors. Here's what I did in detail. > > 1. Downloaded a fresh copy of quickfix (version 1.13.3) > 2. Built it using build_vs9.bat (I'm on a windows 32 bit machine, using VS > 9) -- built was successful. > 3. Made the following changes to FIX42.xml > a) Under <messages> Copied an entry for message "NewOrderMultileg" > using the entry in FIX43.xml > b) Under <components> Copied an entry for component "InstrumentLeg" > using the entry in FIX43.xml > c) Under field number = 35, added value "AB", similar to FIX43.xml. > > I'm attaching my modified FIX42.xml. > > 4. ran generate_c++.bat -- this script ran succesfully. > 5. rebuilt the code, using build_vs9.bat -- build fails. I see lots of > errors similar to the ones below. Full error log attached. > > Compiling... > Acceptor.cpp > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(265) : error C2065: > 'ApplVerID_FIX50SP1' : undeclared identifier > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(267) : error C2065: > 'ApplVerID_FIX50SP2' : undeclared identifier > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(287) : error C2065: > 'ApplVerID_FIX50SP1' : undeclared identifier > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(289) : error C2065: > 'ApplVerID_FIX50SP2' : undeclared identifier > > Do you know what I'm doing wrong. I really appreciate any help. > > Thank you very much. > > joe > > > ________________________________ > From: Grant Birchmeier <gbi...@co...> > To: qui...@li... > Sent: Tue, June 29, 2010 4:30:09 PM > Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged > Order > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > I myself have not worked too much with IB's interface, but I know > we've done some IB projects in the past. > > IB should ideally have a spec that describes their FIX interface, and > you should be able to use that as a guide to constructing your XML > file. > > In your case, you should be using FIX4.2, with the FIX42.xml file > customized to include that FIX 4.3 message (and any contained fields) > that IB has decided to use. You should definitely familiarize > yourself with the XML file format and generating the custom code, as > nearly every broker has their own novel customizations and > thinly-documented ways of messing up your day. > > -Grant > > > > > |
From: Grant B. <gbi...@co...> - 2010-06-30 14:54:53
|
I'm unable to point you to documents, because, unfortunately, I'm not sure if there are any. I *believe* that in C++ the generated code goes into the same place as the regular code, so the build procedure should be the same. (Sorry for the uncertainty; I'm much more familiar with the Java QF/J versions of this procedure than the C++ form.) To take a blind guess, I'd check if your addition for NewOrderMultileg may yet include some fields or components that are not standard 4.2; there may be some more fields you need to add into the large set at the end of the xml file. I'm kinda busy at the moment, but I'll try to find time to look at your attachments later today. -Grant On Wed, Jun 30, 2010 at 9:38 AM, Fix User <fi...@ym...> wrote: > Btw, I noticed that I had missed the components for "Parties", "Instrument", > "OrderQtyData" and "CommisionData", and I added those also as well. I'm > still getting the build errors. > > Just to experiment, I tried to build fresh copy of the source without any > modifications but after running the "configure_c++.bat" script. Build fails > with the same errors, so I'm thinking errors I'm getting are not from > my fix42.xml modifications. > > I was not able to find any info on how to rebuild after modifying the > fix*.xmls. Could you pls help, or point me to some documents. > > Thanks much. > > joe > > ________________________________ > From: Fix User <fi...@ym...> > To: Grant Birchmeier <gbi...@co...>; > qui...@li... > Sent: Wed, June 30, 2010 8:24:35 AM > Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged > Order > > Dear Grant, > > Thank you. Yes, indeed, IB has a spec and I'm using it, but I think due to > my inexperience with FIX things are not 100% clear what certain things mean. > On New Order Multileg, the spec says "the message format is based on > Multileg format of FIX 4.3". > > Anyway, I've tried to add "NewOrderMultileg" to FIX42.xml but I am getting > some build errors. Here's what I did in detail. > > 1. Downloaded a fresh copy of quickfix (version 1.13.3) > 2. Built it using build_vs9.bat (I'm on a windows 32 bit machine, using VS > 9) -- built was successful. > 3. Made the following changes to FIX42.xml > a) Under <messages> Copied an entry for message "NewOrderMultileg" > using the entry in FIX43.xml > b) Under <components> Copied an entry for component "InstrumentLeg" > using the entry in FIX43.xml > c) Under field number = 35, added value "AB", similar to FIX43.xml. > > I'm attaching my modified FIX42.xml. > > 4. ran generate_c++.bat -- this script ran succesfully. > 5. rebuilt the code, using build_vs9.bat -- build fails. I see lots of > errors similar to the ones below. Full error log attached. > > Compiling... > Acceptor.cpp > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(265) : error C2065: > 'ApplVerID_FIX50SP1' : undeclared identifier > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(267) : error C2065: > 'ApplVerID_FIX50SP2' : undeclared identifier > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(287) : error C2065: > 'ApplVerID_FIX50SP1' : undeclared identifier > c:\quickfix-1.13.3\quickfix\src\c++\Message.h(289) : error C2065: > 'ApplVerID_FIX50SP2' : undeclared identifier > > Do you know what I'm doing wrong. I really appreciate any help. > > Thank you very much. > > joe > > > ________________________________ > From: Grant Birchmeier <gbi...@co...> > To: qui...@li... > Sent: Tue, June 29, 2010 4:30:09 PM > Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged > Order > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > I myself have not worked too much with IB's interface, but I know > we've done some IB projects in the past. > > IB should ideally have a spec that describes their FIX interface, and > you should be able to use that as a guide to constructing your XML > file. > > In your case, you should be using FIX4.2, with the FIX42.xml file > customized to include that FIX 4.3 message (and any contained fields) > that IB has decided to use. You should definitely familiarize > yourself with the XML file format and generating the custom code, as > nearly every broker has their own novel customizations and > thinly-documented ways of messing up your day. > > -Grant > > > > > |
From: Fix U. <fi...@ym...> - 2010-06-30 14:38:16
|
Btw, I noticed that I had missed the components for "Parties", "Instrument", "OrderQtyData" and "CommisionData", and I added those also as well. I'm still getting the build errors. Just to experiment, I tried to build fresh copy of the source without any modifications but after running the "configure_c++.bat" script. Build fails with the same errors, so I'm thinking errors I'm getting are not from my fix42.xml modifications. I was not able to find any info on how to rebuild after modifying the fix*.xmls. Could you pls help, or point me to some documents. Thanks much. joe ________________________________ From: Fix User <fi...@ym...> To: Grant Birchmeier <gbi...@co...>; qui...@li... Sent: Wed, June 30, 2010 8:24:35 AM Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged Order Dear Grant, Thank you. Yes, indeed, IB has a spec and I'm using it, but I think due to my inexperience with FIX things are not 100% clear what certain things mean. On New Order Multileg, the spec says "the message format is based on Multileg format of FIX 4.3". Anyway, I've tried to add "NewOrderMultileg" to FIX42.xml but I am getting some build errors. Here's what I did in detail. 1. Downloaded a fresh copy of quickfix (version 1.13.3) 2. Built it using build_vs9.bat (I'm on a windows 32 bit machine, using VS 9) -- built was successful. 3. Made the following changes to FIX42.xml a) Under <messages> Copied an entry for message "NewOrderMultileg" using the entry in FIX43.xml b) Under <components> Copied an entry for component "InstrumentLeg" using the entry in FIX43.xml c) Under field number = 35, added value "AB", similar to FIX43.xml. I'm attaching my modified FIX42.xml. 4. ran generate_c++.bat -- this script ran succesfully. 5. rebuilt the code, using build_vs9.bat -- build fails. I see lots of errors similar to the ones below. Full error log attached. Compiling... Acceptor.cpp c:\quickfix-1.13.3\quickfix\src\c++\Message.h(265) : error C2065: 'ApplVerID_FIX50SP1' : undeclared identifier c:\quickfix-1.13.3\quickfix\src\c++\Message.h(267) : error C2065: 'ApplVerID_FIX50SP2' : undeclared identifier c:\quickfix-1.13.3\quickfix\src\c++\Message.h(287) : error C2065: 'ApplVerID_FIX50SP1' : undeclared identifier c:\quickfix-1.13.3\quickfix\src\c++\Message.h(289) : error C2065: 'ApplVerID_FIX50SP2' : undeclared identifier Do you know what I'm doing wrong. I really appreciate any help. Thank you very much. joe ________________________________ From: Grant Birchmeier <gbi...@co...> To: qui...@li... Sent: Tue, June 29, 2010 4:30:09 PM Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged Order QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html I myself have not worked too much with IB's interface, but I know we've done some IB projects in the past. IB should ideally have a spec that describes their FIX interface, and you should be able to use that as a guide to constructing your XML file. In your case, you should be using FIX4.2, with the FIX42.xml file customized to include that FIX 4.3 message (and any contained fields) that IB has decided to use. You should definitely familiarize yourself with the XML file format and generating the custom code, as nearly every broker has their own novel customizations and thinly-documented ways of messing up your day. -Grant |
From: Sev Z. <se...@gm...> - 2010-06-30 11:58:17
|
I think there are two possible solutions: 1. In your config, set /ValidateUserDefinedFields/ = N (see http://www.quickfixengine.org/quickfix/doc/html/configuration.html) 2. If you have /DataDictionary/ defined, just add the field to your dictionary file to make the field valid. I've done this in the past to handle proprietary fields from an ECN. Joaquín Gracia wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi all, > > My fix application is rejecting some messages because of an invalid > TAG, which I do not need to read at all. > > Do you lnow how can I make quickfix to ignore this particular tag? > > Thank you. > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: Joaquín G. <j.g...@ra...> - 2010-06-30 10:57:51
|
Hi all, My fix application is rejecting some messages because of an invalid TAG, which I do not need to read at all. Do you lnow how can I make quickfix to ignore this particular tag? Thank you. |
From: Grant B. <gbi...@co...> - 2010-06-29 21:30:18
|
I myself have not worked too much with IB's interface, but I know we've done some IB projects in the past. IB should ideally have a spec that describes their FIX interface, and you should be able to use that as a guide to constructing your XML file. In your case, you should be using FIX4.2, with the FIX42.xml file customized to include that FIX 4.3 message (and any contained fields) that IB has decided to use. You should definitely familiarize yourself with the XML file format and generating the custom code, as nearly every broker has their own novel customizations and thinly-documented ways of messing up your day. -Grant On Tue, Jun 29, 2010 at 3:56 PM, Fix User <fi...@ym...> wrote: > Dear Grant, > > Thank you. You're very kind. I'm really glad you responded to my email for > two reasons, first, obviously I've been struggling with my Multileg Order > and your help allowed me to keep going. Second, I've been looking into > getting some support (having someone to fall back on if needed) once our > system goes live, and I was pleasantly surprised to see your company offers > production support. At some point in the future I would like to talk to you > on this topic. > > Going back to my multileg order, after incorporating the changes you've > mentioned below, I'm now able to compile my app and send an order, however, > my order is getting rejected with "Unsupported Message Type". I'm attaching > a gif with to show the error. > > I'm using Interactive Brokers (IB) as my broker. IB uses FIX42. I was told > by IB that they're using the Multileg Order from FIX43. From that > I interpretted IB may be accepting a FIX43 Multileg Order, > but, after reading your email I'm now thinking IB may have added the > Multileg order into their FIX42 using a procedure similar to what you've > described below. I'm almost tempted to add the Multileg order to FIX42.xml > and rebuild and see what happens but before that I wanted to ask you if you > have any experience working with IB and if so, if my thinking is correct > here. > > I really appreciate any comments/suggestions you might have on this. > > Thanks much. > > Joe > > ________________________________ > From: Grant Birchmeier <gbi...@co...> > To: qui...@li... > Sent: Tue, June 29, 2010 12:42:03 PM > Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged > Order > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > I see where you're having trouble. Many of the QF fields and > components are actually from code that is generated from the info > specified in an XML file. For FIX 4.3, the file is spec/FIX43.xml > (this directory also contains the generator script). The generated > items are not described in the online docs, but it looks like they are > in the source release and probably in the binaries. You can find the > source for such classes in src/C++/. > > To your question: You should be able to create a > FIX43::NewOrderMultileg::NoLegs group, which derives from FIX::Group. > The CustomerOrFirm field was removed from FIX 4.3; if your > counterparty is using it anyway, then you'll need to edit the > FIX43.xml file and regenerate/rebuild some source. > > Because most brokers take massive liberties with the FIX specs (such > as adding custom fields and putting existing fields in messages they > don't normally belong in), you usually have to tailor the xml file to > their system and regenerate. I'm disappointed to see that this isn't > really covered in the C++ QF docs. (In QuickFIX/J, the Java version, > this is a standard part of the build process.) There are multiple > spec/generate.* scripts for different OSs; I think all you need to do > is run the script and rebuild the binaries. > > -Grant > > > On Tue, Jun 29, 2010 at 11:33 AM, Fix User <fi...@ym...> wrote: >> Dear Grant, >> >> >> >> Thanks much for your reply, and thanks for your suggestions and pointing >> out the problems with my code. >> >> >> >> I've looked at the documentation, including the ones for repeating >> groups. >> However, since the message type given in the example is different from my >> usage (MarketDataSnapShotFullRefresh vs NewOrderMultileg) I'm still not >> quite clear which data structure is to be used for each leg. >> >> >> >> I've tried using FIX::Group, but I was not clear (even after looking at >> the >> 4.3 spec for repeating groups) to me if that's the correct one to use. >> >> >> >> Listed below is the code I came up with. Could you pls see if this is the >> correct way to do it ? Btw, Group does not have a "set" method so I had to >> use "setField". >> >> >> >> I really appreciate your help. >> >> >> >> Thank you. >> >> >> >> Jim >> >> >> >> ------------ code ------------ >> >> >> >> FIX43::NewOrderMultileg newOrder; >> >> >> >> newOrder.getHeader().set(FIX::TargetCompID("IB")); >> >> newOrder.getHeader().set(FIX::SenderCompID("direc314")); >> >> newOrder.getHeader().set(FIX::MsgType("AB")); >> >> newOrder.set(FIX::SecurityType("MLEG")); >> >> >> >> newOrder.set(FIX::TimeInForce(FIX::TimeInForce_DAY)); >> >> newOrder.set(FIX::SecurityExchange( >> >> "GLOBEX")); >> >> >> >> //CustomOrFirm, required for options >> >> newOrder.set(FIX::CustomerOrFirm(FIX::CustomerOrFirm(0)); //This does not >> compile >> >> >> >> >> >> FIX::Group group1(1,1); //Not sure what the correct values for the >> constructor. >> >> >> >> //First leg >> >> group1.setField(FIX::Symbol("ES")); >> >> group1.setField(FIX::Account("U00314")); >> >> group1.setField(FIX::LegSymbol("IB")); >> >> group1.setField(FIX::LegCFICode("OCF")); >> >> group1.setField(FIX::LegMaturityMonthYear("201007")); >> >> group1.setField(FIX::LegStrikePrice(1100)); >> >> group1.setField(FIX::LegRatioQty(1)); >> >> group1.setField(FIX::LegSide('1')); >> >> group1.setField(FIX::LegPositionEffect('O')); >> >> newOrder.addGroup(group1); >> >> ________________________________ >> From: Grant Birchmeier <gbi...@co...> >> Cc: qui...@li... >> Sent: Tue, June 29, 2010 9:05:36 AM >> Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged >> Order >> >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> Please review the "repeating groups" section of the quickfix docs, >> because you're not doing it quite right. >> >> Normal link (down at the moment): >> http://www.quickfixengine.org/quickfix/doc/html/repeating_groups.html >> Google cached link: >> >> http://webcache.googleusercontent.com/search?q=cache:UgZU3jrmDu8J:www.quickfixengine.org/quickfix/doc/html/repeating_groups.html+quickfix+repeating+groups&cd=1&hl=en&ct=clnk&gl=us&client=opera >> >> Furthermore, it's not recommended to use the "setField()" methods >> directly. You should instead use the set() methods. See the "sending >> messages" doc page, section titled "Most Type Safe... DO THIS!": >> >> Normal link (down at the moment): >> >> http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/sending_messages.html >> Google cached link: >> >> http://webcache.googleusercontent.com/search?q=cache:HCaHT_RRXacJ:www.quickfixengine.org/quickfix/doc/html/sending_messages.html+quickfix+sending+messages&cd=1&hl=en&ct=clnk&gl=us&client=opera >> >> >> On Tue, Jun 29, 2010 at 7:13 AM, Fix User <fi...@ym...> wrote: >>> QuickFIX Documentation: >>> http://www.quickfixengine.org/quickfix/doc/html/index.html >>> QuickFIX Support: http://www.quickfixengine.org/services.html >>> >>> >>> Dear Fix Users, >>> >>> >>> >>> First, I tried to send this message to the list yesterday but I think it >>> did not go thru. If you see multiple posts, I appologize. >>> >>> >>> >>> I'm a new QuickFix user. I'm trying to create a FIX43::NewOrderMultileg >>> message to create a contract with two legs. Both legs are contracts on >>> Emini >>> (symbol "ES"). One leg is a future contract, and the second leg is an >>> option on the future contract. >>> >>> >>> >>> >>> >>> My values are as follows: >>> >>> >>> >>> Common Values: >>> >>> ---------------------- >>> >>> >>> >>> FIX43::NewOrderMultileg newOrder; >>> >>> newOrder.getHeader().setField(FIX::TargetCompID("IB")); >>> >>> newOrder.getHeader().setField(FIX::SenderCompID("abcdef")); >>> >>> newOrder.getHeader().setField(FIX::MsgType("AB")); >>> >>> newOrder.setField(167, "MULTILEG"); >>> >>> newOrder.set(FIX::TimeInForce(FIX::TimeInForce_DAY)); >>> >>> newOrder.set(FIX::SecurityExchange( >>> >>> "GLOBEX")); >>> >>> newOrder.setField(204, >>> >>> "0"); //CustomOrFirm, required for options >>> >>> >>> >>> newOrder.setField(55, "ES"); //Symbol >>> >>> >>> >>> newOrder.setField(440, >>> >>> "AB12345"); //Account >>> >>> >>> >>> newOrder.setField(555, "2"); //No Legs >>> >>> >>> >>> //Values for Leg 1, Field and Value pairs for the Option Contract >>> >>> >>> >>> ---------------------------------------------------------------------------------- >>> >>> 600=>"ES" //Leg Symbol; >>> >>> 608=> "OCF" //LegCFICode >>> >>> 610=>"201007" //LegMaturity >>> >>> 612=>"1000" //LegStrikePrice >>> >>> 624=>"1" //LegSide >>> >>> >>> >>> Values for Leg 2, Field and Value pairs for the Future Contract >>> >>> >>> >>> -------------------------------------------------------------------------------- >>> >>> >>> >>> 600=>"ES" //Symbol >>> >>> 608=> "F" //LegCFICode >>> >>> 610=>"201009" //Leg Maturity >>> >>> 624=>"2" //LegSide >>> >>> >>> >>> >>> >>> Can someone pls show me how I can pass these leg1 and leg2 values into my >>> NewOrderMultileg message ? I am using latest (C++) QuickFix. >>> >>> >>> >>> Thank you very much. >>> >>> >>> >>> Jim >>> >>> >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by Sprint >>> What will you do first with EVO, the first 4G phone? >>> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >>> _______________________________________________ >>> Quickfix-users mailing list >>> Qui...@li... >>> https://lists.sourceforge.net/lists/listinfo/quickfix-users >>> >>> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: Grant B. <gbi...@co...> - 2010-06-29 17:42:13
|
I see where you're having trouble. Many of the QF fields and components are actually from code that is generated from the info specified in an XML file. For FIX 4.3, the file is spec/FIX43.xml (this directory also contains the generator script). The generated items are not described in the online docs, but it looks like they are in the source release and probably in the binaries. You can find the source for such classes in src/C++/. To your question: You should be able to create a FIX43::NewOrderMultileg::NoLegs group, which derives from FIX::Group. The CustomerOrFirm field was removed from FIX 4.3; if your counterparty is using it anyway, then you'll need to edit the FIX43.xml file and regenerate/rebuild some source. Because most brokers take massive liberties with the FIX specs (such as adding custom fields and putting existing fields in messages they don't normally belong in), you usually have to tailor the xml file to their system and regenerate. I'm disappointed to see that this isn't really covered in the C++ QF docs. (In QuickFIX/J, the Java version, this is a standard part of the build process.) There are multiple spec/generate.* scripts for different OSs; I think all you need to do is run the script and rebuild the binaries. -Grant On Tue, Jun 29, 2010 at 11:33 AM, Fix User <fi...@ym...> wrote: > Dear Grant, > > > > Thanks much for your reply, and thanks for your suggestions and pointing > out the problems with my code. > > > > I've looked at the documentation, including the ones for repeating groups. > However, since the message type given in the example is different from my > usage (MarketDataSnapShotFullRefresh vs NewOrderMultileg) I'm still not > quite clear which data structure is to be used for each leg. > > > > I've tried using FIX::Group, but I was not clear (even after looking at the > 4.3 spec for repeating groups) to me if that's the correct one to use. > > > > Listed below is the code I came up with. Could you pls see if this is the > correct way to do it ? Btw, Group does not have a "set" method so I had to > use "setField". > > > > I really appreciate your help. > > > > Thank you. > > > > Jim > > > > ------------ code ------------ > > > > FIX43::NewOrderMultileg newOrder; > > > > newOrder.getHeader().set(FIX::TargetCompID("IB")); > > newOrder.getHeader().set(FIX::SenderCompID("direc314")); > > newOrder.getHeader().set(FIX::MsgType("AB")); > > newOrder.set(FIX::SecurityType("MLEG")); > > > > newOrder.set(FIX::TimeInForce(FIX::TimeInForce_DAY)); > > newOrder.set(FIX::SecurityExchange( > > "GLOBEX")); > > > > //CustomOrFirm, required for options > > newOrder.set(FIX::CustomerOrFirm(FIX::CustomerOrFirm(0)); //This does not > compile > > > > > > FIX::Group group1(1,1); //Not sure what the correct values for the > constructor. > > > > //First leg > > group1.setField(FIX::Symbol("ES")); > > group1.setField(FIX::Account("U00314")); > > group1.setField(FIX::LegSymbol("IB")); > > group1.setField(FIX::LegCFICode("OCF")); > > group1.setField(FIX::LegMaturityMonthYear("201007")); > > group1.setField(FIX::LegStrikePrice(1100)); > > group1.setField(FIX::LegRatioQty(1)); > > group1.setField(FIX::LegSide('1')); > > group1.setField(FIX::LegPositionEffect('O')); > > newOrder.addGroup(group1); > > ________________________________ > From: Grant Birchmeier <gbi...@co...> > Cc: qui...@li... > Sent: Tue, June 29, 2010 9:05:36 AM > Subject: Re: [Quickfix-users] Using NewOrderMultileg to send a two legged > Order > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Please review the "repeating groups" section of the quickfix docs, > because you're not doing it quite right. > > Normal link (down at the moment): > http://www.quickfixengine.org/quickfix/doc/html/repeating_groups.html > Google cached link: > http://webcache.googleusercontent.com/search?q=cache:UgZU3jrmDu8J:www.quickfixengine.org/quickfix/doc/html/repeating_groups.html+quickfix+repeating+groups&cd=1&hl=en&ct=clnk&gl=us&client=opera > > Furthermore, it's not recommended to use the "setField()" methods > directly. You should instead use the set() methods. See the "sending > messages" doc page, section titled "Most Type Safe... DO THIS!": > > Normal link (down at the moment): > http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/sending_messages.html > Google cached link: > http://webcache.googleusercontent.com/search?q=cache:HCaHT_RRXacJ:www.quickfixengine.org/quickfix/doc/html/sending_messages.html+quickfix+sending+messages&cd=1&hl=en&ct=clnk&gl=us&client=opera > > > On Tue, Jun 29, 2010 at 7:13 AM, Fix User <fi...@ym...> wrote: >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> Dear Fix Users, >> >> >> >> First, I tried to send this message to the list yesterday but I think it >> did not go thru. If you see multiple posts, I appologize. >> >> >> >> I'm a new QuickFix user. I'm trying to create a FIX43::NewOrderMultileg >> message to create a contract with two legs. Both legs are contracts on Emini >> (symbol "ES"). One leg is a future contract, and the second leg is an >> option on the future contract. >> >> >> >> >> >> My values are as follows: >> >> >> >> Common Values: >> >> ---------------------- >> >> >> >> FIX43::NewOrderMultileg newOrder; >> >> newOrder.getHeader().setField(FIX::TargetCompID("IB")); >> >> newOrder.getHeader().setField(FIX::SenderCompID("abcdef")); >> >> newOrder.getHeader().setField(FIX::MsgType("AB")); >> >> newOrder.setField(167, "MULTILEG"); >> >> newOrder.set(FIX::TimeInForce(FIX::TimeInForce_DAY)); >> >> newOrder.set(FIX::SecurityExchange( >> >> "GLOBEX")); >> >> newOrder.setField(204, >> >> "0"); //CustomOrFirm, required for options >> >> >> >> newOrder.setField(55, "ES"); //Symbol >> >> >> >> newOrder.setField(440, >> >> "AB12345"); //Account >> >> >> >> newOrder.setField(555, "2"); //No Legs >> >> >> >> //Values for Leg 1, Field and Value pairs for the Option Contract >> >> >> ---------------------------------------------------------------------------------- >> >> 600=>"ES" //Leg Symbol; >> >> 608=> "OCF" //LegCFICode >> >> 610=>"201007" //LegMaturity >> >> 612=>"1000" //LegStrikePrice >> >> 624=>"1" //LegSide >> >> >> >> Values for Leg 2, Field and Value pairs for the Future Contract >> >> >> -------------------------------------------------------------------------------- >> >> >> >> 600=>"ES" //Symbol >> >> 608=> "F" //LegCFICode >> >> 610=>"201009" //Leg Maturity >> >> 624=>"2" //LegSide >> >> >> >> >> >> Can someone pls show me how I can pass these leg1 and leg2 values into my >> NewOrderMultileg message ? I am using latest (C++) QuickFix. >> >> >> >> Thank you very much. >> >> >> >> Jim >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: Grant B. <gbi...@co...> - 2010-06-29 14:05:50
|
Please review the "repeating groups" section of the quickfix docs, because you're not doing it quite right. Normal link (down at the moment): http://www.quickfixengine.org/quickfix/doc/html/repeating_groups.html Google cached link: http://webcache.googleusercontent.com/search?q=cache:UgZU3jrmDu8J:www.quickfixengine.org/quickfix/doc/html/repeating_groups.html+quickfix+repeating+groups&cd=1&hl=en&ct=clnk&gl=us&client=opera Furthermore, it's not recommended to use the "setField()" methods directly. You should instead use the set() methods. See the "sending messages" doc page, section titled "Most Type Safe... DO THIS!": Normal link (down at the moment): http://www.quickfixj.org/quickfixj/usermanual/1.4.0/usage/sending_messages.html Google cached link: http://webcache.googleusercontent.com/search?q=cache:HCaHT_RRXacJ:www.quickfixengine.org/quickfix/doc/html/sending_messages.html+quickfix+sending+messages&cd=1&hl=en&ct=clnk&gl=us&client=opera On Tue, Jun 29, 2010 at 7:13 AM, Fix User <fi...@ym...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Dear Fix Users, > > > > First, I tried to send this message to the list yesterday but I think it did not go thru. If you see multiple posts, I appologize. > > > > I'm a new QuickFix user. I'm trying to create a FIX43::NewOrderMultileg message to create a contract with two legs. Both legs are contracts on Emini (symbol "ES"). One leg is a future contract, and the second leg is an option on the future contract. > > > > > > My values are as follows: > > > > Common Values: > > ---------------------- > > > > FIX43::NewOrderMultileg newOrder; > > newOrder.getHeader().setField(FIX::TargetCompID("IB")); > > newOrder.getHeader().setField(FIX::SenderCompID("abcdef")); > > newOrder.getHeader().setField(FIX::MsgType("AB")); > > newOrder.setField(167, "MULTILEG"); > > newOrder.set(FIX::TimeInForce(FIX::TimeInForce_DAY)); > > newOrder.set(FIX::SecurityExchange( > > "GLOBEX")); > > newOrder.setField(204, > > "0"); //CustomOrFirm, required for options > > > > newOrder.setField(55, "ES"); //Symbol > > > > newOrder.setField(440, > > "AB12345"); //Account > > > > newOrder.setField(555, "2"); //No Legs > > > > //Values for Leg 1, Field and Value pairs for the Option Contract > > ---------------------------------------------------------------------------------- > > 600=>"ES" //Leg Symbol; > > 608=> "OCF" //LegCFICode > > 610=>"201007" //LegMaturity > > 612=>"1000" //LegStrikePrice > > 624=>"1" //LegSide > > > > Values for Leg 2, Field and Value pairs for the Future Contract > > -------------------------------------------------------------------------------- > > > > 600=>"ES" //Symbol > > 608=> "F" //LegCFICode > > 610=>"201009" //Leg Maturity > > 624=>"2" //LegSide > > > > > > Can someone pls show me how I can pass these leg1 and leg2 values into my NewOrderMultileg message ? I am using latest (C++) QuickFix. > > > > Thank you very much. > > > > Jim > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: Fix U. <fi...@ym...> - 2010-06-29 13:13:41
|
Dear Fix Users,"IB"));"abcdef"));"AB"));"MULTILEG");newOrder.set(FIX::TimeInForce(FIX::TimeInForce_DAY)); newOrder.set(FIX::SecurityExchange("GLOBEX")); newOrder.setField(204, "0"); //CustomOrFirm, required for options newOrder.setField(55, "ES"); //Symbol newOrder.setField(440, newOrder.setField(555, "2"); //No Legs //Values for Leg 1, Field and Value pairs for the Option Contract ---------------------------------------------------------------------------------- 600=>"ES" //Leg Symbol; 608=> "OCF" //LegCFICode 610=>"201007" //LegMaturity 612=>"1000" //LegStrikePrice 624=>"1" //LegSide Values for Leg 2, Field and Value pairs for the Future Contract -------------------------------------------------------------------------------- 600=>"ES" //Symbol 608=> "F" //LegCFICode 610=>"201009" //Leg Maturity 624=>"2" //LegSide Can someone pls show me how I can pass these leg1 and leg2 values into my NewOrderMultileg message ? I am using latest (C++) QuickFix. Thank you very much. Jim "AB12345"); //Account First, I tried to send this message to the list yesterday but I think it did not go thru. If you see multiple posts, I appologize. I'm a new QuickFix user. I'm trying to create a FIX43::NewOrderMultileg message to create a contract with two legs. Both legs are contracts on Emini (symbol "ES"). One leg is a future contract, and the second leg is an option on the future contract. My values are as follows: Common Values: ---------------------- FIX43::NewOrderMultileg newOrder; newOrder.getHeader().setField(FIX::TargetCompID( newOrder.getHeader().setField(FIX::SenderCompID( newOrder.getHeader().setField(FIX::MsgType( newOrder.setField(167, |
From: Hei C. <str...@ya...> - 2010-06-24 00:48:50
|
Hi, I just wonder whether anyone has compared the performance of the latest quickfix/C++ 1.13.3 with 1.12.4. With 1.12.4 (with a small modification -- added support to set send buffer size), it seems to be faster than 1.13.3 during my ping test: - A server logs the timestamp and sends me a "ping" FIX message. - My server replies and the server logs the timestamp when it receives my reply. The ping time increased from 2.2275ms to 2.65833ms out of 120 pings within an hour. Although I understand that it is not a very accurate measure (since the time isn't logged in microsecond and # of samples are few), it roughly indicates some performance degradation. I am not saying that there must be a performance degradation... But I am curious whether anyone on the list can share some stats... Thanks in advance. Cheers, Hei |
From: Alex V. <pa...@gm...> - 2010-06-18 04:40:18
|
Francis Gingras <francis@...> writes: > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > > I am trying to setup two session per day for a connection (I must log off for a few minutes twice a day). I assume this means I need 12 sessions and here is the first one I set up. > I have the following settings in the [Session] section: > StartTime=21:05:00 > EndTime=20:59:00 > StartDay=wed > EndDay=thu > The error message is "Configuration failed: LogonTime must be between StartTime and EndTime" but there is no LogonTime setting in QuickFIX. What does this refer to and what is wrong with my settings? > Thanks, > Francis > > > ----------------------------------------------------------------------------- - > > > > _______________________________________________ > Quickfix-users mailing list > Quickfix-users@... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > They introduce 2 additional times settings that allow tune up qf applications i.e const char LOGON_TIME[] = "LogonTime"; const char LOGOUT_TIME[] = "LogoutTime"; where startTime < LogonTime < LogoutTime < endTime So to set properly any application you need to set startTime before application atart And logonTime when you need to start send messages. Here the example: # default settings for sessions [DEFAULT] ConnectionType=acceptor SenderCompID=XXXX SocketAcceptPort=1111 FileLogPath=. # session definition [SESSION] # inherit ConnectionType, ReconnectInterval and SenderCompID from default BeginString=FIX.4.0 TargetCompID=YYYY StartTime=00:42:01 LogonTime=00:50:01 LogoutTime=08:34:00 EndTime=08:40:00 HeartBtInt=30 UseDataDictionary=N FileStorePath=. |
From: <or...@qu...> - 2010-06-10 13:15:57
|
Yes, QuickFIX is multi-threaded. In particular there is a ThreadedSocketInitiator and ThreadedSocketAcceptor which will receive message asynchronously and on separate threads for each session. QuickFIX will protect it's own variables, however it is up to you to protect your own. The callbacks will come from multiple threads. There is a SynchronizedApplication class to do this for you, however I do not recommend it for high performance applications as it is to aggressive in its locking for multiple safety. Doing your own resource locking is ideal. All that being said I do not know that I have any statistics such a large number of open sessions. So it is something you will definitely want to test to make sure it fits your needs. --oren > -------- Original Message -------- > Subject: [Quickfix-users] Multithreading and reliability > From: "Nazar Andrienko" <na...@um...> > Date: Mon, June 07, 2010 2:47 pm > To: <qui...@li...> > > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hello! > > I'm planning to develop a FIX server, that would serve rather large amount > of sessions (about 10K+). I can't find any information about QuickFIX > benchmarks and about multithreading support in QuickFIX. > > My basic question is: are messages received asynchronously by QuickFIX? Are > they handled in different threads? Do I need to protect my global variables > using synchronization primitives? If QuickFIX is not multithreaded, than I > can't understand how to achieve a good performance using it... > > Thanks in advance! > > Best regards, > Nazar > > > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users |
From: Nazar A. <na...@um...> - 2010-06-07 19:59:29
|
Hello! I'm planning to develop a FIX server, that would serve rather large amount of sessions (about 10K+). I can't find any information about QuickFIX benchmarks and about multithreading support in QuickFIX. My basic question is: are messages received asynchronously by QuickFIX? Are they handled in different threads? Do I need to protect my global variables using synchronization primitives? If QuickFIX is not multithreaded, than I can't understand how to achieve a good performance using it... Thanks in advance! Best regards, Nazar |
From: Kenny S. <ks...@co...> - 2010-06-07 13:12:48
|
QuickFIX/J has a separate mailing list that may be more helpful: http://www.quickfixj.org/support/ -- Kenny Stone Connamara Systems, LLC On Mon, Jun 7, 2010 at 2:53 AM, Krebs Reto <ret...@pr...>wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi, > > We are using quickfix/j as initiator to connect to various acceptors. At > the start of our FIX application we use one initiator > (ThreadedSocketInitiator) to create all our sessions. > > Is there a possibility to individually stop these sessions in a way that > the thread behind the session also dies? We need this functionality because > we want to restart a session with different SessionSettings (e.g. session > start time/end time) afterwards. > > So far, we are able to stop a session with the stop() method. The session > logs out afterwards but the thread behind the session keeps on living. But > we cannot change the SessionSettings of that session. The only thing we can > do is end our FIX application and restart it with new SessionSettings. > > Is it maybe a good idea to have more than one Initiator (e.g. one Initiator > per Session) to be able to individually stop and re-initialize this > initiator? > > We have also tried with SocketInitiator (without multi-threading). Problem > there is the reduced performance and we still do not have a possibility to > end and restart a session with different SessionSettings. The session > remains unchangeable until we end the FIX application. > > Hope someone can help. > > Cheers, > Reto > > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: Krebs R. <ret...@pr...> - 2010-06-07 08:05:39
|
Hi, We are using quickfix/j as initiator to connect to various acceptors. At the start of our FIX application we use one initiator (ThreadedSocketInitiator) to create all our sessions. Is there a possibility to individually stop these sessions in a way that the thread behind the session also dies? We need this functionality because we want to restart a session with different SessionSettings (e.g. session start time/end time) afterwards. So far, we are able to stop a session with the stop() method. The session logs out afterwards but the thread behind the session keeps on living. But we cannot change the SessionSettings of that session. The only thing we can do is end our FIX application and restart it with new SessionSettings. Is it maybe a good idea to have more than one Initiator (e.g. one Initiator per Session) to be able to individually stop and re-initialize this initiator? We have also tried with SocketInitiator (without multi-threading). Problem there is the reduced performance and we still do not have a possibility to end and restart a session with different SessionSettings. The session remains unchangeable until we end the FIX application. Hope someone can help. Cheers, Reto |
From: Anna C. <ann...@gm...> - 2010-05-28 12:43:12
|
I'm having trouble compiling quickfix with ruby support in Mac OsX snow leopard I made the following commands: ./bootstrap ./configure --with-ruby make In make I received the following erro message: In file included from ../C++/FieldConvertors.h:25, from ../C++/Field.h:32, from QuickfixRuby.cpp:3906: ../C++/FieldTypes.h: In constructor ‘FIX::UtcDate::UtcDate(long int)’: ../C++/FieldTypes.h:570: warning: implicit conversion shortens 64-bit value into a 32-bit value ../C++/FieldTypes.h: In constructor ‘FIX::LocalDate::LocalDate(long int)’: ../C++/FieldTypes.h:606: warning: implicit conversion shortens 64-bit value into a 32-bit value In file included from ../C++/Field.h:32, from QuickfixRuby.cpp:3906: ../C++/FieldConvertors.h: In static member function ‘static bool FIX::DoubleConvertor::convert(const std::string&, double&)’: ../C++/FieldConvertors.h:279: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘while’ statement ../C++/FieldConvertors.h:285: warning: suggest a space before ‘;’ or explicit braces around empty body in ‘while’ statement In file included from QuickfixRuby.cpp:3906: ../C++/Field.h: In member function ‘void FIX::FieldBase::calculate() const’: ../C++/Field.h:111: warning: implicit conversion shortens 64-bit value into a 32-bit value ../C++/Field.h:119: warning: implicit conversion shortens 64-bit value into a 32-bit value ../C++/Field.h: In member function ‘int FIX::IntField::getValue() const’: ../C++/Field.h:306: warning: implicit conversion shortens 64-bit value into a 32-bit value ../C++/Field.h: In member function ‘int FIX::CheckSumField::getValue() const’: ../C++/Field.h:427: warning: implicit conversion shortens 64-bit value into a 32-bit value In file included from QuickfixRuby.cpp:3907: ../C++/Message.h: In member function ‘FIX::FieldBase FIX::Message::extractField(const std::string&, size_t&, const FIX::DataDictionary*, const FIX::DataDictionary*, const FIX::Group*)’: ../C++/Message.h:322: warning: implicit conversion shortens 64-bit value into a 32-bit value In file included from QuickfixRuby.cpp:3912: ../C++/Dictionary.h: In member function ‘int FIX::Dictionary::size() const’: ../C++/Dictionary.h:50: warning: implicit conversion shortens 64-bit value into a 32-bit value In file included from QuickfixRuby.cpp:3913: ../C++/SessionSettings.h: In member function ‘int FIX::SessionSettings::size() const’: ../C++/SessionSettings.h:150: warning: implicit conversion shortens 64-bit value into a 32-bit value In file included from ../C++/SocketConnector.h:29, from ../C++/SocketInitiator.h:30, from QuickfixRuby.cpp:3922: ../C++/SocketMonitor.h: In member function ‘int FIX::SocketMonitor::numSockets()’: ../C++/SocketMonitor.h:64: warning: implicit conversion shortens 64-bit value into a 32-bit value QuickfixRuby.cpp: In function ‘int SWIG_AsCharPtrAndSize(VALUE, char**, size_t*, int*)’: QuickfixRuby.cpp:3978: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE Application_onCreate_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4270: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE Application_onLogon_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4303: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE Application_onLogout_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4336: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE Application_toAdmin_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4369: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE Application_toApp_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4409: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE Application_fromAdmin_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4476: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE Application_fromApp_rescue(VALUE, VALUE)’: QuickfixRuby.cpp:4549: error: ‘struct RString’ has no member named ‘ptr’ QuickfixRuby.cpp: In function ‘VALUE _wrap_FieldMap_calculateString__SWIG_0(int, VALUE*, VALUE)’: QuickfixRuby.cpp:14846: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_FieldMap_calculateString__SWIG_1(int, VALUE*, VALUE)’: QuickfixRuby.cpp:14891: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_Message_toString__SWIG_4(int, VALUE*, VALUE)’: QuickfixRuby.cpp:16524: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_Message_toString__SWIG_5(int, VALUE*, VALUE)’: QuickfixRuby.cpp:16585: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_Message_toString__SWIG_6(int, VALUE*, VALUE)’: QuickfixRuby.cpp:16638: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_Message_toString__SWIG_7(int, VALUE*, VALUE)’: QuickfixRuby.cpp:16683: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_Message_toXML__SWIG_1(int, VALUE*, VALUE)’: QuickfixRuby.cpp:16929: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_SessionID_toString__SWIG_1(int, VALUE*, VALUE)’: QuickfixRuby.cpp:221537: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_DataDictionary__getFieldName(int, VALUE*, VALUE)’: QuickfixRuby.cpp:234997: error: ‘STR2CSTR’ was not declared in this scope QuickfixRuby.cpp: In function ‘VALUE _wrap_DataDictionary__getValueName(int, VALUE*, VALUE)’: QuickfixRuby.cpp:235175: error: ‘STR2CSTR’ was not declared in this scope make[4]: *** [QuickfixRuby.o] Error 1 make[3]: *** [all-local] Error 2 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Could anyone help me? Anna Cruz |
From: Gunter J. <ma...@je...> - 2010-05-10 17:59:35
|
Try StartDay=we EndDay=th Am 06.05.2010 um 21:35 schrieb Francis Gingras: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > I am trying to setup two session per day for a connection (I must log off for a few minutes twice a day). I assume this means I need 12 sessions and here is the first one I set up. > > I have the following settings in the [Session] section: > > StartTime=21:05:00 > EndTime=20:59:00 > StartDay=wed > EndDay=thu > > The error message is "Configuration failed: LogonTime must be between StartTime and EndTime" but there is no LogonTime setting in QuickFIX. What does this refer to and what is wrong with my settings? > > Thanks, > > Francis > ------------------------------------------------------------------------------ > > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users |
From: Francis G. <fr...@at...> - 2010-05-07 03:30:47
|
I am trying to setup two session per day for a connection (I must log off for a few minutes twice a day). I assume this means I need 12 sessions and here is the first one I set up. I have the following settings in the [Session] section: StartTime=21:05:00 EndTime=20:59:00 StartDay=wed EndDay=thu The error message is "Configuration failed: LogonTime must be between StartTime and EndTime" but there is no LogonTime setting in QuickFIX. What does this refer to and what is wrong with my settings? Thanks, Francis |
From: Joseph <jkc...@gm...> - 2010-05-04 11:20:17
|
Hi Tony, We're facing the same error. We know it's due to callbacks from unmanaged code to managed code but we didn't find a solution yet. Have you found a solution already? Joseph. |
From: <or...@qu...> - 2010-05-03 16:03:48
|
It has supported STLPort in the past, however it has been a while since that configuration has been tested. It is possible that it needs to be retested. --oren > -------- Original Message -------- > Subject: [Quickfix-users] STLport support for windows C++ quickfix > From: <Pra...@ba...> > Date: Tue, April 20, 2010 5:57 pm > To: <qui...@li...> > > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html<hr>I am trying to build the windows visual studio c++ (visual studio 2005). > I have specified the HAVE_STLPORT in the config_windows.h > But when I use the dumbin.exe on the resulting quickfix lib. I see methods of the form. > > FIX::Dictionary::setString( > class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &, > class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)) > > Which seems to indicate that the stlport does not seem to have been applied in the library. > > Any suggestions on how I can verify that the library actually supports stlport or not. > > Thanks, > -Pradyot Dhulipala > > > > _______________________________________________ > > This e-mail may contain information that is confidential, privileged or otherwise protected from disclosure. If you are not an intended recipient of this e-mail, do not duplicate or redistribute it by any means. Please delete it and any attachments and notify the sender that you have received it in error. Unless specifically indicated, this e-mail is not an offer to buy or sell or a solicitation to buy or sell any securities, investment products or other financial product or service, an official confirmation of any transaction, or an official statement of Barclays. Any views or opinions presented are solely those of the author and do not necessarily represent those of Barclays. This e-mail is subject to terms available at the following link: www.barcap.com/emaildisclaimer. By messaging with Barclays you consent to the foregoing. Barclays Capital is the investment banking division of Barclays Bank PLC, a company registered in England (number 1026167) with its registered office at 1 Churchill Place, London, E14 5HP. This email may relate to or be sent from other members of the Barclays Group. > _______________________________________________<hr>------------------------------------------------------------------------------<hr>_______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users |