Thread: Re: [Quickfix-developers] Simple beginner questions
Brought to you by:
orenmnero
From: <or...@qu...> - 2015-06-11 20:49:07
|
For your first example, I think you are probably just not including the proper header file for that message. #include <quickfix/fix42/MarketDataSnapshotFullRefresh.h> The message cracker just uses forward declarations, you need to include the header to actually use the object. For your second example, field 270 is not a header field, nor can it be accessed directly from the message since it is a repeating group. Instead of dealing with this however, I would recommend just including the proper header file and continue on with your first approach. > -------- Original Message -------- > Subject: [Quickfix-developers] Simple beginner questions > From: ja...@sk... > Date: Thu, June 11, 2015 3:17 pm > To: qui...@li... > > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/ > > Hi, > > Currently I'm trying to obtain the market value of a symbol from a reply > message from a server, however, I'm not sure on how to obtain the value > in field 270(MDEntryPx). > > void Application::onMessage > (const FIX42::MarketDataSnapshotFullRefresh& message, const > FIX::SessionID&) { > FIX::NoMDEntries noMDEntries; > message.get(noMDEntries); // incomplete type is not allowed > } > > when I typed in the above code in my application.cpp, I could not > compile due to the error commented. > > > void Application::fromApp(const FIX::Message& message, const > FIX::SessionID& sessionID) > throw(FIX::FieldNotFound, FIX::IncorrectDataFormat, > FIX::IncorrectTagValue, FIX::UnsupportedMessageType) > { > crack(message, sessionID); > std::cout << std::endl << "IN: " << message << std::endl; > FIX::MsgType msgType; > message.getHeader().getField(msgType); > if (msgType.getValue() == "W"){ > std::string value = message.getHeader().getField(270); //MDEntryPx > mkval = std::stod(value); //mkval is a double > } > } > > when I used the above code, I could compile and run, but when it reached > the line std::string value = message.getHeader().getField(270); > I received an toApp message with 58=Conditionally Required Field Missing > <270> > > May I know what I can change in order to be able to store the symbol > price into a double object? > > > ------------------------------------------------------------------------------ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <ja...@sk...> - 2015-06-15 11:47:39
|
I have followed your advice on including the header file and also followed the example on receiving messages in the documentation. However, I have the problem of conditionally required field missing (268). I have googled the problem and a similar issue was found here. http://stackoverflow.com/questions/26937458/quickfix-error-58-conditionally-required-field-missing-268 Will it be possible to get only the field 270 from the reply message, or what should I need to do in order to just get the market value? On 2015-06-12 04:32, or...@qu... wrote: > For your first example, I think you are probably just not including the > proper header file for that message. > > #include <quickfix/fix42/MarketDataSnapshotFullRefresh.h> > > The message cracker just uses forward declarations, you need to include > the header to actually use the object. > > For your second example, field 270 is not a header field, nor can it be > accessed directly from the message since it is a repeating group. > Instead of dealing with this however, I would recommend just including > the proper header file and continue on with your first approach. > > >> -------- Original Message -------- >> Subject: [Quickfix-developers] Simple beginner questions >> From: ja...@sk... >> Date: Thu, June 11, 2015 3:17 pm >> To: qui...@li... >> >> >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/ >> >> Hi, >> >> Currently I'm trying to obtain the market value of a symbol from a >> reply >> message from a server, however, I'm not sure on how to obtain the >> value >> in field 270(MDEntryPx). >> >> void Application::onMessage >> (const FIX42::MarketDataSnapshotFullRefresh& message, const >> FIX::SessionID&) { >> FIX::NoMDEntries noMDEntries; >> message.get(noMDEntries); // incomplete type is not allowed >> } >> >> when I typed in the above code in my application.cpp, I could not >> compile due to the error commented. >> >> >> void Application::fromApp(const FIX::Message& message, const >> FIX::SessionID& sessionID) >> throw(FIX::FieldNotFound, FIX::IncorrectDataFormat, >> FIX::IncorrectTagValue, FIX::UnsupportedMessageType) >> { >> crack(message, sessionID); >> std::cout << std::endl << "IN: " << message << std::endl; >> FIX::MsgType msgType; >> message.getHeader().getField(msgType); >> if (msgType.getValue() == "W"){ >> std::string value = message.getHeader().getField(270); //MDEntryPx >> mkval = std::stod(value); //mkval is a double >> } >> } >> >> when I used the above code, I could compile and run, but when it >> reached >> the line std::string value = >> message.getHeader().getField(270); >> I received an toApp message with 58=Conditionally Required Field >> Missing >> <270> >> >> May I know what I can change in order to be able to store the symbol >> price into a double object? >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Grant B. <gbi...@co...> - 2015-06-15 14:52:47
|
"conditionally required field missing" means that YOU are trying to extract a field that is not in the message. This field is apparently optional for the message you are decoding. Since you've tried to extract it and it's not there, QF assumes that YOU are requiring it, hence "conditionally required". Without seeing your code or your message, I can't tell you much. You need to look at the message you actually received. Is 268 actually there? On Mon, Jun 15, 2015 at 6:47 AM, <ja...@sk...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/ > > I have followed your advice on including the header file and also > followed the example on receiving messages in the documentation. > However, I have the problem of conditionally required field missing > (268). > I have googled the problem and a similar issue was found here. > > http://stackoverflow.com/questions/26937458/quickfix-error-58-conditionally-required-field-missing-268 > Will it be possible to get only the field 270 from the reply message, or > what should I need to do in order to just get the market value? > > On 2015-06-12 04:32, or...@qu... wrote: > > For your first example, I think you are probably just not including the > > proper header file for that message. > > > > #include <quickfix/fix42/MarketDataSnapshotFullRefresh.h> > > > > The message cracker just uses forward declarations, you need to include > > the header to actually use the object. > > > > For your second example, field 270 is not a header field, nor can it be > > accessed directly from the message since it is a repeating group. > > Instead of dealing with this however, I would recommend just including > > the proper header file and continue on with your first approach. > > > > > >> -------- Original Message -------- > >> Subject: [Quickfix-developers] Simple beginner questions > >> From: ja...@sk... > >> Date: Thu, June 11, 2015 3:17 pm > >> To: qui...@li... > >> > >> > >> QuickFIX Documentation: > >> http://www.quickfixengine.org/quickfix/doc/html/ > >> > >> Hi, > >> > >> Currently I'm trying to obtain the market value of a symbol from a > >> reply > >> message from a server, however, I'm not sure on how to obtain the > >> value > >> in field 270(MDEntryPx). > >> > >> void Application::onMessage > >> (const FIX42::MarketDataSnapshotFullRefresh& message, const > >> FIX::SessionID&) { > >> FIX::NoMDEntries noMDEntries; > >> message.get(noMDEntries); // incomplete type is not allowed > >> } > >> > >> when I typed in the above code in my application.cpp, I could not > >> compile due to the error commented. > >> > >> > >> void Application::fromApp(const FIX::Message& message, const > >> FIX::SessionID& sessionID) > >> throw(FIX::FieldNotFound, FIX::IncorrectDataFormat, > >> FIX::IncorrectTagValue, FIX::UnsupportedMessageType) > >> { > >> crack(message, sessionID); > >> std::cout << std::endl << "IN: " << message << std::endl; > >> FIX::MsgType msgType; > >> message.getHeader().getField(msgType); > >> if (msgType.getValue() == "W"){ > >> std::string value = message.getHeader().getField(270); //MDEntryPx > >> mkval = std::stod(value); //mkval is a double > >> } > >> } > >> > >> when I used the above code, I could compile and run, but when it > >> reached > >> the line std::string value = > >> message.getHeader().getField(270); > >> I received an toApp message with 58=Conditionally Required Field > >> Missing > >> <270> > >> > >> May I know what I can change in order to be able to store the symbol > >> price into a double object? > >> > >> > >> > ------------------------------------------------------------------------------ > >> _______________________________________________ > >> Quickfix-developers mailing list > >> Qui...@li... > >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > ------------------------------------------------------------------------------ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
From: <ja...@sk...> - 2015-06-15 16:01:09
|
Yes, I do understand that I'm trying to extract field 268, which is the NoMDEntries. However, I'm not sure why it is not set in this case, and when I print out the value of NoMDEntries, it gave me 0. What I really need is in field 270, MDEntryPx, but I'm not able to retrieve this information. Apparently, I'm able to receive the field 270 from the Market Data Snapshot request reply, but not field 268, which I have to refer to as a group in order to retrieve it. I am able to provide the message given by the server. 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 269=0 290=1 270=1188.6000 271=26 10=123 I am using the below code to retrieve field 270. void Application::onMessage (const FIX42::MarketDataSnapshotFullRefresh& message, const FIX::SessionID&) { FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; FIX::MDEntryType MDEntryType; FIX::MDEntryPx MDEntryPx; FIX::MDEntrySize MDEntrySize; FIX::OrderID orderID; message.getGroup(0, group); group.get(MDEntryType); group.get(MDEntryPx); group.get(MDEntrySize); group.get(orderID); } However, I am unable to retrieve the value in field 270. Please advise. On 2015-06-15 22:52, Grant Birchmeier wrote: > "conditionally required field missing" means that YOU are trying to > extract a field that is not in the message. This field is apparently > optional for the message you are decoding. Since you've tried to > extract it and it's not there, QF assumes that YOU are requiring it, > hence "conditionally required". > > Without seeing your code or your message, I can't tell you much. You > need to look at the message you actually received. Is 268 actually > there? > > On Mon, Jun 15, 2015 at 6:47 AM, <ja...@sk...> wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/ [1] >> >> I have followed your advice on including the header file and also >> followed the example on receiving messages in the documentation. >> However, I have the problem of conditionally required field missing >> (268). >> I have googled the problem and a similar issue was found here. >> > http://stackoverflow.com/questions/26937458/quickfix-error-58-conditionally-required-field-missing-268 >> [2] >> Will it be possible to get only the field 270 from the reply >> message, or >> what should I need to do in order to just get the market value? >> >> On 2015-06-12 04:32, or...@qu... wrote: >>> For your first example, I think you are probably just not >> including the >>> proper header file for that message. >>> >>> #include <quickfix/fix42/MarketDataSnapshotFullRefresh.h> >>> >>> The message cracker just uses forward declarations, you need to >> include >>> the header to actually use the object. >>> >>> For your second example, field 270 is not a header field, nor can >> it be >>> accessed directly from the message since it is a repeating group. >>> Instead of dealing with this however, I would recommend just >> including >>> the proper header file and continue on with your first approach. >>> >>> >>>> -------- Original Message -------- >>>> Subject: [Quickfix-developers] Simple beginner questions >>>> From: ja...@sk... >>>> Date: Thu, June 11, 2015 3:17 pm >>>> To: qui...@li... >>>> >>>> >>>> QuickFIX Documentation: >>>> http://www.quickfixengine.org/quickfix/doc/html/ [1] >>>> >>>> Hi, >>>> >>>> Currently I'm trying to obtain the market value of a symbol from >> a >>>> reply >>>> message from a server, however, I'm not sure on how to obtain >> the >>>> value >>>> in field 270(MDEntryPx). >>>> >>>> void Application::onMessage >>>> (const FIX42::MarketDataSnapshotFullRefresh& message, const >>>> FIX::SessionID&) { >>>> FIX::NoMDEntries noMDEntries; >>>> message.get(noMDEntries); // incomplete type is not allowed >>>> } >>>> >>>> when I typed in the above code in my application.cpp, I could >> not >>>> compile due to the error commented. >>>> >>>> >>>> void Application::fromApp(const FIX::Message& message, const >>>> FIX::SessionID& sessionID) >>>> throw(FIX::FieldNotFound, FIX::IncorrectDataFormat, >>>> FIX::IncorrectTagValue, FIX::UnsupportedMessageType) >>>> { >>>> crack(message, sessionID); >>>> std::cout << std::endl << "IN: " << message << std::endl; >>>> FIX::MsgType msgType; >>>> message.getHeader().getField(msgType); >>>> if (msgType.getValue() == "W"){ >>>> std::string value = message.getHeader().getField(270); >> //MDEntryPx >>>> mkval = std::stod(value); //mkval is a double >>>> } >>>> } >>>> >>>> when I used the above code, I could compile and run, but when it >>>> reached >>>> the line std::string value = >>>> message.getHeader().getField(270); >>>> I received an toApp message with 58=Conditionally Required Field >>>> Missing >>>> <270> >>>> >>>> May I know what I can change in order to be able to store the >> symbol >>>> price into a double object? >>>> >>>> >>>> >> > ------------------------------------------------------------------------------ >>>> _______________________________________________ >>>> Quickfix-developers mailing list >>>> Qui...@li... >>>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> [3] >> >> > ------------------------------------------------------------------------------ >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> [3] > > -- > > Grant Birchmeier > > CONNAMARA SYSTEMS, LLC > > MADE-TO-MEASURE TRADING SOLUTIONS. > Exactly what you need. No more. No less. > > http://connamara.com [4] > > > Links: > ------ > [1] http://www.quickfixengine.org/quickfix/doc/html/ > [2] > http://stackoverflow.com/questions/26937458/quickfix-error-58-conditionally-required-field-missing-268 > [3] https://lists.sourceforge.net/lists/listinfo/quickfix-developers > [4] http://connamara.com |
From: Grant B. <gbi...@co...> - 2015-06-15 16:41:21
|
You should be able to simply call "message.get(NoMDEntries)" to get the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of course). Is that what you tried? On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: > Yes, I do understand that I'm trying to extract field 268, which is the > NoMDEntries. However, I'm not sure why it is not set in this case, and when > I print out the value of NoMDEntries, it gave me 0. What I really need is > in field 270, MDEntryPx, but I'm not able to retrieve this information. > Apparently, I'm able to receive the field 270 from the Market Data Snapshot > request reply, but not field 268, which I have to refer to as a group in > order to retrieve it. I am able to provide the message given by the server. > > 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 269=0 > 290=1 270=1188.6000 271=26 10=123 > I am using the below code to retrieve field 270. > > void Application::onMessage > (const FIX42::MarketDataSnapshotFullRefresh& message, const > FIX::SessionID&) { > > FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; > FIX::MDEntryType MDEntryType; > FIX::MDEntryPx MDEntryPx; > FIX::MDEntrySize MDEntrySize; > FIX::OrderID orderID; > > message.getGroup(0, group); > group.get(MDEntryType); > group.get(MDEntryPx); > group.get(MDEntrySize); > group.get(orderID); > > } > > However, I am unable to retrieve the value in field 270. Please advise. > > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
From: Grant B. <gbi...@co...> - 2015-06-15 16:35:53
|
(Please keep your mails on the list, thanks.) Something's not right. I need to know the following: 1) Show me your config. (Mask any sensitive info, please.) 2) In the first line of your OnMessage(MDSFR), print out "message" to console. Paste it in your reply. (If you can, please change the field separators to something visible.) -Grant On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: > Yes I have tried using message.get(NoMDEntries) to get the value of 268, > however, when I printed it out, the value is 0. What I'm trying to achieve > is to get the value of 270, MDEntryPx, but I am unable to do a simple > message.get(MDEntryPx), due to it being in a group. > > > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > > I am unable to understand why I can't extract the field directly. > > > On 2015-06-16 00:18, Grant Birchmeier wrote: > >> You should be able to simply call "message.get(NoMDEntries)" to get >> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of course). >> >> Is that what you tried? >> >> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: >> >> Yes, I do understand that I'm trying to extract field 268, which is >>> the NoMDEntries. However, I'm not sure why it is not set in this >>> case, and when I print out the value of NoMDEntries, it gave me 0. >>> What I really need is in field 270, MDEntryPx, but I'm not able to >>> retrieve this information. Apparently, I'm able to receive the field >>> 270 from the Market Data Snapshot request reply, but not field 268, >>> which I have to refer to as a group in order to retrieve it. I am >>> able to provide the message given by the server. >>> >>> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 >>> 269=0 290=1 270=1188.6000 271=26 10=123 >>> I am using the below code to retrieve field 270. >>> >>> void Application::onMessage >>> (const FIX42::MarketDataSnapshotFullRefresh& message, const >>> FIX::SessionID&) { >>> >>> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; >>> FIX::MDEntryType MDEntryType; >>> FIX::MDEntryPx MDEntryPx; >>> FIX::MDEntrySize MDEntrySize; >>> FIX::OrderID orderID; >>> >>> message.getGroup(0, group); >>> group.get(MDEntryType); >>> group.get(MDEntryPx); >>> group.get(MDEntrySize); >>> group.get(orderID); >>> >>> } >>> >>> However, I am unable to retrieve the value in field 270. Please >>> advise. >>> >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [1] >> >> >> Links: >> ------ >> [1] http://connamara.com >> > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
From: <ja...@sk...> - 2015-06-15 16:56:08
|
(Sorry, didn't include CC) Currently, my config is as shown. There is nothing much critical as this is a demo server. # default settings for sessions [DEFAULT] ConnectionType=initiator ReconnectInterval=60 SenderCompID=************ FileStorePath = incoming FileLogPath = outgoing [SESSION] BeginString=FIX.4.2 TargetCompID=********** StartTime=00:00:00 EndTime=23:59:00 # overide default setting for RecconnectInterval ReconnectInterval=30 HeartBtInt=30 SocketConnectPort=6912 SocketConnectHost=208.48.16.202 DataDictionary=E:\Downloads\quickfix-1.14.3\quickfix\spec\FIX42.xml I have printed out to console, and this is the reply. 8=FIX.4.2☺ 9=135☺ 35=W☺ 34=5☺ 49=*********☺ 52=20150615-16:41:40.872☺ 56=*********☺ 57=**********☺ 55=F.US.GCEQ15☺ 262=MARKETDATAID☺ 268=0☺ 387=110170☺ 10=113☺ On 2015-06-16 00:35, Grant Birchmeier wrote: > (Please keep your mails on the list, thanks.) > > Something's not right. I need to know the following: > > 1) Show me your config. (Mask any sensitive info, please.) > > 2) In the first line of your OnMessage(MDSFR), print out "message" to > console. Paste it in your reply. (If you can, please change the > field separators to something visible.) > > -Grant > > On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: > >> Yes I have tried using message.get(NoMDEntries) to get the value of >> 268, however, when I printed it out, the value is 0. What I'm trying >> to achieve is to get the value of 270, MDEntryPx, but I am unable to >> do a simple message.get(MDEntryPx), due to it being in a group. >> >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> [1] >> >> I am unable to understand why I can't extract the field directly. >> >> On 2015-06-16 00:18, Grant Birchmeier wrote: >> >> You should be able to simply call "message.get(NoMDEntries)" to get >> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of >> course). >> >> Is that what you tried? >> >> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: >> >> Yes, I do understand that I'm trying to extract field 268, which is >> the NoMDEntries. However, I'm not sure why it is not set in this >> case, and when I print out the value of NoMDEntries, it gave me 0. >> What I really need is in field 270, MDEntryPx, but I'm not able to >> retrieve this information. Apparently, I'm able to receive the >> field >> 270 from the Market Data Snapshot request reply, but not field 268, >> which I have to refer to as a group in order to retrieve it. I am >> able to provide the message given by the server. >> >> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 >> 269=0 290=1 270=1188.6000 271=26 10=123 >> I am using the below code to retrieve field 270. >> >> void Application::onMessage >> (const FIX42::MarketDataSnapshotFullRefresh& message, const >> FIX::SessionID&) { >> >> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; >> FIX::MDEntryType MDEntryType; >> FIX::MDEntryPx MDEntryPx; >> FIX::MDEntrySize MDEntrySize; >> FIX::OrderID orderID; >> >> message.getGroup(0, group); >> group.get(MDEntryType); >> group.get(MDEntryPx); >> group.get(MDEntrySize); >> group.get(orderID); >> >> } >> >> However, I am unable to retrieve the value in field 270. Please >> advise. >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [2] [1] >> >> Links: >> ------ >> [1] http://connamara.com [2] > > -- > > Grant Birchmeier > > CONNAMARA SYSTEMS, LLC > > MADE-TO-MEASURE TRADING SOLUTIONS. > Exactly what you need. No more. No less. > > http://connamara.com [2] > > > Links: > ------ > [1] > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [2] http://connamara.com |
From: Grant B. <gbi...@co...> - 2015-06-15 17:01:21
Attachments:
emoji_u263a.png
|
1) Add UseDataDictionary=Y to your config 2) You'll notice that 270 isn't in that message, and 268 is in fact set to 0. On Mon, Jun 15, 2015 at 11:55 AM, <ja...@sk...> wrote: > (Sorry, didn't include CC) > > Currently, my config is as shown. There is nothing much critical as this > is a demo server. > > # default settings for sessions > [DEFAULT] > ConnectionType=initiator > ReconnectInterval=60 > SenderCompID=************ > FileStorePath = incoming > FileLogPath = outgoing > > [SESSION] > BeginString=FIX.4.2 > TargetCompID=********** > StartTime=00:00:00 > EndTime=23:59:00 > # overide default setting for RecconnectInterval > ReconnectInterval=30 > HeartBtInt=30 > SocketConnectPort=6912 > SocketConnectHost=208.48.16.202 > DataDictionary=E:\Downloads\quickfix-1.14.3\quickfix\spec\FIX42.xml > > I have printed out to console, and this is the reply. > > 8=FIX.4.2[image: ☺] 9=135[image: ☺] 35=W[image: ☺] 34=5[image: > ☺] 49=*********[image: ☺] 52=20150615-16:41:40.872[image: ☺] > 56=*********[image: ☺] > 57=**********[image: ☺] 55=F.US.GCEQ15[image: ☺] > 262=MARKETDATAID[image: ☺] 268=0[image: ☺] 387=110170[image: ☺] > 10=113[image: ☺] > > > On 2015-06-16 00:35, Grant Birchmeier wrote: > >> (Please keep your mails on the list, thanks.) >> >> Something's not right. I need to know the following: >> >> 1) Show me your config. (Mask any sensitive info, please.) >> >> 2) In the first line of your OnMessage(MDSFR), print out "message" to >> console. Paste it in your reply. (If you can, please change the >> field separators to something visible.) >> >> -Grant >> >> On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: >> >> Yes I have tried using message.get(NoMDEntries) to get the value of >>> 268, however, when I printed it out, the value is 0. What I'm trying >>> to achieve is to get the value of 270, MDEntryPx, but I am unable to >>> do a simple message.get(MDEntryPx), due to it being in a group. >>> >>> >>> >> http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> >>> [1] >>> >>> >>> I am unable to understand why I can't extract the field directly. >>> >>> On 2015-06-16 00:18, Grant Birchmeier wrote: >>> >>> You should be able to simply call "message.get(NoMDEntries)" to get >>> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of >>> course). >>> >>> Is that what you tried? >>> >>> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: >>> >>> Yes, I do understand that I'm trying to extract field 268, which is >>> the NoMDEntries. However, I'm not sure why it is not set in this >>> case, and when I print out the value of NoMDEntries, it gave me 0. >>> What I really need is in field 270, MDEntryPx, but I'm not able to >>> retrieve this information. Apparently, I'm able to receive the >>> field >>> 270 from the Market Data Snapshot request reply, but not field 268, >>> which I have to refer to as a group in order to retrieve it. I am >>> able to provide the message given by the server. >>> >>> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 >>> 269=0 290=1 270=1188.6000 271=26 10=123 >>> I am using the below code to retrieve field 270. >>> >>> void Application::onMessage >>> (const FIX42::MarketDataSnapshotFullRefresh& message, const >>> FIX::SessionID&) { >>> >>> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; >>> FIX::MDEntryType MDEntryType; >>> FIX::MDEntryPx MDEntryPx; >>> FIX::MDEntrySize MDEntrySize; >>> FIX::OrderID orderID; >>> >>> message.getGroup(0, group); >>> group.get(MDEntryType); >>> group.get(MDEntryPx); >>> group.get(MDEntrySize); >>> group.get(orderID); >>> >>> } >>> >>> However, I am unable to retrieve the value in field 270. Please >>> advise. >>> >>> -- >>> >>> Grant Birchmeier >>> >>> CONNAMARA SYSTEMS, LLC >>> >>> MADE-TO-MEASURE TRADING SOLUTIONS. >>> Exactly what you need. No more. No less. >>> >>> http://connamara.com [2] [1] >>> >>> Links: >>> ------ >>> [1] http://connamara.com [2] >>> >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [2] >> >> >> Links: >> ------ >> [1] >> >> http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> [2] http://connamara.com >> > > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |
From: <ja...@sk...> - 2015-06-15 17:17:22
|
Sorry again, I believe to have copied an irrelevant message. I will use the most recent message where I have succeeded in receiving field 270 instead. 8=FIX.4.2☺ 9=168☺ 35=W☺ 49=CQG_Gateway☺ 56=sktradingFC☺ 34=2☺ 57=TestFIXMarketData☺ 52=20150615-15:56:20.567☺ 262=MARKETDATAID☺ 55=F.US.GCEQ15☺ 387=104656☺ 268=1☺ 269=0☺ 290=1☺ 270=1188.6000☺ 271=26☺ 10=123 Even when 268=1 here, I have received this message Conditionally Required Field Missing (268) I'm not sure what I have changed to make field 270 disappear, will look into that. On 2015-06-16 01:00, Grant Birchmeier wrote: > 1) Add UseDataDictionary=Y to your config > > 2) You'll notice that 270 isn't in that message, and 268 is in fact > set to 0. > > On Mon, Jun 15, 2015 at 11:55 AM, <ja...@sk...> wrote: > >> (Sorry, didn't include CC) >> >> Currently, my config is as shown. There is nothing much critical as >> this is a demo server. >> >> # default settings for sessions >> [DEFAULT] >> ConnectionType=initiator >> ReconnectInterval=60 >> SenderCompID=************ >> FileStorePath = incoming >> FileLogPath = outgoing >> >> [SESSION] >> BeginString=FIX.4.2 >> TargetCompID=********** >> StartTime=00:00:00 >> EndTime=23:59:00 >> # overide default setting for RecconnectInterval >> ReconnectInterval=30 >> HeartBtInt=30 >> SocketConnectPort=6912 >> SocketConnectHost=208.48.16.202 [1] >> DataDictionary=E:Downloadsquickfix-1.14.3quickfixspecFIX42.xml >> >> I have printed out to console, and this is the reply. >> >> 8=FIX.4.2 9=135 35=W 34=5 49=********* >> 52=20150615-16:41:40.872 56=********* >> 57=********** 55=F.US.GCEQ15 262=MARKETDATAID 268=0 >> 387=110170 10=113 >> >> On 2015-06-16 00:35, Grant Birchmeier wrote: >> (Please keep your mails on the list, thanks.) >> >> Something's not right. I need to know the following: >> >> 1) Show me your config. (Mask any sensitive info, please.) >> >> 2) In the first line of your OnMessage(MDSFR), print out "message" >> to >> console. Paste it in your reply. (If you can, please change the >> field separators to something visible.) >> >> -Grant >> >> On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: >> >> Yes I have tried using message.get(NoMDEntries) to get the value of >> 268, however, when I printed it out, the value is 0. What I'm >> trying >> to achieve is to get the value of 270, MDEntryPx, but I am unable >> to >> do a simple message.get(MDEntryPx), due to it being in a group. >> >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> [2] >> [1] >> >> I am unable to understand why I can't extract the field directly. >> >> On 2015-06-16 00:18, Grant Birchmeier wrote: >> >> You should be able to simply call "message.get(NoMDEntries)" to get >> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of >> course). >> >> Is that what you tried? >> >> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: >> >> Yes, I do understand that I'm trying to extract field 268, which is >> the NoMDEntries. However, I'm not sure why it is not set in this >> case, and when I print out the value of NoMDEntries, it gave me 0. >> What I really need is in field 270, MDEntryPx, but I'm not able to >> retrieve this information. Apparently, I'm able to receive the >> field >> 270 from the Market Data Snapshot request reply, but not field 268, >> which I have to refer to as a group in order to retrieve it. I am >> able to provide the message given by the server. >> >> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 >> 269=0 290=1 270=1188.6000 271=26 10=123 >> I am using the below code to retrieve field 270. >> >> void Application::onMessage >> (const FIX42::MarketDataSnapshotFullRefresh& message, const >> FIX::SessionID&) { >> >> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; >> FIX::MDEntryType MDEntryType; >> FIX::MDEntryPx MDEntryPx; >> FIX::MDEntrySize MDEntrySize; >> FIX::OrderID orderID; >> >> message.getGroup(0, group); >> group.get(MDEntryType); >> group.get(MDEntryPx); >> group.get(MDEntrySize); >> group.get(orderID); >> >> } >> >> However, I am unable to retrieve the value in field 270. Please >> advise. >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [3] [2] [1] >> >> Links: >> ------ >> [1] http://connamara.com [3] [2] >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [3] [2] >> >> Links: >> ------ >> [1] >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> [2] >> [2] http://connamara.com [3] > > -- > > Grant Birchmeier > > CONNAMARA SYSTEMS, LLC > > MADE-TO-MEASURE TRADING SOLUTIONS. > Exactly what you need. No more. No less. > > http://connamara.com [3] > > > Links: > ------ > [1] tel:208.48.16.202 > [2] > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [3] http://connamara.com |
From: Hei C. <str...@ya...> - 2015-06-16 01:06:24
|
change to getGroup(1,....) sometimes, reading the source helps a lot :) On Tuesday, June 16, 2015 1:21 AM, "ja...@sk..." <ja...@sk...> wrote: QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/ Sorry again, I believe to have copied an irrelevant message. I will use the most recent message where I have succeeded in receiving field 270 instead. 8=FIX.4.2☺ 9=168☺ 35=W☺ 49=CQG_Gateway☺ 56=sktradingFC☺ 34=2☺ 57=TestFIXMarketData☺ 52=20150615-15:56:20.567☺ 262=MARKETDATAID☺ 55=F.US.GCEQ15☺ 387=104656☺ 268=1☺ 269=0☺ 290=1☺ 270=1188.6000☺ 271=26☺ 10=123 Even when 268=1 here, I have received this message Conditionally Required Field Missing (268) I'm not sure what I have changed to make field 270 disappear, will look into that. On 2015-06-16 01:00, Grant Birchmeier wrote: > 1) Add UseDataDictionary=Y to your config > > 2) You'll notice that 270 isn't in that message, and 268 is in fact > set to 0. > > On Mon, Jun 15, 2015 at 11:55 AM, <ja...@sk...> wrote: > >> (Sorry, didn't include CC) >> >> Currently, my config is as shown. There is nothing much critical as >> this is a demo server. >> >> # default settings for sessions >> [DEFAULT] >> ConnectionType=initiator >> ReconnectInterval=60 >> SenderCompID=************ >> FileStorePath = incoming >> FileLogPath = outgoing >> >> [SESSION] >> BeginString=FIX.4.2 >> TargetCompID=********** >> StartTime=00:00:00 >> EndTime=23:59:00 >> # overide default setting for RecconnectInterval >> ReconnectInterval=30 >> HeartBtInt=30 >> SocketConnectPort=6912 >> SocketConnectHost=208.48.16.202 [1] >> DataDictionary=E:Downloadsquickfix-1.14.3quickfixspecFIX42.xml >> >> I have printed out to console, and this is the reply. >> >> 8=FIX.4.2 9=135 35=W 34=5 49=********* >> 52=20150615-16:41:40.872 56=********* >> 57=********** 55=F.US.GCEQ15 262=MARKETDATAID 268=0 >> 387=110170 10=113 >> >> On 2015-06-16 00:35, Grant Birchmeier wrote: >> (Please keep your mails on the list, thanks.) >> >> Something's not right. I need to know the following: >> >> 1) Show me your config. (Mask any sensitive info, please.) >> >> 2) In the first line of your OnMessage(MDSFR), print out "message" >> to >> console. Paste it in your reply. (If you can, please change the >> field separators to something visible.) >> >> -Grant >> >> On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: >> >> Yes I have tried using message.get(NoMDEntries) to get the value of >> 268, however, when I printed it out, the value is 0. What I'm >> trying >> to achieve is to get the value of 270, MDEntryPx, but I am unable >> to >> do a simple message.get(MDEntryPx), due to it being in a group. >> >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> [2] >> [1] >> >> I am unable to understand why I can't extract the field directly. >> >> On 2015-06-16 00:18, Grant Birchmeier wrote: >> >> You should be able to simply call "message.get(NoMDEntries)" to get >> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of >> course). >> >> Is that what you tried? >> >> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: >> >> Yes, I do understand that I'm trying to extract field 268, which is >> the NoMDEntries. However, I'm not sure why it is not set in this >> case, and when I print out the value of NoMDEntries, it gave me 0. >> What I really need is in field 270, MDEntryPx, but I'm not able to >> retrieve this information. Apparently, I'm able to receive the >> field >> 270 from the Market Data Snapshot request reply, but not field 268, >> which I have to refer to as a group in order to retrieve it. I am >> able to provide the message given by the server. >> >> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 >> 269=0 290=1 270=1188.6000 271=26 10=123 >> I am using the below code to retrieve field 270. >> >> void Application::onMessage >> (const FIX42::MarketDataSnapshotFullRefresh& message, const >> FIX::SessionID&) { >> >> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; >> FIX::MDEntryType MDEntryType; >> FIX::MDEntryPx MDEntryPx; >> FIX::MDEntrySize MDEntrySize; >> FIX::OrderID orderID; >> >> message.getGroup(0, group); >> group.get(MDEntryType); >> group.get(MDEntryPx); >> group.get(MDEntrySize); >> group.get(orderID); >> >> } >> >> However, I am unable to retrieve the value in field 270. Please >> advise. >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [3] [2] [1] >> >> Links: >> ------ >> [1] http://connamara.com [3] [2] >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [3] [2] >> >> Links: >> ------ >> [1] >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html >> [2] >> [2] http://connamara.com [3] > > -- > > Grant Birchmeier > > CONNAMARA SYSTEMS, LLC > > MADE-TO-MEASURE TRADING SOLUTIONS. > Exactly what you need. No more. No less. > > http://connamara.com [3] > > > Links: > ------ > [1] tel:208.48.16.202 > [2] > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [3] http://connamara.com ------------------------------------------------------------------------------ _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: <ja...@sk...> - 2015-06-16 04:03:18
|
I am able to extract the value, however I do not understand the logic behind it. Additionally, I would require a few tries before I'm able to get the value. Is this a problem on the server side? Thank you so much, Mr Chan On 2015-06-16 09:06, Hei Chan wrote: > change to getGroup(1,....) > > sometimes, reading the source helps a lot :) > > On Tuesday, June 16, 2015 1:21 AM, "ja...@sk..." > <ja...@sk...> wrote: > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/ [1] > > Sorry again, I believe to have copied an irrelevant message. I will > use > the most recent message where I have succeeded in receiving field 270 > instead. > > 8=FIX.4.2☺ 9=168☺ 35=W☺ 49=CQG_Gateway☺ > 56=sktradingFC☺ 34=2☺ 57=TestFIXMarketData☺ > 52=20150615-15:56:20.567☺ 262=MARKETDATAID☺ 55=F.US.GCEQ15☺ > 387=104656☺ 268=1☺ 269=0☺ 290=1☺ > 270=1188.6000☺ 271=26☺ 10=123 > > Even when 268=1 here, I have received this message Conditionally > Required Field Missing (268) > > I'm not sure what I have changed to make field 270 disappear, will > look > into that. > > On 2015-06-16 01:00, Grant Birchmeier wrote: >> 1) Add UseDataDictionary=Y to your config >> >> 2) You'll notice that 270 isn't in that message, and 268 is in fact >> set to 0. >> >> On Mon, Jun 15, 2015 at 11:55 AM, <ja...@sk...> wrote: >> >>> (Sorry, didn't include CC) >>> >>> Currently, my config is as shown. There is nothing much critical as >>> this is a demo server. >>> >>> # default settings for sessions >>> [DEFAULT] >>> ConnectionType=initiator >>> ReconnectInterval=60 >>> SenderCompID=************ >>> FileStorePath = incoming >>> FileLogPath = outgoing >>> >>> [SESSION] >>> BeginString=FIX.4.2 >>> TargetCompID=********** >>> StartTime=00:00:00 >>> EndTime=23:59:00 >>> # overide default setting for RecconnectInterval >>> ReconnectInterval=30 >>> HeartBtInt=30 >>> SocketConnectPort=6912 >>> SocketConnectHost=208.48.16.202 [1] >>> DataDictionary=E:Downloadsquickfix-1.14.3quickfixspecFIX42.xml >>> >>> I have printed out to console, and this is the reply. >>> >>> 8=FIX.4.2 9=135 35=W 34=5 49=********* >>> 52=20150615-16:41:40.872 56=********* >>> 57=********** 55=F.US.GCEQ15 262=MARKETDATAID 268=0 >>> 387=110170 10=113 >>> >>> On 2015-06-16 00:35, Grant Birchmeier wrote: >>> (Please keep your mails on the list, thanks.) >>> >>> Something's not right. I need to know the following: >>> >>> 1) Show me your config. (Mask any sensitive info, please.) >>> >>> 2) In the first line of your OnMessage(MDSFR), print out "message" >>> to >>> console. Paste it in your reply. (If you can, please change the >>> field separators to something visible.) >>> >>> -Grant >>> >>> On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: >>> >>> Yes I have tried using message.get(NoMDEntries) to get the value of >>> 268, however, when I printed it out, the value is 0. What I'm >>> trying >>> to achieve is to get the value of 270, MDEntryPx, but I am unable >>> to >>> do a simple message.get(MDEntryPx), due to it being in a group. >>> >>> >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [2] >>> [2] >>> [1] >>> >>> I am unable to understand why I can't extract the field directly. >>> >>> On 2015-06-16 00:18, Grant Birchmeier wrote: >>> >>> You should be able to simply call "message.get(NoMDEntries)" to get >>> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of >>> course). >>> >>> Is that what you tried? >>> >>> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: >>> >>> Yes, I do understand that I'm trying to extract field 268, which is >>> the NoMDEntries. However, I'm not sure why it is not set in this >>> case, and when I print out the value of NoMDEntries, it gave me 0. >>> What I really need is in field 270, MDEntryPx, but I'm not able to >>> retrieve this information. Apparently, I'm able to receive the >>> field >>> 270 from the Market Data Snapshot request reply, but not field 268, >>> which I have to refer to as a group in order to retrieve it. I am >>> able to provide the message given by the server. >>> >>> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 >>> 269=0 290=1 270=1188.6000 271=26 10=123 >>> I am using the below code to retrieve field 270. >>> >>> void Application::onMessage >>> (const FIX42::MarketDataSnapshotFullRefresh& message, const >>> FIX::SessionID&) { >>> >>> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; >>> FIX::MDEntryType MDEntryType; >>> FIX::MDEntryPx MDEntryPx; >>> FIX::MDEntrySize MDEntrySize; >>> FIX::OrderID orderID; >>> >>> message.getGroup(0, group); >>> group.get(MDEntryType); >>> group.get(MDEntryPx); >>> group.get(MDEntrySize); >>> group.get(orderID); >>> >>> } >>> >>> However, I am unable to retrieve the value in field 270. Please >>> advise. >>> >>> -- >>> >>> Grant Birchmeier >>> >>> CONNAMARA SYSTEMS, LLC >>> >>> MADE-TO-MEASURE TRADING SOLUTIONS. >>> Exactly what you need. No more. No less. >>> >>> http://connamara.com [3][3] [2] [1] >>> >>> Links: >>> ------ >>> [1] http://connamara.com [3][3] [2] >>> >>> -- >>> >>> Grant Birchmeier >>> >>> CONNAMARA SYSTEMS, LLC >>> >>> MADE-TO-MEASURE TRADING SOLUTIONS. >>> Exactly what you need. No more. No less. >>> >>> http://connamara.com [3][3] [2] >>> >>> Links: >>> ------ >>> [1] >>> >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [2] >>> [2] >>> [2] http://connamara.com [3][3] >> >> -- >> >> Grant Birchmeier >> >> CONNAMARA SYSTEMS, LLC >> >> MADE-TO-MEASURE TRADING SOLUTIONS. >> Exactly what you need. No more. No less. >> >> http://connamara.com [3][3] >> >> >> Links: >> ------ >> [1] tel:208.48.16.202 > >> [2] >> > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [2] >> [3] http://connamara.com [3] > > ------------------------------------------------------------------------------ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers [4] > > > > Links: > ------ > [1] http://www.quickfixengine.org/quickfix/doc/html/ > [2] > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > [3] http://connamara.com/ > [4] https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Grant B. <gbi...@co...> - 2015-06-16 13:38:28
|
Good catch, Hei! I forgot about how repeating group indexing starts with 1 (for some inane reason). Jaryl, I think you are getting different messages, some have the value and some do not. Remember how earlier you pasted a message that didn't have it? On Mon, Jun 15, 2015 at 11:02 PM, <ja...@sk...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/ > > I am able to extract the value, however I do not understand the logic > behind it. > > Additionally, I would require a few tries before I'm able to get the > value. Is this a problem on the server side? > > Thank you so much, Mr Chan > > On 2015-06-16 09:06, Hei Chan wrote: > > change to getGroup(1,....) > > > > sometimes, reading the source helps a lot :) > > > > On Tuesday, June 16, 2015 1:21 AM, "ja...@sk..." > > <ja...@sk...> wrote: > > > > QuickFIX Documentation: > > http://www.quickfixengine.org/quickfix/doc/html/ [1] > > > > Sorry again, I believe to have copied an irrelevant message. I will > > use > > the most recent message where I have succeeded in receiving field 270 > > instead. > > > > 8=FIX.4.2☺ 9=168☺ 35=W☺ 49=CQG_Gateway☺ > > 56=sktradingFC☺ 34=2☺ 57=TestFIXMarketData☺ > > 52=20150615-15:56:20.567☺ 262=MARKETDATAID☺ 55=F.US.GCEQ15☺ > > 387=104656☺ 268=1☺ 269=0☺ 290=1☺ > > 270=1188.6000☺ 271=26☺ 10=123 > > > > Even when 268=1 here, I have received this message Conditionally > > Required Field Missing (268) > > > > I'm not sure what I have changed to make field 270 disappear, will > > look > > into that. > > > > On 2015-06-16 01:00, Grant Birchmeier wrote: > >> 1) Add UseDataDictionary=Y to your config > >> > >> 2) You'll notice that 270 isn't in that message, and 268 is in fact > >> set to 0. > >> > >> On Mon, Jun 15, 2015 at 11:55 AM, <ja...@sk...> wrote: > >> > >>> (Sorry, didn't include CC) > >>> > >>> Currently, my config is as shown. There is nothing much critical as > >>> this is a demo server. > >>> > >>> # default settings for sessions > >>> [DEFAULT] > >>> ConnectionType=initiator > >>> ReconnectInterval=60 > >>> SenderCompID=************ > >>> FileStorePath = incoming > >>> FileLogPath = outgoing > >>> > >>> [SESSION] > >>> BeginString=FIX.4.2 > >>> TargetCompID=********** > >>> StartTime=00:00:00 > >>> EndTime=23:59:00 > >>> # overide default setting for RecconnectInterval > >>> ReconnectInterval=30 > >>> HeartBtInt=30 > >>> SocketConnectPort=6912 > >>> SocketConnectHost=208.48.16.202 [1] > >>> DataDictionary=E:Downloadsquickfix-1.14.3quickfixspecFIX42.xml > >>> > >>> I have printed out to console, and this is the reply. > >>> > >>> 8=FIX.4.2 9=135 35=W 34=5 49=********* > >>> 52=20150615-16:41:40.872 56=********* > >>> 57=********** 55=F.US.GCEQ15 262=MARKETDATAID 268=0 > >>> 387=110170 10=113 > >>> > >>> On 2015-06-16 00:35, Grant Birchmeier wrote: > >>> (Please keep your mails on the list, thanks.) > >>> > >>> Something's not right. I need to know the following: > >>> > >>> 1) Show me your config. (Mask any sensitive info, please.) > >>> > >>> 2) In the first line of your OnMessage(MDSFR), print out "message" > >>> to > >>> console. Paste it in your reply. (If you can, please change the > >>> field separators to something visible.) > >>> > >>> -Grant > >>> > >>> On Mon, Jun 15, 2015 at 11:27 AM, <ja...@sk...> wrote: > >>> > >>> Yes I have tried using message.get(NoMDEntries) to get the value of > >>> 268, however, when I printed it out, the value is 0. What I'm > >>> trying > >>> to achieve is to get the value of 270, MDEntryPx, but I am unable > >>> to > >>> do a simple message.get(MDEntryPx), due to it being in a group. > >>> > >>> > >> > > > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > > [2] > >>> [2] > >>> [1] > >>> > >>> I am unable to understand why I can't extract the field directly. > >>> > >>> On 2015-06-16 00:18, Grant Birchmeier wrote: > >>> > >>> You should be able to simply call "message.get(NoMDEntries)" to get > >>> the value of 268 (where NoMDEntries is a FIX::NoMDEntries, of > >>> course). > >>> > >>> Is that what you tried? > >>> > >>> On Mon, Jun 15, 2015 at 11:00 AM, <ja...@sk...> wrote: > >>> > >>> Yes, I do understand that I'm trying to extract field 268, which is > >>> the NoMDEntries. However, I'm not sure why it is not set in this > >>> case, and when I print out the value of NoMDEntries, it gave me 0. > >>> What I really need is in field 270, MDEntryPx, but I'm not able to > >>> retrieve this information. Apparently, I'm able to receive the > >>> field > >>> 270 from the Market Data Snapshot request reply, but not field 268, > >>> which I have to refer to as a group in order to retrieve it. I am > >>> able to provide the message given by the server. > >>> > >>> 15:56:20.567 262=MARKETDATAID 55=F.US.GCEQ15 387=104656 268=1 > >>> 269=0 290=1 270=1188.6000 271=26 10=123 > >>> I am using the below code to retrieve field 270. > >>> > >>> void Application::onMessage > >>> (const FIX42::MarketDataSnapshotFullRefresh& message, const > >>> FIX::SessionID&) { > >>> > >>> FIX42::MarketDataSnapshotFullRefresh::NoMDEntries group; > >>> FIX::MDEntryType MDEntryType; > >>> FIX::MDEntryPx MDEntryPx; > >>> FIX::MDEntrySize MDEntrySize; > >>> FIX::OrderID orderID; > >>> > >>> message.getGroup(0, group); > >>> group.get(MDEntryType); > >>> group.get(MDEntryPx); > >>> group.get(MDEntrySize); > >>> group.get(orderID); > >>> > >>> } > >>> > >>> However, I am unable to retrieve the value in field 270. Please > >>> advise. > >>> > >>> -- > >>> > >>> Grant Birchmeier > >>> > >>> CONNAMARA SYSTEMS, LLC > >>> > >>> MADE-TO-MEASURE TRADING SOLUTIONS. > >>> Exactly what you need. No more. No less. > >>> > >>> http://connamara.com [3][3] [2] [1] > >>> > >>> Links: > >>> ------ > >>> [1] http://connamara.com [3][3] [2] > >>> > >>> -- > >>> > >>> Grant Birchmeier > >>> > >>> CONNAMARA SYSTEMS, LLC > >>> > >>> MADE-TO-MEASURE TRADING SOLUTIONS. > >>> Exactly what you need. No more. No less. > >>> > >>> http://connamara.com [3][3] [2] > >>> > >>> Links: > >>> ------ > >>> [1] > >>> > >> > > > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > > [2] > >>> [2] > >>> [2] http://connamara.com [3][3] > >> > >> -- > >> > >> Grant Birchmeier > >> > >> CONNAMARA SYSTEMS, LLC > >> > >> MADE-TO-MEASURE TRADING SOLUTIONS. > >> Exactly what you need. No more. No less. > >> > >> http://connamara.com [3][3] > >> > >> > >> Links: > >> ------ > >> [1] tel:208.48.16.202 > > > >> [2] > >> > > > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > > [2] > >> [3] http://connamara.com [3] > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Quickfix-developers mailing list > > Qui...@li... > > https://lists.sourceforge.net/lists/listinfo/quickfix-developers [4] > > > > > > > > Links: > > ------ > > [1] http://www.quickfixengine.org/quickfix/doc/html/ > > [2] > > > http://btobits.com/fixopaedia/fixdic42/message_Market_Data_Snapshot_Full_Refresh_W_.html > > [3] http://connamara.com/ > > [4] https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > ------------------------------------------------------------------------------ > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > -- Grant Birchmeier *Connamara Systems, LLC* *Made-To-Measure Trading Solutions.* Exactly what you need. No more. No less. http://connamara.com |