Simple beginner questions

classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Simple beginner questions

jaryll
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/

Hi all,

I'm trying to send a Logon message to a server, but I require additional
values such as SenderSubID, RawDataLength, RawData and ResetSeqNumFlag.
I have included the SenderSubID and RawData(password) into the
config.cfg file but it doesn't work. May I know how can I resolve this
issue?

------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Hei Chan
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


You might want to take a look at some examples (I think they are in the package).

Here is what QF will process from its setting file:

Others like SenderSubID, etc won't be processed by QF.




On Friday, June 5, 2015 1:14 PM, "[hidden email]" <[hidden email]> wrote:


QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/

Hi all,

I'm trying to send a Logon message to a server, but I require additional
values such as SenderSubID, RawDataLength, RawData and ResetSeqNumFlag.
I have included the SenderSubID and RawData(password) into the
config.cfg file but it doesn't work. May I know how can I resolve this
issue?

------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers



------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Grant Birchmeier
In reply to this post by jaryll
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


You do not need to manually construct a Logon message.  Session-management messages (Logon, Logout, Heartbeat, etc) are constructed and sent automatically by the engine.  Their contents are based on your config file.

You really need to spend more time reading the docs and looking at the example programs.

The config file expects only specific configuration settings.  You can't just throw any FIX field in there; those will be ignored.  The list of valid settings is here:

In some instances, you may need to insert extra fields in the Logon message (such as your RawData and RawDataLength params); you can do that via the toApp() callback.  I don't have a handy C++ example, but here is a C# one that will be similar:

I'm not sure about SenderSubID.  Hei Chan says it is ignored in the config, and I don't see it in the list of config settings, so he may be right.  That would surprise me, though, as I know some counterparties use it.  It might just be missing from the config docs...

-Grant





On Thu, Jun 4, 2015 at 11:36 PM, <[hidden email]> wrote:
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/

Hi all,

I'm trying to send a Logon message to a server, but I require additional
values such as SenderSubID, RawDataLength, RawData and ResetSeqNumFlag.
I have included the SenderSubID and RawData(password) into the
config.cfg file but it doesn't work. May I know how can I resolve this
issue?

------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
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.

------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Simple beginner questions

jaryll
In reply to this post by jaryll
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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Oren Miller
In reply to this post by jaryll
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/

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: [hidden email]
> Date: Thu, June 11, 2015 3:17 pm
> To: [hidden email]
>
>
> 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
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quickfix-developers

------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

jaryll
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, [hidden email] 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: [hidden email]
>> Date: Thu, June 11, 2015 3:17 pm
>> To: [hidden email]
>>
>>
>> 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
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers

------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


"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, <[hidden email]> 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, [hidden email] 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: [hidden email]
>> Date: Thu, June 11, 2015 3:17 pm
>> To: [hidden email]
>>
>>
>> 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
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers

------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
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.

------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

jaryll
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/

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, <[hidden email]> 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, [hidden email] 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: [hidden email]
>>>> Date: Thu, June 11, 2015 3:17 pm
>>>> To: [hidden email]
>>>>
>>>>
>>>> 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
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers
>> [3]
>>
>>
> ------------------------------------------------------------------------------
>> _______________________________________________
>> Quickfix-developers mailing list
>> [hidden email]
>> 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


------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


(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, <[hidden email]> 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, <[hidden email]> 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.

------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Grant Birchmeier
In reply to this post by jaryll
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


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, <[hidden email]> 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.

------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

jaryll
In reply to this post by Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/

(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, <[hidden email]> 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, <[hidden email]> 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


------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


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, <[hidden email]> 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=<a href="tel:208.48.16.202" value="+12084816202" target="_blank">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, <[hidden email]> 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, <[hidden email]> 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.

------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

jaryll
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, <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Hei Chan
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


change to getGroup(1,....)

sometimes, reading the source helps a lot :)




On Tuesday, June 16, 2015 1:21 AM, "[hidden email]" <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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
------------------------------------------------------------------------------
_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers



------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

jaryll
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, "[hidden email]"
> <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simple beginner questions

Grant Birchmeier
QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/


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, <[hidden email]> 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, "[hidden email]"
> <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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, <[hidden email]> 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:<a href="tel:208.48.16.202" value="+12084816202">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
> [hidden email]
> 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
[hidden email]
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.

------------------------------------------------------------------------------

_______________________________________________
Quickfix-developers mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quickfix-developers
Loading...