quickfix-developers Mailing List for QuickFIX (Page 64)
Brought to you by:
orenmnero
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
|
Feb
(5) |
Mar
(16) |
Apr
(15) |
May
(17) |
Jun
(33) |
Jul
(35) |
Aug
(34) |
Sep
(19) |
Oct
(40) |
Nov
(51) |
Dec
(43) |
2003 |
Jan
(45) |
Feb
(79) |
Mar
(124) |
Apr
(121) |
May
(132) |
Jun
(77) |
Jul
(110) |
Aug
(57) |
Sep
(48) |
Oct
(83) |
Nov
(60) |
Dec
(40) |
2004 |
Jan
(67) |
Feb
(72) |
Mar
(74) |
Apr
(87) |
May
(70) |
Jun
(96) |
Jul
(75) |
Aug
(147) |
Sep
(128) |
Oct
(83) |
Nov
(67) |
Dec
(42) |
2005 |
Jan
(110) |
Feb
(84) |
Mar
(68) |
Apr
(55) |
May
(51) |
Jun
(192) |
Jul
(111) |
Aug
(100) |
Sep
(79) |
Oct
(127) |
Nov
(73) |
Dec
(112) |
2006 |
Jan
(95) |
Feb
(120) |
Mar
(138) |
Apr
(127) |
May
(124) |
Jun
(97) |
Jul
(103) |
Aug
(88) |
Sep
(138) |
Oct
(91) |
Nov
(112) |
Dec
(57) |
2007 |
Jan
(55) |
Feb
(35) |
Mar
(56) |
Apr
(16) |
May
(20) |
Jun
(77) |
Jul
(43) |
Aug
(47) |
Sep
(29) |
Oct
(54) |
Nov
(39) |
Dec
(40) |
2008 |
Jan
(69) |
Feb
(79) |
Mar
(122) |
Apr
(106) |
May
(114) |
Jun
(76) |
Jul
(83) |
Aug
(71) |
Sep
(53) |
Oct
(75) |
Nov
(54) |
Dec
(43) |
2009 |
Jan
(32) |
Feb
(31) |
Mar
(64) |
Apr
(48) |
May
(38) |
Jun
(43) |
Jul
(35) |
Aug
(15) |
Sep
(52) |
Oct
(62) |
Nov
(62) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(10) |
Mar
(47) |
Apr
(22) |
May
(5) |
Jun
(54) |
Jul
(19) |
Aug
(54) |
Sep
(16) |
Oct
(15) |
Nov
(7) |
Dec
(8) |
2011 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(41) |
Jun
(40) |
Jul
(29) |
Aug
(17) |
Sep
(12) |
Oct
(23) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(8) |
Feb
(24) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(5) |
Jul
(5) |
Aug
(5) |
Sep
(2) |
Oct
(9) |
Nov
(2) |
Dec
(18) |
2013 |
Jan
(25) |
Feb
(16) |
Mar
(8) |
Apr
(2) |
May
(16) |
Jun
(17) |
Jul
(2) |
Aug
(13) |
Sep
(3) |
Oct
(4) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
(22) |
Apr
(9) |
May
(3) |
Jun
(1) |
Jul
(5) |
Aug
(11) |
Sep
(18) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(37) |
Jul
|
Aug
(4) |
Sep
(6) |
Oct
(1) |
Nov
(4) |
Dec
(2) |
2016 |
Jan
(9) |
Feb
(3) |
Mar
(7) |
Apr
(1) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(3) |
Nov
(16) |
Dec
|
2017 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(12) |
May
(4) |
Jun
(7) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(23) |
Dec
(8) |
2018 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(3) |
Dec
|
2020 |
Jan
|
Feb
(4) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
(5) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jiryih T. <jt...@ya...> - 2008-12-08 14:10:55
|
I feel the same. Since the test was performed against the session, I think the get should also be against the session as well. You get a exception thrown when it is not set in default. Also, I believe the setting in session is to override the setting in default. The current implementation doesn't seem to be doing that by going to default. std::set<SessionID> sessions = s.getSessions(); std::set<SessionID>::iterator i = sessions.begin(); { Dictionary settings = s.get( *i );for( ; i != sessions.end(); ++i ) reuseAddress = s.get().getBool( SOCKET_REUSE_ADDRESS ); } ----- Original Message ---- From: Peter Piper <pet...@ho...> To: qui...@li... Sent: Friday, December 5, 2008 11:28:13 AM Subject: [Quickfix-developers] Strange logic in ThreadedSocketAcceptor::onInitialize() QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html ThreadedSocketAcceptor::onInitialize() contains the following code: if( settings.has( SOCKET_REUSE_ADDRESS ) ) reuseAddress = s.get().getBool( SOCKET_REUSE_ADDRESS ); which is throwing an exception on my system because the SOCKET_REUSE_ADDRESS entry is present in the session configuration (and therefore the if() clause is true) but is not present in the DEFAULTS configuration (and therefore the assignment fails and throws a FIX::ConfigError exception). I'm not familiar with the internals of Quickfix but this looks like a strange piece of logic to me. Why is the function testing the dictionary for the session settings but getting the value from the defaults? Dan ________________________________ Get Windows Live Messenger on your Mobile. Click Here! if( settings.has( SOCKET_REUSE_ADDRESS ) )// reuseAddress = s.get(*i).getBool( SOCKET_REUSE_ADDRESS );Jiryih Tsaur |
From: Peter P. <pet...@ho...> - 2008-12-05 16:28:17
|
ThreadedSocketAcceptor::onInitialize() contains the following code: if( settings.has( SOCKET_REUSE_ADDRESS ) ) reuseAddress = s.get().getBool( SOCKET_REUSE_ADDRESS ); which is throwing an exception on my system because the SOCKET_REUSE_ADDRESS entry is present in the session configuration (and therefore the if() clause is true) but is not present in the DEFAULTS configuration (and therefore the assignment fails and throws a FIX::ConfigError exception). I'm not familiar with the internals of Quickfix but this looks like a strange piece of logic to me. Why is the function testing the dictionary for the session settings but getting the value from the defaults? Dan _________________________________________________________________ Live Search presents Big Snap II - win John Lewis vouchers http://clk.atdmt.com/UKM/go/117442309/direct/01/ |
From: Peter P. <pet...@ho...> - 2008-12-05 15:56:36
|
Thanks for the suggestion! In fact, I'm not using configuration files (I need to be able to build the dictionary in code) but I will try using separate dictionaries which should be the equivalent to what you have. Dan From: jo...@ha... To: pet...@ho...; qui...@li... Subject: RE: [Quickfix-developers] Configuration seems broken when mixing acceptor and initiator sessions Date: Fri, 5 Dec 2008 10:16:48 -0500 I managed to get this to work by creating two separate config files - one for the initiators and one for the acceptors. I don't know if this is the "preferred" way to do it, but I can tell you it works in production for me every day. John From: Peter Piper [mailto:pet...@ho...] Sent: Friday, December 05, 2008 9:56 AM To: qui...@li... Subject: [Quickfix-developers] Configuration seems broken when mixing acceptor and initiator sessions Hi, I am trying to have a single application that is both an initiator and an acceptor. When I try to start my ThreadedSocketAcceptor, it looks through all of the configuration entries and appears to complain that the session with a ConnectionType set to "initiator" does not contain an entry for "SocketAcceptPort". Why is the acceptor code trying to use all of the settings in this way, including the initiator settings? Has anyone got mixed-initiator/acceptor applications to work? If so, would you be able to gve me a quick summary of how you assign one set of sessions to the acceptor and another set to the initiator? Thanks, Dan Win John Lewis vouchers with BigSnapSearch.com Search now No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.176 / Virus Database: 270.9.14/1831 - Release Date: 12/5/2008 9:57 AM _________________________________________________________________ Are you a PC? Upload your PC story and show the world http://clk.atdmt.com/UKM/go/122465942/direct/01/ |
From: Peter P. <pet...@ho...> - 2008-12-05 14:55:49
|
Hi, I am trying to have a single application that is both an initiator and an acceptor. When I try to start my ThreadedSocketAcceptor, it looks through all of the configuration entries and appears to complain that the session with a ConnectionType set to "initiator" does not contain an entry for "SocketAcceptPort". Why is the acceptor code trying to use all of the settings in this way, including the initiator settings? Has anyone got mixed-initiator/acceptor applications to work? If so, would you be able to gve me a quick summary of how you assign one set of sessions to the acceptor and another set to the initiator? Thanks, Dan _________________________________________________________________ Imagine a life without walls. See the possibilities. http://clk.atdmt.com/UKM/go/122465943/direct/01/ |
From: Rick L. <ric...@gm...> - 2008-12-04 19:50:21
|
Greetings, I have at least one more piece of the puzzle regarding these "missing" ExecutionReport messages in my fromApp() callback method. I enabled a FileLogFactory, and waited until the bug occurred again, and indeed a 35=8 (ExecutionReport "New" confirmation) message immediately proceeded my 35=D (NewOrderSingle) message. What I'm wondering -- without really know too terribly much about what's going on under the hood in QuickFix -- is if it's still possible that the FileLogFactory saw the exchanges 35=8 response message but it still didn't reach the fromApp() callback? I've gone through my fromApp() callback about a thousand times, and cannot determine where the code could be breaking (without an exception being thrown). One of the first few lines of code in this callback is writing the execution report to my SQL Server database for audit-trail purposes, and this line is missing from my database every time. I'm just wondering if the presence in the FileLog is a guarantee that the bug occurs *after* the fromApp() callback... Thanks, Rick On Tue, Dec 2, 2008 at 2:11 PM, Rick Lane <ric...@gm...> wrote: > What I meant to say below was: > > "What appears to be happening, in very rare instances, is I'm not getting > this ExecutionReport for some *orders *" > > > On Tue, Dec 2, 2008 at 2:07 PM, Rick Lane <ric...@gm...> wrote: > >> Greetings, >> >> I've recently discovered a very unsettling bug in my trading platform, and >> I wanted to ask a fairly general question to see if this has bene seen >> anywhere else (I'm assuming it's a bug in *my *code, but it can't hurt to >> ask the group)... >> >> When a New Order Single message is generated by the user, I don't send an >> acknowledgment of that order until I get the ExecutionReport confirming the >> order, in my >> >> onMessage(ExecutionReport message, QuickFix.SessionID session) >> >> MessageCracker message handler. Whenever I get this confirmation, I add >> this particular order to my database, to my order books, etc. >> >> What appears to be happening, in very rare instances, is I'm not getting >> this ExecutionReport for some fills. What this means is, my platform >> doesn't know the order exists, but it's still working in the Exchange's eyes >> -- so there's not even a way to cancel the order unless I call the exchange >> or use their web-based front-end to cancel the order. >> >> We run some automated trading applications that can have upwards of a *million >> *orders in a given day (constantly adding/pulling orders, etc.) -- and >> this bug occurs, usually, once every two days. So it's a very low >> percentage of the time. >> >> I've spoken with the exchange, and they are showing that ExecutionReports >> *were *in fact sent (and QuickFix would issue a resend request if the >> message wasn't sent and a subsequent message had a higher sequence number). >> Since this isn't occurring, I'm wondering if there is some way the message >> might be received by the QuickFix layer and just isn't sent up to the >> MessageCracker layer. I have try-catch blocks in my handler, and no >> exceptions are being thrown, so I don't know how I could be missing this >> acknowledgment. >> >> Has anyone seen anything even remotely similar? >> > > |
From: ciju j. <jo...@oc...> - 2008-12-04 00:19:49
|
On Wed, Dec 3, 2008 at 5:43 PM, Wilhelm Thomas <th...@cu...> wrote: > Hi Ciju > > Thanks - Sorry for the delay, I was off for few days. > I just try your code and it works well. This is great. Are you using a 64 bit QF build? We are seeing good performance on our end as well. Thanks for validating the changes. > > 1) I'm using c#. The only issue I can see but this is not from your code > (this issue was there before) is a deadlock, it occurs if there is a > connection delay or drop out. An easy way to simulate a connection drop is > to unplug the network and plug it again or disable the "network connection" > and enable it again, then QuickFix will hang in the c ++ code. After this I > can not reconnect the initiator (ThreadedSocketInitiator) and I need to > crash the c# application and start again, are you experiencing the same > thing? No, I haven't run into this. I expect someone else may have seen this as this looks like an often encountered scenario. > > 2) also when I run some c# application in debug mode, sometime I see this > > > Any idea what is it and how to fix this? No ideas there. > > 3) When will you push your modifications in svn? I haven't heard back from the QF administrators on this issue. What I published are my final changes, so I will be happy if someone with commit access pushes this into the repo. > > I'll run more tests for the c# version thanks. Keep me posted. Ciju > > Thanks again > > Wilhelm > > > Attached is a zip with just the modified files. Unzip in local > workspace will update relevant files. > > thanks, > Ciju > > On Mon, Nov 24, 2008 at 10:25 AM, ciju john <jo...@oc...> wrote: > > > Hi all. > > I have been working on a x64 port of QuickFix. The route we took was > to add new debug/release build configurations to the VC++ 8 project. > We have had to recreate a missing file > > src/.NET/FieldMap.cpp > > to get everything built. Attached is a diff of my changes. I would be > very thankful for a review of the changes and would like to push this > into the repo. > > thanks, > Ciju > > |
From: Wilhelm T. <th...@cu...> - 2008-12-04 00:05:23
|
Hi Ciju Thanks - Sorry for the delay, I was off for few days. I just try your code and it works well. This is great. 1) I'm using c#. The only issue I can see but this is not from your code (this issue was there before) is a deadlock, it occurs if there is a connection delay or drop out. An easy way to simulate a connection drop is to unplug the network and plug it again or disable the "network connection" and enable it again, then QuickFix will hang in the c ++ code. After this I can not reconnect the initiator (ThreadedSocketInitiator) and I need to crash the c# application and start again, are you experiencing the same thing? 2) also when I run some c# application in debug mode, sometime I see this Any idea what is it and how to fix this? 3) When will you push your modifications in svn? I'll run more tests for the c# version Thanks again Wilhelm > Attached is a zip with just the modified files. Unzip in local > workspace will update relevant files. > > thanks, > Ciju > > On Mon, Nov 24, 2008 at 10:25 AM, ciju john <jo...@oc...> wrote: > >> Hi all. >> >> I have been working on a x64 port of QuickFix. The route we took was >> to add new debug/release build configurations to the VC++ 8 project. >> We have had to recreate a missing file >> >> src/.NET/FieldMap.cpp >> >> to get everything built. Attached is a diff of my changes. I would be >> very thankful for a review of the changes and would like to push this >> into the repo. >> >> thanks, >> Ciju >> |
From: Raja <sra...@ga...> - 2008-12-03 14:39:52
|
They are not different overloads for FIX42::MessageCracker. I need that because my App is going to Handle Multiple versions. I am inheriting FIX::MessageCracker which inherits FIX42::MessageCracker. Yes My onMessage for New order single and security definitions are working properly. That adds the whole cofusion to this problem. Yes . I strongly suspect some VC++ run time problem we have. I will send it to Microsoft. Thanks for all your help, Raja Phone 312-928-8006 GatewayCapital Group Chicago -----Original Message----- From: And...@rb... [mailto:And...@rb...] Sent: Wednesday, December 03, 2008 2:37 AM To: sra...@ga... Cc: qui...@li... Subject: RE: [Quickfix-developers] Problem with Message craker Hi Raja, Are these different function overloads? void onMessage( const FIX42::OrderCancelRequest&, const FIX::SessionID& ); and virtual void onMessage( const OrderCancelRequest&, const FIX::SessionID& ) Are you inheriting from QuickFix42::MessageCracker ? I think you'd get a compiler error if this wasn't the case but wanted to check. Do your other onMessage() overloads get executed correctly? When you are debugging and you enter the MessageCracker::onMessage() { throw notSupported; } Is your "this" pointer as expected? i.e. Do you see your derived object, and does your vtable show the onMessage(const FIX42::OrderCancelRequest) ? -----Original Message----- From: Raja [mailto:sra...@ga...] Sent: 02 December 2008 17:56 To: qui...@li... Subject: [Quickfix-developers] Problem with Message craker QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html **************************************************************************** ******* The Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB. Authorised and regulated by the Financial Services Authority This e-mail message is confidential and for use by the addressee only. If the message is received by anyone other than the addressee, please return the message to the sender by replying to it and then delete the message from your computer. Internet e-mails are not necessarily secure. The Royal Bank of Scotland plc does not accept responsibility for changes made to this message after it was sent. Whilst all reasonable care has been taken to avoid the transmission of viruses, it is the responsibility of the recipient to ensure that the onward transmission, opening or use of this message and any attachments will not adversely affect its systems or data. No responsibility is accepted by The Royal Bank of Scotland plc in this regard and the recipient should carry out such virus and other checks as it considers appropriate. Visit our websites at: www.rbs.com www.rbs.com/gbm www.rbsgc.com **************************************************************************** ******* |
From: <And...@rb...> - 2008-12-03 09:06:20
|
Hi Raja, Are these different function overloads? void onMessage( const FIX42::OrderCancelRequest&, const FIX::SessionID& ); and virtual void onMessage( const OrderCancelRequest&, const FIX::SessionID& ) Are you inheriting from QuickFix42::MessageCracker ? I think you'd get a compiler error if this wasn't the case but wanted to check. Do your other onMessage() overloads get executed correctly? When you are debugging and you enter the MessageCracker::onMessage() { throw notSupported; } Is your "this" pointer as expected? i.e. Do you see your derived object, and does your vtable show the onMessage(const FIX42::OrderCancelRequest) ? -----Original Message----- From: Raja [mailto:sra...@ga...] Sent: 02 December 2008 17:56 To: qui...@li... Subject: [Quickfix-developers] Problem with Message craker QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html *********************************************************************************** The Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB. Authorised and regulated by the Financial Services Authority This e-mail message is confidential and for use by the addressee only. If the message is received by anyone other than the addressee, please return the message to the sender by replying to it and then delete the message from your computer. Internet e-mails are not necessarily secure. The Royal Bank of Scotland plc does not accept responsibility for changes made to this message after it was sent. Whilst all reasonable care has been taken to avoid the transmission of viruses, it is the responsibility of the recipient to ensure that the onward transmission, opening or use of this message and any attachments will not adversely affect its systems or data. No responsibility is accepted by The Royal Bank of Scotland plc in this regard and the recipient should carry out such virus and other checks as it considers appropriate. Visit our websites at: www.rbs.com www.rbs.com/gbm www.rbsgc.com *********************************************************************************** |
From: Rick L. <ric...@gm...> - 2008-12-02 20:39:06
|
John, Greetings -- I'm actually not using an Acceptor -- I'm using a ThreadedSocketInitiator; this is merely a client that connects to the exchange; it's not acting as a QuickFix server. Does your theory/thought still stand? Also, while I'm using a ThreadedSocketInitiator, I only connect to one session. I thought I read somewhere, a long time ago, that even if you're using a single session, this should be used in lieu of SocketInitiator. I could be mistaken. Thanks, Rick On Tue, Dec 2, 2008 at 2:27 PM, John Haldi <jo...@ha...> wrote: > Rick, > > Are you using the threaded socket acceptor with multiple sessions? > > jh > > ------------------------------ > *From:* Rick Lane [mailto:ric...@gm...] > *Sent:* Tuesday, December 02, 2008 3:07 PM > *To:* qui...@li... > *Subject:* [Quickfix-developers] Messages not reaching > application(MessageCracker) layer > > Greetings, > > I've recently discovered a very unsettling bug in my trading platform, and > I wanted to ask a fairly general question to see if this has bene seen > anywhere else (I'm assuming it's a bug in *my *code, but it can't hurt to > ask the group)... > > When a New Order Single message is generated by the user, I don't send an > acknowledgment of that order until I get the ExecutionReport confirming the > order, in my > > onMessage(ExecutionReport message, QuickFix.SessionID session) > > MessageCracker message handler. Whenever I get this confirmation, I add > this particular order to my database, to my order books, etc. > > What appears to be happening, in very rare instances, is I'm not getting > this ExecutionReport for some fills. What this means is, my platform > doesn't know the order exists, but it's still working in the Exchange's eyes > -- so there's not even a way to cancel the order unless I call the exchange > or use their web-based front-end to cancel the order. > > We run some automated trading applications that can have upwards of a *million > *orders in a given day (constantly adding/pulling orders, etc.) -- and > this bug occurs, usually, once every two days. So it's a very low > percentage of the time. > > I've spoken with the exchange, and they are showing that ExecutionReports > *were *in fact sent (and QuickFix would issue a resend request if the > message wasn't sent and a subsequent message had a higher sequence number). > Since this isn't occurring, I'm wondering if there is some way the message > might be received by the QuickFix layer and just isn't sent up to the > MessageCracker layer. I have try-catch blocks in my handler, and no > exceptions are being thrown, so I don't know how I could be missing this > acknowledgment. > > Has anyone seen anything even remotely similar? > > No virus found in this incoming message. > Checked by AVG - http://www.avg.com > Version: 8.0.176 / Virus Database: 270.9.12/1824 - Release Date: 12/2/2008 > 9:31 AM > > |
From: Rick L. <ric...@gm...> - 2008-12-02 20:11:30
|
What I meant to say below was: "What appears to be happening, in very rare instances, is I'm not getting this ExecutionReport for some *orders *" On Tue, Dec 2, 2008 at 2:07 PM, Rick Lane <ric...@gm...> wrote: > Greetings, > > I've recently discovered a very unsettling bug in my trading platform, and > I wanted to ask a fairly general question to see if this has bene seen > anywhere else (I'm assuming it's a bug in *my *code, but it can't hurt to > ask the group)... > > When a New Order Single message is generated by the user, I don't send an > acknowledgment of that order until I get the ExecutionReport confirming the > order, in my > > onMessage(ExecutionReport message, QuickFix.SessionID session) > > MessageCracker message handler. Whenever I get this confirmation, I add > this particular order to my database, to my order books, etc. > > What appears to be happening, in very rare instances, is I'm not getting > this ExecutionReport for some fills. What this means is, my platform > doesn't know the order exists, but it's still working in the Exchange's eyes > -- so there's not even a way to cancel the order unless I call the exchange > or use their web-based front-end to cancel the order. > > We run some automated trading applications that can have upwards of a *million > *orders in a given day (constantly adding/pulling orders, etc.) -- and > this bug occurs, usually, once every two days. So it's a very low > percentage of the time. > > I've spoken with the exchange, and they are showing that ExecutionReports > *were *in fact sent (and QuickFix would issue a resend request if the > message wasn't sent and a subsequent message had a higher sequence number). > Since this isn't occurring, I'm wondering if there is some way the message > might be received by the QuickFix layer and just isn't sent up to the > MessageCracker layer. I have try-catch blocks in my handler, and no > exceptions are being thrown, so I don't know how I could be missing this > acknowledgment. > > Has anyone seen anything even remotely similar? > |
From: Malinka R. <ael...@gm...> - 2008-12-02 20:10:17
|
we would need to see more of your code, what you're providing is not enough, how are you initializing the Connection (SocketInitiator/SocketAcceptor)? and can you post code for your ApplicationObject being passed into the Acceptor/Initiator (should be your message cracker object you mentioned below) On Tue, Dec 2, 2008 at 12:56, Raja <sra...@ga...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I am using C++ version of quick fix. > > I am using message cracker. I have defined the following in my application > > void onMessage( const FIX42::NewOrderSingle&, const FIX::SessionID& ); > > void onMessage( const FIX42::OrderCancelRequest&, const FIX::SessionID& ); > > void onMessage( const FIX42::OrderCancelReplaceRequest&, const > FIX::SessionID& ); > > void onMessage( const FIX42::SecurityDefinitionRequest&, const > FIX::SessionID& ); > > I have coded the logic for these in my cpp. > > For 35=D my code gets executed properly. > > But when there is a cancel 35=F, the message cracker throws a "Unsupported > message" error. It does not come to my code at all. > > I was debugging Message cracker. This code gets executed. > > virtual void onMessage( const OrderCancelRequest&, const FIX::SessionID& ) > > > { throw FIX::UnsupportedMessageType(); } > > Why my function overload is not working. I have verfied the signature. What > am I doing wrong? > > I would appreciate any help on this. > > Regards, > > Raja > > Phone 312-928-8006 > > GatewayCapital Group Chicago > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Rick L. <ric...@gm...> - 2008-12-02 20:07:26
|
Greetings, I've recently discovered a very unsettling bug in my trading platform, and I wanted to ask a fairly general question to see if this has bene seen anywhere else (I'm assuming it's a bug in *my *code, but it can't hurt to ask the group)... When a New Order Single message is generated by the user, I don't send an acknowledgment of that order until I get the ExecutionReport confirming the order, in my onMessage(ExecutionReport message, QuickFix.SessionID session) MessageCracker message handler. Whenever I get this confirmation, I add this particular order to my database, to my order books, etc. What appears to be happening, in very rare instances, is I'm not getting this ExecutionReport for some fills. What this means is, my platform doesn't know the order exists, but it's still working in the Exchange's eyes -- so there's not even a way to cancel the order unless I call the exchange or use their web-based front-end to cancel the order. We run some automated trading applications that can have upwards of a *million *orders in a given day (constantly adding/pulling orders, etc.) -- and this bug occurs, usually, once every two days. So it's a very low percentage of the time. I've spoken with the exchange, and they are showing that ExecutionReports *were *in fact sent (and QuickFix would issue a resend request if the message wasn't sent and a subsequent message had a higher sequence number). Since this isn't occurring, I'm wondering if there is some way the message might be received by the QuickFix layer and just isn't sent up to the MessageCracker layer. I have try-catch blocks in my handler, and no exceptions are being thrown, so I don't know how I could be missing this acknowledgment. Has anyone seen anything even remotely similar? |
From: Raja <sra...@ga...> - 2008-12-02 18:17:45
|
I am using C++ version of quick fix. I am using message cracker. I have defined the following in my application void onMessage( const FIX42::NewOrderSingle&, const FIX::SessionID& ); void onMessage( const FIX42::OrderCancelRequest&, const FIX::SessionID& ); void onMessage( const FIX42::OrderCancelReplaceRequest&, const FIX::SessionID& ); void onMessage( const FIX42::SecurityDefinitionRequest&, const FIX::SessionID& ); I have coded the logic for these in my cpp. For 35=D my code gets executed properly. But when there is a cancel 35=F, the message cracker throws a "Unsupported message" error. It does not come to my code at all. I was debugging Message cracker. This code gets executed. virtual void onMessage( const OrderCancelRequest&, const FIX::SessionID& ) { throw FIX::UnsupportedMessageType(); } Why my function overload is not working. I have verfied the signature. What am I doing wrong? I would appreciate any help on this. Regards, Raja Phone 312-928-8006 GatewayCapital Group Chicago |
From: Malinka R. <ael...@gm...> - 2008-12-02 15:47:56
|
As far as i know there is only the second function you can inherit, if you were writing your function declaration as the second i'm pretty sure that was creating a new function call not overloading a previous one On Tue, Dec 2, 2008 at 04:38, Saman Marasinghe <mar...@gm...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi All, > > > > I have resolved the problem myself. Sorry for bugging you all. > > There are 2 virtual methods to inherit. > > > > virtual void onMessage( OrderCancelRequest&, const FIX::SessionID& ) {} > > > > virtual void onMessage( const OrderCancelRequest&, const FIX::SessionID& ) > {} > > > > I have inherited 1st one earlier. When I used the below one the problem > has been solved. > > > > Cheers. > > > > Saman > > > > *From:* Saman Marasinghe [mailto:mar...@gm...] > *Sent:* Tuesday, December 02, 2008 7:35 PM > *To:* 'qui...@li...' > *Cc:* 'Ned...@ao...' > *Subject:* Order Cancel Message Reject saying unsupported Message Type > > > > Hi All, > > > > I have a problem when sending a Cancel Order Message 35=F to the QuickFix > acceptor. This is the cancel message I sent and it is rejected saying > 'Unsupported Message Type'. > > > 8=FIX.4.19=8435=F34=15049=ARCA52=20081202-08:26:3456=TW11=12338=20041=1234554=155=AMLAK10=067 > > > > Rejection > > 8=FIX.4.19=8135=334=2849=TW52=20081202-08:26:3456=ARCA45=15058=Unsupported > message type10=128 > > > > But in my FIX41.xml that message type is well defined. > > > > <message name="OrderCancelRequest" msgtype="F" msgcat="app"> > > <field name="OrigClOrdID" required="Y"/> > > <field name="OrderID" required="N"/> > > <field name="ClOrdID" required="Y"/> > > <field name="ListID" required="N"/> > > <field name="ClientID" required="N"/> > > <field name="ExecBroker" required="N"/> > > <field name="Symbol" required="Y"/> > > <field name="SymbolSfx" required="N"/> > > <field name="SecurityID" required="N"/> > > <field name="IDSource" required="N"/> > > <field name="SecurityType" required="N"/> > > <field name="MaturityMonthYear" required="N"/> > > <field name="MaturityDay" required="N"/> > > <field name="PutOrCall" required="N"/> > > <field name="StrikePrice" required="N"/> > > <field name="OptAttribute" required="N"/> > > <field name="SecurityExchange" required="N"/> > > <field name="Issuer" required="N"/> > > <field name="SecurityDesc" required="N"/> > > <field name="Side" required="Y"/> > > <field name="OrderQty" required="N"/> > > <field name="CashOrderQty" required="N"/> > > <field name="Text" required="N"/> > > </message> > > > > However herewith I have attached my FIX41.xml. > > > > Could you please someone help me for this? > > > > Regards. > > > > Saman > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Clebson D. <Cle...@cm...> - 2008-12-02 09:39:13
|
IMHO this is not a dictionary issue. Look in your acceptor implementation if you are handling the message properly, perhaps your application is deliberately throwing UnsupportedMessageType exception. -----Mensagem original----- De: Asanka Abeysinghe [mailto:asa...@ho...] Enviada em: terça-feira, 2 de dezembro de 2008 07:04 Para: mar...@gm...; qui...@li... Assunto: Re: [Quickfix-developers] Order Cancel Message Rejectsaying unsupported Message Type QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |
From: Saman M. <mar...@gm...> - 2008-12-02 09:39:12
|
Hi All, I have resolved the problem myself. Sorry for bugging you all. There are 2 virtual methods to inherit. virtual void onMessage( OrderCancelRequest&, const FIX::SessionID& ) {} virtual void onMessage( const OrderCancelRequest&, const FIX::SessionID& ) {} I have inherited 1st one earlier. When I used the below one the problem has been solved. Cheers. Saman From: Saman Marasinghe [mailto:mar...@gm...] Sent: Tuesday, December 02, 2008 7:35 PM To: 'qui...@li...' Cc: 'Ned...@ao...' Subject: Order Cancel Message Reject saying unsupported Message Type Hi All, I have a problem when sending a Cancel Order Message 35=F to the QuickFix acceptor. This is the cancel message I sent and it is rejected saying 'Unsupported Message Type'. 8=FIX.4.19=8435=F34=15049=ARCA52=20081202-08:26:3456=TW11=12338=20041=123455 4=155=AMLAK10=067 Rejection 8=FIX.4.19=8135=334=2849=TW52=20081202-08:26:3456=ARCA45=15058=Unsupported message type10=128 But in my FIX41.xml that message type is well defined. <message name="OrderCancelRequest" msgtype="F" msgcat="app"> <field name="OrigClOrdID" required="Y"/> <field name="OrderID" required="N"/> <field name="ClOrdID" required="Y"/> <field name="ListID" required="N"/> <field name="ClientID" required="N"/> <field name="ExecBroker" required="N"/> <field name="Symbol" required="Y"/> <field name="SymbolSfx" required="N"/> <field name="SecurityID" required="N"/> <field name="IDSource" required="N"/> <field name="SecurityType" required="N"/> <field name="MaturityMonthYear" required="N"/> <field name="MaturityDay" required="N"/> <field name="PutOrCall" required="N"/> <field name="StrikePrice" required="N"/> <field name="OptAttribute" required="N"/> <field name="SecurityExchange" required="N"/> <field name="Issuer" required="N"/> <field name="SecurityDesc" required="N"/> <field name="Side" required="Y"/> <field name="OrderQty" required="N"/> <field name="CashOrderQty" required="N"/> <field name="Text" required="N"/> </message> However herewith I have attached my FIX41.xml. Could you please someone help me for this? Regards. Saman |
From: Asanka A. <asa...@ho...> - 2008-12-02 09:04:05
|
Have you enable the dictionary in the FIX configuration file ? UseDataDictionary=Y DataDictionary=<path>/FIX41.xml- Asanka From: mar...@gm... To: qui...@li... Date: Tue, 2 Dec 2008 19:34:46 +1100 Subject: [Quickfix-developers] Order Cancel Message Reject saying unsupported Message Type Hi All, I have a problem when sending a Cancel Order Message 35=F to the QuickFix acceptor. This is the cancel message I sent and it is rejected saying ‘Unsupported Message Type’. 8=FIX.4.19=8435=F34=15049=ARCA52=20081202-08:26:3456=TW11=12338=20041=1234554=155=AMLAK10=067 Rejection 8=FIX.4.19=8135=334=2849=TW52=20081202-08:26:3456=ARCA45=15058=Unsupported message type10=128 But in my FIX41.xml that message type is well defined. <message name="OrderCancelRequest" msgtype="F" msgcat="app"> <field name="OrigClOrdID" required="Y"/> <field name="OrderID" required="N"/> <field name="ClOrdID" required="Y"/> <field name="ListID" required="N"/> <field name="ClientID" required="N"/> <field name="ExecBroker" required="N"/> <field name="Symbol" required="Y"/> <field name="SymbolSfx" required="N"/> <field name="SecurityID" required="N"/> <field name="IDSource" required="N"/> <field name="SecurityType" required="N"/> <field name="MaturityMonthYear" required="N"/> <field name="MaturityDay" required="N"/> <field name="PutOrCall" required="N"/> <field name="StrikePrice" required="N"/> <field name="OptAttribute" required="N"/> <field name="SecurityExchange" required="N"/> <field name="Issuer" required="N"/> <field name="SecurityDesc" required="N"/> <field name="Side" required="Y"/> <field name="OrderQty" required="N"/> <field name="CashOrderQty" required="N"/> <field name="Text" required="N"/> </message> However herewith I have attached my FIX41.xml. Could you please someone help me for this? Regards. Saman _________________________________________________________________ News, entertainment and everything you care about at Live.com. Get it now! http://www.live.com/getstarted.aspx |
From: Clebson D. <Cle...@cm...> - 2008-12-01 10:28:31
|
Hello, According Microsoft MSXML 3.0 is supported in Windows vista, and it comes preinstalled. http://msdn.microsoft.com/en-us/library/cc507441(VS.85).aspx I am able to compile the latest version of quickfix available on subversion without problem. Regars, Clebson Derivan -----Mensagem original----- De: Jiryih Tsaur [mailto:jt...@ya...] Enviada em: sábado, 29 de novembro de 2008 15:17 Para: qui...@li... Assunto: [Quickfix-developers] QF Development on Windows Vista QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Hi, I am trying to setup QF on my Windows Vista for development and make sure I have all the dependencies listed on the page below. http://www.quickfixengine.org/quickfix/doc/html/dependencies.html But, It seems that the link to the required dependency MSXML3 is outdated. Anyone out there using Windows Vista what is the updated dependencies for the latest QF? Best, Jiryih Tsaur ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Jiryih T. <jt...@ya...> - 2008-11-29 17:17:21
|
Hi, I am trying to setup QF on my Windows Vista for development and make sure I have all the dependencies listed on the page below. http://www.quickfixengine.org/quickfix/doc/html/dependencies.html But, It seems that the link to the required dependency MSXML3 is outdated. Anyone out there using Windows Vista what is the updated dependencies for the latest QF? Best, Jiryih Tsaur |
From: Peter P. <pet...@ho...> - 2008-11-28 15:39:21
|
Are there plans to be able to iterate all the members of a Dictionary in the C# implementation of Quickfix soon? It does include what seems to be an orphan member called size() but there seems to be no way to make any use of this to run through the contents of the dictionary in the same way that you can with the C++ version that has begin()/end() iterators. Just giving some sort of snapshot into some array structures (default and session-specific) would be fine for what I want; I do not need real-time access to the values. Dan _________________________________________________________________ See the most popular videos on the web http://clk.atdmt.com/GBL/go/115454061/direct/01/ |
From: Clebson D. <Cle...@cm...> - 2008-11-28 13:24:31
|
Hey Ariel, yes, you can store the session settings in a database as text. If we look closer the FIX::SessionSettings class has two constructors: // one to receive a file name SessionSettings( const std::string& file ) throw( ConfigError ); // and other to receive a stream SessionSettings( std::istream& stream ) throw( ConfigError ); You can use the second one to restore the session settings text from your database in a stream, like as for example std::stringstream. Assuming you are using C++ version of quickfix. Regards, Clebson Derivan -----Mensagem original----- De: Ariel Piñeiro [mailto:ari...@gm...] Enviada em: sexta-feira, 28 de novembro de 2008 11:08 Para: qui...@li... Assunto: [Quickfix-developers] Custom session from extern from Data Base QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |
From: A. P. <ari...@gm...> - 2008-11-28 13:08:22
|
I'm Ariel from Argentina, i have a question: Is possible setting sessions from custom settings from a data base i.e. ? I need config settins without extern file .CFG. |
From: Saman M. <mar...@gm...> - 2008-11-27 06:31:16
|
Hi All, I got it working. Changed the start time Thanks. Saman From: Saman Marasinghe [mailto:mar...@gm...] Sent: Thursday, November 27, 2008 5:10 PM To: 'qui...@li...' Subject: tradeclient is not connecting to the server Hi, I have created the fix server and this is the Fix.xml file on the server. # default settings for sessions [DEFAULT] ConnectionType=acceptor ReconnectInterval=60 SenderCompID=TW SocketAcceptPort=2020 SocketReuseAddress=N FileStorePath=/home/admin/work/exsim/logs FileLogPath=/home/admin/work/exsim/logs # session definition [SESSION] # inherit ConnectionType, ReconnectInterval and SenderCompID from default BeginString=FIX.4.1 TargetCompID=ARCA StartTime=12:30:00 EndTime=23:30:00 HeartBtInt=20 DataDictionary=FIX41.xml I configured tradeclient at the Fix/example to connecting to the Fix server I have created and this is the Fix file of that # default settings for sessions [DEFAULT] ConnectionType=initiator ReconnectInterval=60 SenderCompID=ARCA FileStorePath=/home/admin/Fix/quickfix/examples/tradeclient FileLogPath=/home/admin/Fix/quickfix/examples/tradeclient # session definition [SESSION] # inherit ConnectionType, ReconnectInterval and SenderCompID from default BeginString=FIX.4.1 TargetCompID=TW StartTime=12:30:00 EndTime=23:30:00 HeartBtInt=20 SocketConnectPort=2020 SocketConnectHost=192.168.2.3 DataDictionary=FIX41.xml But the tradeclient is not connecting to the Server. But when I am telnet from the Fix/example/tradeclient directory It will connect to the Fix Server. Please can somebody help me to sort this problem out. Thank you saman |
From: Saman M. <mar...@gm...> - 2008-11-27 06:09:49
|
Hi, I have created the fix server and this is the Fix.xml file on the server. # default settings for sessions [DEFAULT] ConnectionType=acceptor ReconnectInterval=60 SenderCompID=TW SocketAcceptPort=2020 SocketReuseAddress=N FileStorePath=/home/admin/work/exsim/logs FileLogPath=/home/admin/work/exsim/logs # session definition [SESSION] # inherit ConnectionType, ReconnectInterval and SenderCompID from default BeginString=FIX.4.1 TargetCompID=ARCA StartTime=12:30:00 EndTime=23:30:00 HeartBtInt=20 DataDictionary=FIX41.xml I configured tradeclient at the Fix/example to connecting to the Fix server I have created and this is the Fix file of that # default settings for sessions [DEFAULT] ConnectionType=initiator ReconnectInterval=60 SenderCompID=ARCA FileStorePath=/home/admin/Fix/quickfix/examples/tradeclient FileLogPath=/home/admin/Fix/quickfix/examples/tradeclient # session definition [SESSION] # inherit ConnectionType, ReconnectInterval and SenderCompID from default BeginString=FIX.4.1 TargetCompID=TW StartTime=12:30:00 EndTime=23:30:00 HeartBtInt=20 SocketConnectPort=2020 SocketConnectHost=192.168.2.3 DataDictionary=FIX41.xml But the tradeclient is not connecting to the Server. But when I am telnet from the Fix/example/tradeclient directory It will connect to the Fix Server. Please can somebody help me to sort this problem out. Thank you saman |