Thread: [Quickfix-developers] Adding fields to the message
Brought to you by:
orenmnero
From: amit k. <kha...@gm...> - 2009-06-16 20:06:22
|
I am new to quickfix and I am currently exploring it to see if I can use it in my project. My use case is as follows. 1. Create a session 2. Send a logon request 3. Send a market data request 4. Receive market data and log it to a file I have modified the tradeClient examples to send the market data request. In the current version of the Logon.h it doesn't allow me to set the password. I have modified the code of Logon.h to have an extra method to set the password. Now, generateLogon method of session is creates a Logon message. It doesn't set the password field. I can modify that code also and make it set the password. However, I am wondering if there is a mechanism by which I don't have to modify the code but just give it some sort of a dictionary to say here the fields that should be populated for a given message. TIA. Please advise. Cheers, Amit Khandelwal -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- |
From: Andrei G. <an...@gm...> - 2009-06-17 01:25:03
|
On Tue, Jun 16, 2009 at 5:06 PM, amit khandelwal<kha...@gm...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I am new to quickfix and I am currently exploring it to see if I can use it in my project. My use case is as follows. > > 1. Create a session > 2. Send a logon request > 3. Send a market data request > 4. Receive market data and log it to a file > > I have modified the tradeClient examples to send the market data request. In the current version of the Logon.h it doesn't allow me to set the password. I have modified the code of Logon.h to have an extra method to set the password. Now, generateLogon method of session is creates a Logon message. It doesn't set the password field. I can modify that code also and make it set the password. However, I am wondering if there is a mechanism by which I don't have to modify the code but just give it some sort of a dictionary to say here the fields that should be populated for a given message. This is considered "application logic" code, thus it is not built in QuickFIX. |
From: amit k. <kha...@gm...> - 2009-06-17 17:24:36
|
Hello Oren: I am new to quickfix and I am currently exploring it to see if I can use it in my project. My use case is as follows. 1. Create a session 2. Send a logon request 3. Send a market data request 4. Receive market data and log it to a file I have modified the tradeClient examples to send the market data request. In the current version of the Logon.h it doesn't allow me to set the password. I have modified the code of Logon.h to have an extra method to set the password. Now, generateLogon method of session is creates a Logon message. It doesn't set the password field. I can modify that code also and make it set the password. However, I am wondering if there is a mechanism by which I don't have to modify the code but just give it some sort of a dictionary to say here the fields that should be populated for a given message. TIA. Please advise. Cheers, Amit Khandelwal PS: Please see the email chain below for the discussion so far. ---------- Forwarded message ---------- From: <ned...@ao...> Date: Wed, Jun 17, 2009 at 1:19 PM Subject: Re: [Quickfix-developers] Adding fields to the message To: kha...@gm... Hey Andri, Sorry I couldn't be of more help. Wait for another reply from somebody who is more knowledgable. You can always email Oren Miller ( or...@qu...). I have found that very helpful in the past. Good luck Ned -----Original Message----- From: amit khandelwal <kha...@gm...> To: ned...@ao... Sent: Wed, Jun 17, 2009 9:06 am Subject: Re: [Quickfix-developers] Adding fields to the message Andrei: I don't initiate logon message myself. It is initiated by the "Session" class of QuickFix. Also, the Logon message class is defined in the QuickFix source code. When you say it is application specific, do you mean to say that the code outside of QuickFix? Ned, I have specified the password the configuration file. There are two issues 1. Logon class doesn't have a method to set(FIELD_SET) for the password 2. generateLogon function inside the Session class doesn't set the password field on the logon object. I have modified the code of the Logon class to be able set the password field. I can modify the code of Session class also to do the same. Just wanted to check if I am going down the right track or if there is any other mechanism. On Wed, Jun 17, 2009 at 8:16 AM, <ned...@ao...> wrote: > I beleive you can specify the password in the configuration file. Have you > looked at the onlne documentation for the web site about the configuration > file? > > I hope this helps. > > Ned > > > -----Original Message----- > From: amit khandelwal <kha...@gm...> > To: qui...@li... > Sent: Tue, Jun 16, 2009 4:06 pm > Subject: [Quickfix-developers] Adding fields to the message > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > I am new to quickfix and I am currently exploring it to see if I can use > it in my project. My use case is as follows. > > 1. Create a session > 2. Send a logon request > 3. Send a market data request > 4. Receive market data and log it to a file > > I have modified the tradeClient examples to send the market data request. > In the current version of the Logon.h it doesn't allow me to set the > password. I have modified the code of Logon.h to have an extra method to set > the password. Now, generateLogon method of session is creates a Logon > message. It doesn't set the password field. I can modify that code also and > make it set the password. However, I am wondering if there is a mechanism by > which I don't have to modify the code but just give it some sort of a > dictionary to say here the fields that should be populated for a given > message. > > TIA. > > Please advise. > > Cheers, > Amit Khandelwal > > > -- > ------------------------------------------------------------------- > Ph : (973)-896-8208 > Email: kha...@gm... > Web: http://khandelwal.amit.googlepages.com/home > ------------------------------------------------------------------- > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment.http://p.sf.net/sfu/businessobjects > > _______________________________________________ > Quickfix-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > ------------------------------ > Dell Days of Deals! June 15-24 - A New Deal Everyday! > -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- ------------------------------ Dell Days of Deals! June 15-24 - A New Deal Everyday!<http://pr.atwola.com/promoclk/100126575x1222865043x1201494942/aol?redir=http:%2F%2Fad.doubleclick.net%2Fclk%3B215692145%3B38015538%3Bh> -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- |
From: Dale W. <wi...@oc...> - 2009-06-17 18:34:00
|
Hi Amit, You do not want to get involved in generating your own logon message. QuickFIX handles that for you and changing it can be tricky. What you want to do is modify the logon message to add your password after QuickFIX has generated it, but before it is sent. The correct way to do this is to override the toAdmin() message of your FIX::Applicaition object In your override 1) get the header from the message to be sent 2) get the message type from the header 3) check for message type logon 4) add your password to the message Dale amit khandelwal wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > ------------------------------------------------------------------------ > > I am new to quickfix and I am currently exploring it to see if I can > use it in my project. My use case is as follows. > > 1. Create a session > 2. Send a logon request > 3. Send a market data request > 4. Receive market data and log it to a file > > I have modified the tradeClient examples to send the market data > request. In the current version of the Logon.h it doesn't allow me to > set the password. I have modified the code of Logon.h to have an extra > method to set the password. Now, generateLogon method of session is > creates a Logon message. It doesn't set the password field. I can > modify that code also and make it set the password. However, I am > wondering if there is a mechanism by which I don't have to modify the > code but just give it some sort of a dictionary to say here the fields > that should be populated for a given message. > > TIA. > > Please advise. > > Cheers, > Amit Khandelwal > > > -- > ------------------------------------------------------------------- > Ph : (973)-896-8208 > Email: kha...@gm... <mailto:kha...@gm...> > Web: http://khandelwal.amit.googlepages.com/home > ------------------------------------------------------------------- > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > ------------------------------------------------------------------------ > > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: amit k. <kha...@gm...> - 2009-06-17 21:12:01
|
Cool. That seem to work. Thanks for the pointer, Dale. Cheers, Amit Khandelwal On Wed, Jun 17, 2009 at 2:31 PM, Dale Wilson <wi...@oc...> wrote: > Hi Amit, > You do not want to get involved in generating your own logon message. > QuickFIX handles that for you and changing it can be tricky. > What you want to do is modify the logon message to add your password after > QuickFIX has generated it, but before it is sent. > > The correct way to do this is to override the toAdmin() message of your > FIX::Applicaition object > In your override > 1) get the header from the message to be sent > 2) get the message type from the header > 3) check for message type logon > 4) add your password to the message > > Dale > > amit khandelwal wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> ------------------------------------------------------------------------ >> >> I am new to quickfix and I am currently exploring it to see if I can use >> it in my project. My use case is as follows. >> >> 1. Create a session >> 2. Send a logon request >> 3. Send a market data request >> 4. Receive market data and log it to a file >> >> I have modified the tradeClient examples to send the market data request. >> In the current version of the Logon.h it doesn't allow me to set the >> password. I have modified the code of Logon.h to have an extra method to set >> the password. Now, generateLogon method of session is creates a Logon >> message. It doesn't set the password field. I can modify that code also and >> make it set the password. However, I am wondering if there is a mechanism by >> which I don't have to modify the code but just give it some sort of a >> dictionary to say here the fields that should be populated for a given >> message. >> >> TIA. >> >> Please advise. >> >> Cheers, >> Amit Khandelwal >> >> >> -- >> ------------------------------------------------------------------- >> Ph : (973)-896-8208 >> Email: kha...@gm... <mailto:kha...@gm...> >> Web: http://khandelwal.amit.googlepages.com/home >> ------------------------------------------------------------------- >> ------------------------------------------------------------------------ >> >> >> ------------------------------------------------------------------------------ >> Crystal Reports - New Free Runtime and 30 Day Trial >> Check out the new simplified licensing option that enables unlimited >> royalty-free distribution of the report engine for externally facing >> server and web deployment. >> http://p.sf.net/sfu/businessobjects >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> > > -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- |
From: amit k. <kha...@gm...> - 2009-06-19 16:03:51
|
I can get the Logon message to work. However, my quickfix engine is rejecting the TradingSessionStatus message from the exchange. Below is the sequence of messages 1. Logon ( me --> exchange) 2. Logon (exchange --> me) 3. TradingSessionStatus (exchange --> me) 4. BusinessMessageReject (me --> exchange) I am using FIX 4.2. I see that we have a TradingSessionStatusRequest object in the fix42/ directory. It seems the quickfix engine rejects the TradingSessionStatus message that it receives from the exchange. Any pointers? Cheers, Amit Khandelwal On Wed, Jun 17, 2009 at 5:11 PM, amit khandelwal <kha...@gm...>wrote: > Cool. That seem to work. Thanks for the pointer, Dale. > > Cheers, > Amit Khandelwal > > > > On Wed, Jun 17, 2009 at 2:31 PM, Dale Wilson <wi...@oc...> wrote: > >> Hi Amit, >> You do not want to get involved in generating your own logon message. >> QuickFIX handles that for you and changing it can be tricky. >> What you want to do is modify the logon message to add your password after >> QuickFIX has generated it, but before it is sent. >> >> The correct way to do this is to override the toAdmin() message of your >> FIX::Applicaition object >> In your override >> 1) get the header from the message to be sent >> 2) get the message type from the header >> 3) check for message type logon >> 4) add your password to the message >> >> Dale >> >> amit khandelwal wrote: >> >>> QuickFIX Documentation: >>> http://www.quickfixengine.org/quickfix/doc/html/index.html >>> QuickFIX Support: http://www.quickfixengine.org/services.html >>> >>> >>> ------------------------------------------------------------------------ >>> >>> I am new to quickfix and I am currently exploring it to see if I can use >>> it in my project. My use case is as follows. >>> >>> 1. Create a session >>> 2. Send a logon request >>> 3. Send a market data request >>> 4. Receive market data and log it to a file >>> >>> I have modified the tradeClient examples to send the market data request. >>> In the current version of the Logon.h it doesn't allow me to set the >>> password. I have modified the code of Logon.h to have an extra method to set >>> the password. Now, generateLogon method of session is creates a Logon >>> message. It doesn't set the password field. I can modify that code also and >>> make it set the password. However, I am wondering if there is a mechanism by >>> which I don't have to modify the code but just give it some sort of a >>> dictionary to say here the fields that should be populated for a given >>> message. >>> >>> TIA. >>> >>> Please advise. >>> >>> Cheers, >>> Amit Khandelwal >>> >>> >>> -- >>> ------------------------------------------------------------------- >>> Ph : (973)-896-8208 >>> Email: kha...@gm... <mailto:kha...@gm...> >>> Web: http://khandelwal.amit.googlepages.com/home >>> ------------------------------------------------------------------- >>> ------------------------------------------------------------------------ >>> >>> >>> ------------------------------------------------------------------------------ >>> Crystal Reports - New Free Runtime and 30 Day Trial >>> Check out the new simplified licensing option that enables unlimited >>> royalty-free distribution of the report engine for externally facing >>> server and web deployment. >>> http://p.sf.net/sfu/businessobjects >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Quickfix-developers mailing list >>> Qui...@li... >>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >>> >> >> > > > -- > ------------------------------------------------------------------- > Ph : (973)-896-8208 > Email: kha...@gm... > Web: http://khandelwal.amit.googlepages.com/home > ------------------------------------------------------------------- > -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- |
From: Dale W. <wi...@oc...> - 2009-06-19 16:28:21
|
amit khandelwal wrote: > I can get the Logon message to work. However, my quickfix engine is > rejecting the TradingSessionStatus message from the exchange. Below is > the sequence of messages > > 1. Logon ( me --> exchange) > 2. Logon (exchange --> me) > 3. TradingSessionStatus (exchange --> me) > 4. BusinessMessageReject (me --> exchange) > > I am using FIX 4.2. I see that we have a TradingSessionStatusRequest > object in the fix42/ directory. It seems the quickfix engine rejects > the TradingSessionStatus message that it receives from the exchange. Are you using the message cracker? If so did you override the appropriate onMessage() virtual method? You need to override for every message you expect to receive. If not it will reject the message. Dale |
From: amit k. <kha...@gm...> - 2009-06-19 18:29:05
|
Appreciate your help Dave. It did solve the problem. I am at the last step of my project. I can now send the market data subscription request to the exchange and receive MarketDataIncrementalRefresh message from the exchange. However, quickfix engine is rejecting it with the message. "Tag appears more than once" RefTagID = 15 (Currency). I will keep digging till I find the answer. In case you or anyone else has ran into this and already know the answer please let me know. On Fri, Jun 19, 2009 at 12:28 PM, Dale Wilson <wi...@oc...> wrote: > amit khandelwal wrote: > >> I can get the Logon message to work. However, my quickfix engine is >> rejecting the TradingSessionStatus message from the exchange. Below is the >> sequence of messages >> >> 1. Logon ( me --> exchange) >> 2. Logon (exchange --> me) >> 3. TradingSessionStatus (exchange --> me) >> 4. BusinessMessageReject (me --> exchange) >> >> I am using FIX 4.2. I see that we have a TradingSessionStatusRequest >> object in the fix42/ directory. It seems the quickfix engine rejects the >> TradingSessionStatus message that it receives from the exchange. >> > > > Are you using the message cracker? If so did you override the appropriate > onMessage() virtual method? You need to override for every message you > expect to receive. If not it will reject the message. > > Dale > -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- |
From: amit k. <kha...@gm...> - 2009-06-19 20:05:14
|
After supplying the data dictionary the issue was gone. Thanks everyone for your help. On Fri, Jun 19, 2009 at 2:29 PM, amit khandelwal <kha...@gm...>wrote: > Appreciate your help Dave. It did solve the problem. I am at the last step > of my project. I can now send the market data subscription request to the > exchange and receive MarketDataIncrementalRefresh message from the exchange. > However, quickfix engine is rejecting it with the message. "Tag appears more > than once" RefTagID = 15 (Currency). I will keep digging till I find the > answer. In case you or anyone else has ran into this and already know the > answer please let me know. > > > > > On Fri, Jun 19, 2009 at 12:28 PM, Dale Wilson <wi...@oc...> wrote: > >> amit khandelwal wrote: >> >>> I can get the Logon message to work. However, my quickfix engine is >>> rejecting the TradingSessionStatus message from the exchange. Below is the >>> sequence of messages >>> >>> 1. Logon ( me --> exchange) >>> 2. Logon (exchange --> me) >>> 3. TradingSessionStatus (exchange --> me) >>> 4. BusinessMessageReject (me --> exchange) >>> >>> I am using FIX 4.2. I see that we have a TradingSessionStatusRequest >>> object in the fix42/ directory. It seems the quickfix engine rejects the >>> TradingSessionStatus message that it receives from the exchange. >>> >> >> >> Are you using the message cracker? If so did you override the appropriate >> onMessage() virtual method? You need to override for every message you >> expect to receive. If not it will reject the message. >> >> Dale >> > > > > -- > ------------------------------------------------------------------- > Ph : (973)-896-8208 > Email: kha...@gm... > Web: http://khandelwal.amit.googlepages.com/home > ------------------------------------------------------------------- > -- ------------------------------------------------------------------- Ph : (973)-896-8208 Email: kha...@gm... Web: http://khandelwal.amit.googlepages.com/home ------------------------------------------------------------------- |