Thread: [Quickfix-users] FW: Quickfix c++ Session level rejection problem.....
Brought to you by:
orenmnero
From: Eranga S. <pe...@ri...> - 2007-08-24 05:55:37
|
Hi, Thanks very much for all replies. I am append the part of my FIX log here. 8=3DFIX.4.2=019=3D197=0135=3DD=0134=3D3=0149=3DRCREST=0150=3Dsys=0152=3D2= 0070824-05:39:03=0156=3DJEFOPT=011=3D WDWA1=0111=3D306=0112=3D1=0113=3D1=0118=3D5=0121=3D3=0138=3D100=0140=3D1=01= 54=3D1=0155=3DGGDIR=0159=3D0=0160=3D20070824- 11:09:03=0177=3DO=01167=3DOPT=01200=3D200709=01201=3D1=01202=3D290=01204=3D= 0=01439=3DTBD=0110=3D051=01 8=3DFIX.4.2=019=3D114=0135=3D3=0134=3D3=0149=3DJEFOPT=0152=3D20070824-05:= 39:03.570=0156=3DRCREST=0145=3D3=01 58=3DIncorrect data format for = value=01371=3D44=01372=3DD=01373=3D6=0110=3D076=01 8=3DFIX.4.2=019=3D197=0135=3DD=0134=3D4=0149=3DRCREST=0150=3Dsys=0152=3D2= 0070824-05:39:15=0156=3DJEFOPT=011=3D WDWA1=0111=3D307=0112=3D1=0113=3D1=0118=3D5=0121=3D3=0138=3D500=0140=3D1=01= 54=3D1=0155=3DGGDIR=0159=3D0=0160=3D20070824- 11:09:15=0177=3DO=01167=3DOPT=01200=3D200709=01201=3D1=01202=3D290=01204=3D= 0=01439=3DTBD=0110=3D063=01 8=3DFIX.4.2=019=3D114=0135=3D3=0134=3D4=0149=3DJEFOPT=0152=3D20070824-05:= 39:15.571=0156=3DRCREST=0145=3D4=01 58=3DIncorrect data format for = value=01371=3D44=01372=3DD=01373=3D6=0110=3D082=01 8=3DFIX.4.2=019=3D197=0135=3DD=0134=3D5=0149=3DRCREST=0150=3Dsys=0152=3D2= 0070824-05:39:23=0156=3DJEFOPT=011=3D WDWA1=0111=3D308=0112=3D1=0113=3D1=0118=3D5=0121=3D3=0138=3D200=0140=3D1=01= 54=3D1=0155=3DGGDIR=0159=3D0=0160=3D20070824- 11:09:23=0177=3DO=01167=3DOPT=01200=3D200709=01201=3D1=01202=3D290=01204=3D= 0=01439=3DTBD=0110=3D060=01 8=3DFIX.4.2=019=3D114=0135=3D3=0134=3D5=0149=3DJEFOPT=0152=3D20070824-05:= 39:23.274=0156=3DRCREST=0145=3D5=01 58=3DIncorrect data format for = value=01371=3D44=01372=3DD=01373=3D6=0110=3D083=01 As you see from the logs there are no price field in my single orders. I = am wonder what this happen. Both initiator and acceptor running with = quickfix 1.12.4.=20 This is the my config file. [DEFAULT] ConnectionType=3Dacceptor SocketAcceptPort=3D44004 FileStorePath=3Dstore FileLogPath=3Dlog StartTime=3D00:00:00 EndTime=3D00:00:00 [SESSION] BeginString=3DFIX.4.2 SenderCompID=3DJEFOPT TargetCompID=3DRCREST DataDictionary=3D../spec/FIX42.xml Destination=3DCSE My program just extend the FIX :: Application. Any help highly = appreciate. Regards, Eranga -----Original Message----- From: Oren Miller [mailto:or...@qu...]=20 Sent: Thursday, August 23, 2007 8:46 PM To: Eranga Samararathne Cc: qui...@li...; qui...@li... Subject: Re: [Quickfix-users] Quickfix c++ Session level rejection problem..... All you are telling the data dictionary is that the Price field does =20 not have to be there. But when it is there the value still needs to =20 be valid. Are you sure that a price field does not exist. And if it =20 does, what is the value? --oren On Aug 23, 2007, at 8:30 AM, Eranga Samararathna wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/=20 > html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi, > > > > I wrote a simple application using quickfix API ( c++). In there I =20 > used FIX 4.2. I change the new order single ( 35=3DD) fix 4.2 spec =20 > as <field name=3D"Price" required=3D"N"/>. > > Therefore my acceptor has to accept market orders without any =20 > error. (40 =3D1 ) But when the initiator send the mkt order my =20 > acceptor reject it session level indicating invalid value for =20 > price. But actually that message does not contain a price field. =20 > This works fine for limit orders. Any help highly appreciate. |
From: Caleb E. <cal...@gm...> - 2007-08-24 15:39:17
|
On 8/24/07, Eranga Samararathna <pe...@ri...> wrote: > My program just extend the FIX :: Application. Any help highly appreciate. Something smells fishy here. From my reading of the code, this exception is usually thrown when validating a message against the Data Dictionary, and in that case should only be thrown if there is actually a value for the tag in question. The other possibility is that you are calling getValue on a Price field which has not been initialized or which has been initialized from a string that does not parse as a double. We need to see your code to get to the bottom of this. -- Caleb Epstein |
From: Eranga S. <pe...@ri...> - 2007-09-07 04:00:15
|
Hi, Thanks Caleb. I found the issue. In my code I am calling the following code for both market and limit type orders. FIX::Symbol symbol; double p_price; p_price = price.getValue(); Since market orders hasn't price field it reject the order. But I have doubt there, the way quickfix handle an error. In this cause if the engine throw some exception like Filed can't find or something that is obvious. But what actually qf do is reject incoming order ( session level ) saying invalid value for price. Even I am set to Data dictionary validation 'false' this happen. I would like to get you expert help in this cause. Thanks Eranga. NOTE : I corrected my code like if( message.isSetField(price)){ p_price = price.getValue(); } -----Original Message----- From: Caleb Epstein [mailto:cal...@gm...] Sent: Friday, August 24, 2007 9:09 PM To: Eranga Samararathne Cc: qui...@li...; qui...@li... Subject: Re: [Quickfix-developers] FW: [Quickfix-users] Quickfix c++ Session level rejection problem..... On 8/24/07, Eranga Samararathna <pe...@ri...> wrote: > My program just extend the FIX :: Application. Any help highly appreciate. Something smells fishy here. From my reading of the code, this exception is usually thrown when validating a message against the Data Dictionary, and in that case should only be thrown if there is actually a value for the tag in question. The other possibility is that you are calling getValue on a Price field which has not been initialized or which has been initialized from a string that does not parse as a double. We need to see your code to get to the bottom of this. -- Caleb Epstein |