Thread: [Quickfix-developers] Simple beginner questions
Brought to you by:
orenmnero
From: <ja...@sk...> - 2015-06-05 05:03:43
|
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? |
From: Hei C. <str...@ya...> - 2015-06-05 06:20:49
|
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:Configuring QuickFIX | | | | | | | | | Configuring QuickFIXID Description Valid Values Default Session BeginString Version of FIX this session should use FIXT.1.1 FIX.4.4 FIX.4.3 FIX.4.2 FIX.4.1 FIX.4.0 SenderCompID Your ID as associated with this FIX session | | | | View on www.quickfixengine.org | Preview by Yahoo | | | | | Others like SenderSubID, etc won't be processed by QF. On Friday, June 5, 2015 1:14 PM, "ja...@sk..." <ja...@sk...> 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 Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Grant B. <gbi...@co...> - 2015-06-05 17:18:43
|
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. Docs: http://www.quickfixengine.org/quickfix/doc/html/ Examples: https://github.com/quickfix/quickfix/tree/master/examples 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: http://www.quickfixengine.org/quickfix/doc/html/configuration.html 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: https://github.com/connamara/quickfixn/wiki/User-FAQ 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, <ja...@sk...> 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 > 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-11 20:18:01
|
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? |