quickfix-users Mailing List for QuickFIX (Page 23)
Brought to you by:
orenmnero
You can subscribe to this list here.
2002 |
Jan
|
Feb
(4) |
Mar
(6) |
Apr
(2) |
May
(4) |
Jun
(1) |
Jul
(1) |
Aug
(2) |
Sep
(11) |
Oct
(3) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(7) |
Feb
(3) |
Mar
(10) |
Apr
(40) |
May
(63) |
Jun
(12) |
Jul
(26) |
Aug
(13) |
Sep
(6) |
Oct
(13) |
Nov
(17) |
Dec
(28) |
2004 |
Jan
(13) |
Feb
(6) |
Mar
(9) |
Apr
(20) |
May
(15) |
Jun
(29) |
Jul
(22) |
Aug
(11) |
Sep
(32) |
Oct
(34) |
Nov
(22) |
Dec
(33) |
2005 |
Jan
(17) |
Feb
(8) |
Mar
(3) |
Apr
(20) |
May
(19) |
Jun
(29) |
Jul
(30) |
Aug
(10) |
Sep
(24) |
Oct
|
Nov
(17) |
Dec
(11) |
2006 |
Jan
(32) |
Feb
(54) |
Mar
(34) |
Apr
(43) |
May
(14) |
Jun
(11) |
Jul
(10) |
Aug
(43) |
Sep
(37) |
Oct
(44) |
Nov
(16) |
Dec
(11) |
2007 |
Jan
(26) |
Feb
(5) |
Mar
(23) |
Apr
(3) |
May
(22) |
Jun
(17) |
Jul
(22) |
Aug
(34) |
Sep
(17) |
Oct
(18) |
Nov
(4) |
Dec
(8) |
2008 |
Jan
(28) |
Feb
(28) |
Mar
(23) |
Apr
(37) |
May
(53) |
Jun
(20) |
Jul
(30) |
Aug
(12) |
Sep
(19) |
Oct
(16) |
Nov
(15) |
Dec
(10) |
2009 |
Jan
(19) |
Feb
(8) |
Mar
(21) |
Apr
(8) |
May
(15) |
Jun
(22) |
Jul
(34) |
Aug
(18) |
Sep
(23) |
Oct
(26) |
Nov
(16) |
Dec
(13) |
2010 |
Jan
(38) |
Feb
(17) |
Mar
(39) |
Apr
(34) |
May
(5) |
Jun
(15) |
Jul
(7) |
Aug
(18) |
Sep
(4) |
Oct
(16) |
Nov
(3) |
Dec
(17) |
2011 |
Jan
(28) |
Feb
(12) |
Mar
(36) |
Apr
(9) |
May
(26) |
Jun
(27) |
Jul
(6) |
Aug
(10) |
Sep
(6) |
Oct
(1) |
Nov
(1) |
Dec
|
2012 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(7) |
May
(9) |
Jun
(4) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(9) |
Nov
(10) |
Dec
(8) |
2013 |
Jan
(3) |
Feb
(2) |
Mar
(7) |
Apr
(2) |
May
|
Jun
(7) |
Jul
(22) |
Aug
(5) |
Sep
(3) |
Oct
(3) |
Nov
(3) |
Dec
(2) |
2014 |
Jan
(4) |
Feb
|
Mar
(7) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(7) |
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2015 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(4) |
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(5) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Hei C. <str...@ya...> - 2010-01-04 22:53:31
|
Hi, I am not sure which mailing list to use. Sorry if I am not supposed to send to both. I have configured quickfix build with "--enable-share=no --enable-static=yes", and then run "make clean" and "make". Then, I compile my app with g++, and I got: [cc] /usr/local/lib/libquickfix.a(LIBXML_DOMDocument.o): In function `FIX::LIBXML_DOMDocument::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:136: undefined reference to `xmlParseFile' [cc] /usr/local/lib/libquickfix.a(LIBXML_DOMDocument.o): In function `~LIBXML_DOMDocument': [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:113: undefined reference to `xmlFreeDoc' [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:113: undefined reference to `xmlFreeDoc' [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:113: undefined reference to `xmlFreeDoc' [cc] /usr/local/lib/libquickfix.a(LIBXML_DOMDocument.o): In function `FIX::LIBXML_DOMDocument::getNode(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:153: undefined reference to `xmlXPathNewContext' [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:154: undefined reference to `xmlXPathEval' [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:160: undefined reference to `xmlXPathFreeContext' [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:165: undefined reference to `xmlXPathFreeContext' [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:166: undefined reference to `xmlXPathFreeObject' [cc] /usr/local/lib/libquickfix.a(LIBXML_DOMDocument.o): In function `FIX::LIBXML_DOMAttributes::get(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)': [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:39: undefined reference to `xmlGetProp' [cc] /usr/local/lib/libquickfix.a(LIBXML_DOMDocument.o): In function `FIX::LIBXML_DOMDocument::load(std::basic_istream<char, std::char_traits<char> >&)': [cc] /root/quickfix/src/C++/LIBXML_DOMDocument.cpp:123: undefined reference to `xmlParseDoc' [cc] collect2: ld returned 1 exit status Did I do anything wrong? If I use the dynamic library (libquickfix.so.10.0.0), I can compile my app correctly. Thanks in advance. Cheers, Hei |
From: Ben L. <be...@no...> - 2010-01-04 02:26:49
|
Hi, The .get() method is probably what you want. You might want to take a look at this page. It has a bunch of little snippets. http://www.quickfixengine.org/quickfix/doc/html/receiving_messages.html Also, this example is really good: quickfix/examples/executor/java/src/Application.java Hope this helps, Ben -- View this message in context: http://old.nabble.com/how-to--get-Fields-from-FIX42-message-tp26727796p27008080.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Ben L. <be...@no...> - 2010-01-04 02:20:03
|
Hi, Trading technologies provides demo accounts, though you'd need to find a broker that uses them. -Ben -- View this message in context: http://old.nabble.com/experience-with-demo-accounts-or-test-beds-tp26421500p27008035.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Grant B. <gbi...@co...> - 2009-12-21 20:42:08
|
I meant UseDataDictionary=Y, of course. On Mon, Dec 21, 2009 at 12:07 PM, Grant Birchmeier <gbi...@co...> wrote: > I believe you need to be using a data dictionary when using repeating groups. > > Thus, you need to set > UseDataDictionary=N > and specify a location to your dictionary xml file. > > -Grant > > On Mon, Dec 21, 2009 at 1:33 AM, chris <chr...@gm...> wrote: >> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> Hi all, >> >> This is very odd - any clues or pointers to missed posts very welcome. >> >> Using FIX.4.2, C++, 1.12.4, g++ 4.3.3 on Ubuntu 9.04 >> >> [DEFAULT] >> ConnectionType=initiator >> HeartBtInt=30 >> ReconnectInterval=10 >> LogonTimeout=120 >> FileStorePath=store >> FileLogPath=log >> StartTime=00:00:00 >> EndTime=00:00:00 >> UseDataDictionary=N >> SocketConnectPort=442 >> SenderCompID=SENDER >> ResetOnDisconnect=Y >> ResetOnLogout=Y >> ValidateUserDefinedFields=N >> ValidateFieldsOutOfOrder=Y >> >> [SESSION] >> BeginString=FIX.4.2 >> TargetCompID=TARGET >> SocketConnectHost= >> ResetSeqNumFlag=Y >> DataDictionary=FIX42.xml >> >> >> Briefly : >> On receipt of a MarketDataIncrementalRefresh with more than 1 group (i.e most of them with BID / OFFER) quickfix generates a RepeatedTag rejection. >> >> Less Briefly : >> >> Looking at Log Viewer and Wireshark everything is fine - repeated groups, all OK. Everything is also good when viewing an XML export from the Log Viewer ... >> >> >> <message> >> <header> >> <field name="BeginString" number="8"><![CDATA[FIX.4.2]]></field> >> <field name="BodyLength" number="9"><![CDATA[221]]></field> >> <field name="MsgSeqNum" number="34"><![CDATA[3]]></field> >> <field enum="MarketDataIncrementalRefresh" name="MsgType" number="35"><![CDATA[X]]></field> >> <field name="SenderCompID" number="49"><![CDATA[TARGET]]></field> >> <field name="SendingTime" number="52"><![CDATA[20091221-03:19:07.535]]></field> >> <field name="TargetCompID" number="56"><![CDATA[SENDER]]></field> >> </header> >> <body> >> <field name="MDReqID" number="262"><![CDATA[2009-12-21-03:19:07]]></field> >> <field name="NoMDEntries" number="268"><![CDATA[2]]></field> >> <group> >> <field enum="NEW" name="MDUpdateAction" number="279"><![CDATA[0]]></field> >> <field enum="BID" name="MDEntryType" number="269"><![CDATA[0]]></field> >> <field name="MDEntryID" number="278"><![CDATA[1]]></field> >> <field name="Symbol" number="55"><![CDATA[USD/JPY]]></field> >> <field name="MDEntryPx" number="270"><![CDATA[90.449]]></field> >> <field name="Currency" number="15"><![CDATA[USD]]></field> >> <field name="MDEntrySize" number="271"><![CDATA[6000000]]></field> >> <field name="NumberOfOrders" number="346"><![CDATA[2]]></field> >> </group> >> <group> >> <field enum="NEW" name="MDUpdateAction" number="279"><![CDATA[0]]></field> >> <field enum="OFFER" name="MDEntryType" number="269"><![CDATA[1]]></field> >> <field name="MDEntryID" number="278"><![CDATA[2]]></field> >> <field name="Symbol" number="55"><![CDATA[USD/JPY]]></field> >> <field name="MDEntryPx" number="270"><![CDATA[90.456]]></field> >> <field name="Currency" number="15"><![CDATA[USD]]></field> >> <field name="MDEntrySize" number="271"><![CDATA[1000000]]></field> >> <field name="NumberOfOrders" number="346"><![CDATA[1]]></field> >> </group> >> </body> >> <trailer> >> <field name="CheckSum" number="10"><![CDATA[041]]></field> >> </trailer> >> </message> >> >> but quickfix insists it isn't and generates this ... >> >> >> <message> >> <header> >> <field name="BeginString" number="8"><![CDATA[FIX.4.2]]></field> >> <field name="BodyLength" number="9"><![CDATA[109]]></field> >> <field name="MsgSeqNum" number="34"><![CDATA[3]]></field> >> <field enum="Reject" name="MsgType" number="35"><![CDATA[3]]></field> >> <field name="SenderCompID" number="49"><![CDATA[SENDER]]></field> >> <field name="SendingTime" number="52"><![CDATA[20091221-03:19:07.639]]></field> >> <field name="TargetCompID" number="56"><![CDATA[TARGET]]></field> >> </header> >> <body> >> <field name="RefSeqNum" number="45"><![CDATA[3]]></field> >> <field name="Text" number="58"><![CDATA[Tag appears more than once]]></field> >> <field name="RefTagID" number="371"><![CDATA[15]]></field> >> <field name="RefMsgType" number="372"><![CDATA[X]]></field> >> </body> >> <trailer> >> <field name="CheckSum" number="10"><![CDATA[111]]></field> >> </trailer> >> </message> >> >> >> If I look in Session::next() with this ... >> >> std::cout << "DEBUG : Session::next() : BEGIN MESSAGE" << std::endl; >> std::cout << message.toXML() << std::endl; >> std::cout << "DEBUG : Session::next() : END MESSAGE" << std::endl; >> >> I see this ... >> >> DEBUG : Session::next() : BEGIN MESSAGE >> <message> >> <header> >> <field number="8"><![CDATA[FIX.4.2]]></field> >> <field number="9"><![CDATA[221]]></field> >> <field number="35"><![CDATA[X]]></field> >> <field number="34"><![CDATA[3]]></field> >> <field number="49"><![CDATA[CNX]]></field> >> <field number="52"><![CDATA[20091221-05:48:36.020]]></field> >> <field number="56"><![CDATA[int2mansing2str]]></field> >> </header> >> <body> >> <field number="15"><![CDATA[USD]]></field> >> <field number="15"><![CDATA[USD]]></field> >> <field number="55"><![CDATA[USD/JPY]]></field> >> <field number="55"><![CDATA[USD/JPY]]></field> >> <field number="262"><![CDATA[2009-12-21-05:48:35]]></field> >> <field number="268"><![CDATA[2]]></field> >> <field number="269"><![CDATA[0]]></field> >> <field number="269"><![CDATA[1]]></field> >> <field number="270"><![CDATA[90.301]]></field> >> <field number="270"><![CDATA[90.307]]></field> >> <field number="271"><![CDATA[1000000]]></field> >> <field number="271"><![CDATA[1000000]]></field> >> <field number="278"><![CDATA[1]]></field> >> <field number="278"><![CDATA[2]]></field> >> <field number="279"><![CDATA[0]]></field> >> <field number="279"><![CDATA[0]]></field> >> <field number="346"><![CDATA[1]]></field> >> <field number="346"><![CDATA[1]]></field> >> </body> >> <trailer> >> <field number="10"><![CDATA[017]]></field> >> </trailer> >> </message> >> DEBUG : Session::next() : END MESSAGE >> >> >> and of course this is the result ... >> >> DEBUG : DataDictionary::validate() >> field = 8 >> field = 9 >> field = 35 >> field = 34 >> field = 49 >> field = 52 >> field = 56 >> field = 10 >> field = 15 >> field = 15 >> DEBUG : Session::next() : catch RepeatedTag >> >> The field data in the message body is sorted and without the grouping information. >> >> >> -- >> chris boucher >> "In this house we obey the laws of thermodynamics!" - H. Simpson >> >> ------------------------------------------------------------------------------ >> This SF.Net email is sponsored by the Verizon Developer Community >> Take advantage of Verizon's best-in-class app development support >> A streamlined, 14 day to market process makes app distribution fast and easy >> Join now and get one step closer to millions of Verizon customers >> http://p.sf.net/sfu/verizon-dev2dev >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> >> > |
From: Grant B. <gbi...@co...> - 2009-12-21 18:07:20
|
I believe you need to be using a data dictionary when using repeating groups. Thus, you need to set UseDataDictionary=N and specify a location to your dictionary xml file. -Grant On Mon, Dec 21, 2009 at 1:33 AM, chris <chr...@gm...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi all, > > This is very odd - any clues or pointers to missed posts very welcome. > > Using FIX.4.2, C++, 1.12.4, g++ 4.3.3 on Ubuntu 9.04 > > [DEFAULT] > ConnectionType=initiator > HeartBtInt=30 > ReconnectInterval=10 > LogonTimeout=120 > FileStorePath=store > FileLogPath=log > StartTime=00:00:00 > EndTime=00:00:00 > UseDataDictionary=N > SocketConnectPort=442 > SenderCompID=SENDER > ResetOnDisconnect=Y > ResetOnLogout=Y > ValidateUserDefinedFields=N > ValidateFieldsOutOfOrder=Y > > [SESSION] > BeginString=FIX.4.2 > TargetCompID=TARGET > SocketConnectHost= > ResetSeqNumFlag=Y > DataDictionary=FIX42.xml > > > Briefly : > On receipt of a MarketDataIncrementalRefresh with more than 1 group (i.e most of them with BID / OFFER) quickfix generates a RepeatedTag rejection. > > Less Briefly : > > Looking at Log Viewer and Wireshark everything is fine - repeated groups, all OK. Everything is also good when viewing an XML export from the Log Viewer ... > > > <message> > <header> > <field name="BeginString" number="8"><![CDATA[FIX.4.2]]></field> > <field name="BodyLength" number="9"><![CDATA[221]]></field> > <field name="MsgSeqNum" number="34"><![CDATA[3]]></field> > <field enum="MarketDataIncrementalRefresh" name="MsgType" number="35"><![CDATA[X]]></field> > <field name="SenderCompID" number="49"><![CDATA[TARGET]]></field> > <field name="SendingTime" number="52"><![CDATA[20091221-03:19:07.535]]></field> > <field name="TargetCompID" number="56"><![CDATA[SENDER]]></field> > </header> > <body> > <field name="MDReqID" number="262"><![CDATA[2009-12-21-03:19:07]]></field> > <field name="NoMDEntries" number="268"><![CDATA[2]]></field> > <group> > <field enum="NEW" name="MDUpdateAction" number="279"><![CDATA[0]]></field> > <field enum="BID" name="MDEntryType" number="269"><![CDATA[0]]></field> > <field name="MDEntryID" number="278"><![CDATA[1]]></field> > <field name="Symbol" number="55"><![CDATA[USD/JPY]]></field> > <field name="MDEntryPx" number="270"><![CDATA[90.449]]></field> > <field name="Currency" number="15"><![CDATA[USD]]></field> > <field name="MDEntrySize" number="271"><![CDATA[6000000]]></field> > <field name="NumberOfOrders" number="346"><![CDATA[2]]></field> > </group> > <group> > <field enum="NEW" name="MDUpdateAction" number="279"><![CDATA[0]]></field> > <field enum="OFFER" name="MDEntryType" number="269"><![CDATA[1]]></field> > <field name="MDEntryID" number="278"><![CDATA[2]]></field> > <field name="Symbol" number="55"><![CDATA[USD/JPY]]></field> > <field name="MDEntryPx" number="270"><![CDATA[90.456]]></field> > <field name="Currency" number="15"><![CDATA[USD]]></field> > <field name="MDEntrySize" number="271"><![CDATA[1000000]]></field> > <field name="NumberOfOrders" number="346"><![CDATA[1]]></field> > </group> > </body> > <trailer> > <field name="CheckSum" number="10"><![CDATA[041]]></field> > </trailer> > </message> > > but quickfix insists it isn't and generates this ... > > > <message> > <header> > <field name="BeginString" number="8"><![CDATA[FIX.4.2]]></field> > <field name="BodyLength" number="9"><![CDATA[109]]></field> > <field name="MsgSeqNum" number="34"><![CDATA[3]]></field> > <field enum="Reject" name="MsgType" number="35"><![CDATA[3]]></field> > <field name="SenderCompID" number="49"><![CDATA[SENDER]]></field> > <field name="SendingTime" number="52"><![CDATA[20091221-03:19:07.639]]></field> > <field name="TargetCompID" number="56"><![CDATA[TARGET]]></field> > </header> > <body> > <field name="RefSeqNum" number="45"><![CDATA[3]]></field> > <field name="Text" number="58"><![CDATA[Tag appears more than once]]></field> > <field name="RefTagID" number="371"><![CDATA[15]]></field> > <field name="RefMsgType" number="372"><![CDATA[X]]></field> > </body> > <trailer> > <field name="CheckSum" number="10"><![CDATA[111]]></field> > </trailer> > </message> > > > If I look in Session::next() with this ... > > std::cout << "DEBUG : Session::next() : BEGIN MESSAGE" << std::endl; > std::cout << message.toXML() << std::endl; > std::cout << "DEBUG : Session::next() : END MESSAGE" << std::endl; > > I see this ... > > DEBUG : Session::next() : BEGIN MESSAGE > <message> > <header> > <field number="8"><![CDATA[FIX.4.2]]></field> > <field number="9"><![CDATA[221]]></field> > <field number="35"><![CDATA[X]]></field> > <field number="34"><![CDATA[3]]></field> > <field number="49"><![CDATA[CNX]]></field> > <field number="52"><![CDATA[20091221-05:48:36.020]]></field> > <field number="56"><![CDATA[int2mansing2str]]></field> > </header> > <body> > <field number="15"><![CDATA[USD]]></field> > <field number="15"><![CDATA[USD]]></field> > <field number="55"><![CDATA[USD/JPY]]></field> > <field number="55"><![CDATA[USD/JPY]]></field> > <field number="262"><![CDATA[2009-12-21-05:48:35]]></field> > <field number="268"><![CDATA[2]]></field> > <field number="269"><![CDATA[0]]></field> > <field number="269"><![CDATA[1]]></field> > <field number="270"><![CDATA[90.301]]></field> > <field number="270"><![CDATA[90.307]]></field> > <field number="271"><![CDATA[1000000]]></field> > <field number="271"><![CDATA[1000000]]></field> > <field number="278"><![CDATA[1]]></field> > <field number="278"><![CDATA[2]]></field> > <field number="279"><![CDATA[0]]></field> > <field number="279"><![CDATA[0]]></field> > <field number="346"><![CDATA[1]]></field> > <field number="346"><![CDATA[1]]></field> > </body> > <trailer> > <field number="10"><![CDATA[017]]></field> > </trailer> > </message> > DEBUG : Session::next() : END MESSAGE > > > and of course this is the result ... > > DEBUG : DataDictionary::validate() > field = 8 > field = 9 > field = 35 > field = 34 > field = 49 > field = 52 > field = 56 > field = 10 > field = 15 > field = 15 > DEBUG : Session::next() : catch RepeatedTag > > The field data in the message body is sorted and without the grouping information. > > > -- > chris boucher > "In this house we obey the laws of thermodynamics!" - H. Simpson > > ------------------------------------------------------------------------------ > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: chris <chr...@gm...> - 2009-12-21 07:34:02
|
Hi all, This is very odd - any clues or pointers to missed posts very welcome. Using FIX.4.2, C++, 1.12.4, g++ 4.3.3 on Ubuntu 9.04 [DEFAULT] ConnectionType=initiator HeartBtInt=30 ReconnectInterval=10 LogonTimeout=120 FileStorePath=store FileLogPath=log StartTime=00:00:00 EndTime=00:00:00 UseDataDictionary=N SocketConnectPort=442 SenderCompID=SENDER ResetOnDisconnect=Y ResetOnLogout=Y ValidateUserDefinedFields=N ValidateFieldsOutOfOrder=Y [SESSION] BeginString=FIX.4.2 TargetCompID=TARGET SocketConnectHost= ResetSeqNumFlag=Y DataDictionary=FIX42.xml Briefly : On receipt of a MarketDataIncrementalRefresh with more than 1 group (i.e most of them with BID / OFFER) quickfix generates a RepeatedTag rejection. Less Briefly : Looking at Log Viewer and Wireshark everything is fine - repeated groups, all OK. Everything is also good when viewing an XML export from the Log Viewer ... * <message> <header> <field name="BeginString" number="8"><![CDATA[FIX.4.2]]></field> <field name="BodyLength" number="9"><![CDATA[221]]></field> <field name="MsgSeqNum" number="34"><![CDATA[3]]></field> <field enum="MarketDataIncrementalRefresh" name="MsgType" number="35"><![CDATA[X]]></field> <field name="SenderCompID" number="49"><![CDATA[TARGET]]></field> <field name="SendingTime" number="52"><![CDATA[20091221-03:19:07.535]]></field> <field name="TargetCompID" number="56"><![CDATA[SENDER]]></field> </header> <body> <field name="MDReqID" number="262"><![CDATA[2009-12-21-03:19:07]]></field> <field name="NoMDEntries" number="268"><![CDATA[2]]></field> <group> <field enum="NEW" name="MDUpdateAction" number="279"><![CDATA[0]]></field> <field enum="BID" name="MDEntryType" number="269"><![CDATA[0]]></field> <field name="MDEntryID" number="278"><![CDATA[1]]></field> <field name="Symbol" number="55"><![CDATA[USD/JPY]]></field> <field name="MDEntryPx" number="270"><![CDATA[90.449]]></field> <field name="Currency" number="15"><![CDATA[USD]]></field> <field name="MDEntrySize" number="271"><![CDATA[6000000]]></field> <field name="NumberOfOrders" number="346"><![CDATA[2]]></field> </group> <group> <field enum="NEW" name="MDUpdateAction" number="279"><![CDATA[0]]></field> <field enum="OFFER" name="MDEntryType" number="269"><![CDATA[1]]></field> <field name="MDEntryID" number="278"><![CDATA[2]]></field> <field name="Symbol" number="55"><![CDATA[USD/JPY]]></field> <field name="MDEntryPx" number="270"><![CDATA[90.456]]></field> <field name="Currency" number="15"><![CDATA[USD]]></field> <field name="MDEntrySize" number="271"><![CDATA[1000000]]></field> <field name="NumberOfOrders" number="346"><![CDATA[1]]></field> </group> </body> <trailer> <field name="CheckSum" number="10"><![CDATA[041]]></field> </trailer> </message> *but quickfix insists it isn't and generates this ...* <message> <header> <field name="BeginString" number="8"><![CDATA[FIX.4.2]]></field> <field name="BodyLength" number="9"><![CDATA[109]]></field> <field name="MsgSeqNum" number="34"><![CDATA[3]]></field> <field enum="Reject" name="MsgType" number="35"><![CDATA[3]]></field> <field name="SenderCompID" number="49"><![CDATA[SENDER]]></field> <field name="SendingTime" number="52"><![CDATA[20091221-03:19:07.639]]></field> <field name="TargetCompID" number="56"><![CDATA[TARGET]]></field> </header> <body> <field name="RefSeqNum" number="45"><![CDATA[3]]></field> <field name="Text" number="58"><![CDATA[Tag appears more than once]]></field> <field name="RefTagID" number="371"><![CDATA[15]]></field> <field name="RefMsgType" number="372"><![CDATA[X]]></field> </body> <trailer> <field name="CheckSum" number="10"><![CDATA[111]]></field> </trailer> </message>* If I look in Session::next() with this ... std::cout << "DEBUG : Session::next() : BEGIN MESSAGE" << std::endl; std::cout << message.toXML() << std::endl; std::cout << "DEBUG : Session::next() : END MESSAGE" << std::endl; I see this ... DEBUG : Session::next() : BEGIN MESSAGE <message> <header> <field number="8"><![CDATA[FIX.4.2]]></field> <field number="9"><![CDATA[221]]></field> <field number="35"><![CDATA[X]]></field> <field number="34"><![CDATA[3]]></field> <field number="49"><![CDATA[CNX]]></field> <field number="52"><![CDATA[20091221-05:48:36.020]]></field> <field number="56"><![CDATA[int2mansing2str]]></field> </header> <body> <field number="15"><![CDATA[USD]]></field> <field number="15"><![CDATA[USD]]></field> <field number="55"><![CDATA[USD/JPY]]></field> <field number="55"><![CDATA[USD/JPY]]></field> <field number="262"><![CDATA[2009-12-21-05:48:35]]></field> <field number="268"><![CDATA[2]]></field> <field number="269"><![CDATA[0]]></field> <field number="269"><![CDATA[1]]></field> <field number="270"><![CDATA[90.301]]></field> <field number="270"><![CDATA[90.307]]></field> <field number="271"><![CDATA[1000000]]></field> <field number="271"><![CDATA[1000000]]></field> <field number="278"><![CDATA[1]]></field> <field number="278"><![CDATA[2]]></field> <field number="279"><![CDATA[0]]></field> <field number="279"><![CDATA[0]]></field> <field number="346"><![CDATA[1]]></field> <field number="346"><![CDATA[1]]></field> </body> <trailer> <field number="10"><![CDATA[017]]></field> </trailer> </message> DEBUG : Session::next() : END MESSAGE and of course this is the result ... DEBUG : DataDictionary::validate() field = 8 field = 9 field = 35 field = 34 field = 49 field = 52 field = 56 field = 10 field = 15 field = 15 DEBUG : Session::next() : catch RepeatedTag The field data in the message body is sorted and without the grouping information. -- chris boucher "In this house we obey the laws of thermodynamics!" - H. Simpson |
From: Hei C. <str...@ya...> - 2009-12-19 13:14:02
|
Hi, I just wonder whether quickfix/C++ has something like SocketSendBufferSize in quickfix/j. I grepped the source code for "setsockopt", but I don't see a possible call the change SO_SNDBUF. Am I missing something? Thanks in advance. Cheers, Hei |
From: Evans, J. \(IT Woodbridge\) <JF...@he...> - 2009-12-07 14:24:10
|
You need to make more than just setting changes. You need to create the appropriate objects for the initiator... ODBC Example: Dim storeFactory As New OdbcStoreFactory(settings) Dim logFactory As New OdbcLogFactory(settings) File Example: Dim storeFactory As New FileStoreFactory(settings) Dim logFactory As New FileLogFactory(settings) -----Original Message----- From: jeffreykr [mailto:jef...@gm...] Sent: Sunday December 06, 2009 1:29 AM To: qui...@li... Subject: [Quickfix-users] not writing to sql server QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html hello. my sample app does not seem to be writing to sql server. i built the entire quickfix solution with: // Define if you have odbc library (Odbc32.lib) #define HAVE_ODBC 1 and put these in my settings file: OdbcStoreUser=sa OdbcStorePassword=secret OdbcStoreConnectionString=Database=quickfix;Driver={SQL Server Native Client 10.0};Server=JEFF-PC\SQLExpress; OdbcLogUser=sa OdbcLogPassword=secret OdbcLogConnectionString=Database=quickfix;Driver={SQL Server Native Client 10.0};Server=JEFF-PC\SQLExpress; even when doing so, if i omit the FileStorePath setting from my settings file, i get an exception caused specifically when it tries to look for the FileStorePath. and yet i have compiled the solution with ODBC set, and have put in the above lines into my settings file. is this a bug or have i done something wrong? i am writing to sql server 2008 express, and running example_tradeclient_vs8 from visual studio 2008 standard. thanks. -- View this message in context: http://old.nabble.com/not-writing-to-sql-server-tp26662597p26662597.html Sent from the QuickFIX - User mailing list archive at Nabble.com. ------------------------------------------------------------------------ ------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Quickfix-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-users . |
From: jeffreykr <jef...@gm...> - 2009-12-06 06:29:03
|
hello. my sample app does not seem to be writing to sql server. i built the entire quickfix solution with: // Define if you have odbc library (Odbc32.lib) #define HAVE_ODBC 1 and put these in my settings file: OdbcStoreUser=sa OdbcStorePassword=secret OdbcStoreConnectionString=Database=quickfix;Driver={SQL Server Native Client 10.0};Server=JEFF-PC\SQLExpress; OdbcLogUser=sa OdbcLogPassword=secret OdbcLogConnectionString=Database=quickfix;Driver={SQL Server Native Client 10.0};Server=JEFF-PC\SQLExpress; even when doing so, if i omit the FileStorePath setting from my settings file, i get an exception caused specifically when it tries to look for the FileStorePath. and yet i have compiled the solution with ODBC set, and have put in the above lines into my settings file. is this a bug or have i done something wrong? i am writing to sql server 2008 express, and running example_tradeclient_vs8 from visual studio 2008 standard. thanks. -- View this message in context: http://old.nabble.com/not-writing-to-sql-server-tp26662597p26662597.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: jeffreykr <jef...@gm...> - 2009-12-06 01:20:30
|
hello. does anyone have a settings file that works with interactive brokers? i am having trouble getting the example_tradeclient_vs8 sample to run. i'd like to rule out a bad param in my settings file. thanks. -- View this message in context: http://old.nabble.com/settings-file-for-interactive-brokers-tp26661221p26661221.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Kenny S. <ks...@co...> - 2009-12-05 17:08:53
|
This is a question for the general FIX mailing list ( http://www.fixprotocol.org/) or the exchange. QuickFIX will support whatever it is that needs to be sent. -- Kenny Stone Connamara Systems, LLC On Sat, Dec 5, 2009 at 5:38 AM, Deepak Angeshwar <ang...@gm...>wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Thanks for the reply. > Do you mean to say - Fix42 API doesn't support it directly but the > Exchange-Connectivity specific API "may" support it? > > On Sat, Dec 5, 2009 at 11:32 AM, Hei Chan <str...@ya...>wrote: > >> It is exchange specific. >> >> ------------------------------ >> *From:* DeepakA <ang...@gm...> >> *To:* qui...@li... >> *Sent:* Sat, December 5, 2009 2:25:01 AM >> *Subject:* [Quickfix-users] how to create a Order Cancels Other (OCO) >> order? >> >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> Can some one explain to me how to create a Order Cancels Other (OCO) >> order? >> i.e. I need to combine a Stop order and a Limit Order. >> >> >> Thanks. >> -- >> View this message in context: >> http://old.nabble.com/how-to-create-a-Order-Cancels-Other-%28OCO%29-order--tp26654415p26654415.html >> Sent from the QuickFIX - User mailing list archive at Nabble.com. >> >> >> >> ------------------------------------------------------------------------------ >> Join us December 9, 2009 for the Red Hat Virtual Experience, >> a free event focused on virtualization and cloud computing. >> Attend in-depth sessions from your desk. Your couch. Anywhere. >> http://p.sf.net/sfu/redhat-sfdev2dev >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> >> > > > -- > ------ > > Deepak > > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: Deepak A. <ang...@gm...> - 2009-12-05 11:38:43
|
Thanks for the reply. Do you mean to say - Fix42 API doesn't support it directly but the Exchange-Connectivity specific API "may" support it? On Sat, Dec 5, 2009 at 11:32 AM, Hei Chan <str...@ya...> wrote: > It is exchange specific. > > ------------------------------ > *From:* DeepakA <ang...@gm...> > *To:* qui...@li... > *Sent:* Sat, December 5, 2009 2:25:01 AM > *Subject:* [Quickfix-users] how to create a Order Cancels Other (OCO) > order? > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Can some one explain to me how to create a Order Cancels Other (OCO) order? > i.e. I need to combine a Stop order and a Limit Order. > > > Thanks. > -- > View this message in context: > http://old.nabble.com/how-to-create-a-Order-Cancels-Other-%28OCO%29-order--tp26654415p26654415.html > Sent from the QuickFIX - User mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > Join us December 9, 2009 for the Red Hat Virtual Experience, > a free event focused on virtualization and cloud computing. > Attend in-depth sessions from your desk. Your couch. Anywhere. > http://p.sf.net/sfu/redhat-sfdev2dev > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > -- ------ Deepak |
From: Hei C. <str...@ya...> - 2009-12-05 11:32:49
|
It is exchange specific. ________________________________ From: DeepakA <ang...@gm...> To: qui...@li... Sent: Sat, December 5, 2009 2:25:01 AM Subject: [Quickfix-users] how to create a Order Cancels Other (OCO) order? QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Can some one explain to me how to create a Order Cancels Other (OCO) order? i.e. I need to combine a Stop order and a Limit Order. Thanks. -- View this message in context: http://old.nabble.com/how-to-create-a-Order-Cancels-Other-%28OCO%29-order--tp26654415p26654415.html Sent from the QuickFIX - User mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Quickfix-users mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-users |
From: DeepakA <ang...@gm...> - 2009-12-05 10:25:13
|
Can some one explain to me how to create a Order Cancels Other (OCO) order? i.e. I need to combine a Stop order and a Limit Order. Thanks. -- View this message in context: http://old.nabble.com/how-to-create-a-Order-Cancels-Other-%28OCO%29-order--tp26654415p26654415.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Deepak A. <ang...@gm...> - 2009-12-05 10:24:06
|
Can some one explain to me how to create a Order Cancels Other (OCO) order? i.e. I need to combine a Stop order and a Limit Order. Thanks. |
From: Bryte, A. <ale...@ci...> - 2009-12-03 22:03:34
|
Hi everyone, Is there a .NET method that accepts a FIX message string and returns the corresponding strongly typed object of the message type inferred from the string? E.g. if FIX string has 35=D, it would return an object of type NewOrderSingle. I've gone through the docs and found some examples related to setting up connections, etc, but in my scenario I just need to parse FIX strings; communications are done someplace else. Also, the "samples" directory referred to in the docs doesn't seem to exist inside quickfix-bin-vs8-1.12.4.zip. Thanks. |
From: Rick H. <rh...@pe...> - 2009-11-30 15:43:43
|
Okay, I appear to have solved this problem. When you create the SocketInitiator, you need to use the version of the constructor that takes a LogFactory as the 4th argument. I believe the documentation is incorrect. The constructors in the html don't mention the 5th argument, the MessageFactory. There is no need to explicitly create a log, or hook logging into messages. Regards, Rick Rick H. wrote: > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Gentlepeople: > > I have changed ScreenLogFactory logFactory to FileLogFactory logFactory, > and I have changed logFactory = new ScreenLogFactory(settings) to > logFactory = new FileLogFactory(settings). I have added the line: > FileLogPath=Z:/Rick/IOIViewer_logs/actual_logs_not_state/IOIServer_logs to > my IOISession.ini file. I know that I am changed the correct ini file, > because when I hide it, the application won’t start. My application is a > lightly-modified tradeclient example. > > No x.incoming, x.outgoing, or x.event files appear in the designated > directory. Do I need to supply an implementation for OnIncoming and > similar methods? What is the piece I am missing? > > > Regards, > > Rick > > > ______________________________________________ > > See http://www.peak6.com/email_disclaimer.php > for terms and conditions related to this email > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 > 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > -- View this message in context: http://old.nabble.com/Have-FileLogFactory.--Need-to-specify-OnIncoming%2C-et-alii---tp26521598p26576742.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Richard H. <rh...@pe...> - 2009-11-25 22:43:34
|
Gentlepeople: I have changed ScreenLogFactory logFactory to FileLogFactory logFactory, and I have changed logFactory = new ScreenLogFactory(settings) to logFactory = new FileLogFactory(settings). I have added the line: FileLogPath=Z:/Rick/IOIViewer_logs/actual_logs_not_state/IOIServer_logs to my IOISession.ini file. I know that I am changed the correct ini file, because when I hide it, the application won’t start. My application is a lightly-modified tradeclient example. No x.incoming, x.outgoing, or x.event files appear in the designated directory. Do I need to supply an implementation for OnIncoming and similar methods? What is the piece I am missing? Regards, Rick ______________________________________________ See http://www.peak6.com/email_disclaimer.php for terms and conditions related to this email |
From: Hei C. <str...@ya...> - 2009-11-25 19:23:11
|
Hi, I am using quickfix C++. I wonder whether I use the relative path to my dictionary file in the configuration properties file. If yes, what's the base path? How I can set it? Thanks in advance. Cheers, Hei |
From: T_J <tob...@co...> - 2009-11-23 08:04:01
|
Hi Long time reader, first time poster. We have a week long session with a third party that insists on dropping the session every night for a couple of hours to run their end of day processing. During this period we obviously continue to attempt to Logon until they come back up again. We also send them Exec and TradeCap reports during this period which are persisted for replay on their reconnect. However, here we have the issue. This is what happened last night (times are GMT, though actually pretty unimportant :) ): 1) The third party disconnect at 22:00. Our last sequence number to them was 3457 - a Logon attempt. 2) We send a bunch of Logon attempts which push up the sequence numbers from our end. 3) We send some Exec and Trade Cap reports from sequence number 3635. 4) They reconnect and Logon at 01:55. They send us a ResendRequest for sequence numbers 3458 to 0 (all). 8=FIX.4.4 9=85 35=2 34=3260 49=X 52=20091118-01:55:12.647 56=Y 7=3458 16=0 10=255 This is correct. 5) We send them a GapFill SequenceReset for sequence number 3635: 8=FIX.4.4 9=110 35=4 34=3458 43=Y 49=Y 52=20091118-01:55:12 56=X 122=20091118-01:55:12 36=3635 123=Y 10=029 This looks fine to me, to fill the gap of all the Logon requests before we get the first Exec Report. 6) I would then expect us to resend the exec and trade cap reports. However, nothing else is resent and the heartbeats continue from 3635. It appears that the fix engine is sending the Gap Fill and then stopping the resend processing, even though there are trade messages to be resent. Is this something that anyone else has witnessed ? Could it be configuration ? This seems like something that should pretty obviously be working and so I am confused as to why it isn't Thanks -- View this message in context: http://old.nabble.com/ResendRequest-SequenceReset---Gap-Fill-then-nothing-tp26404688p26404688.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Gelfenbeyn, I. <IGe...@pa...> - 2009-11-18 19:40:23
|
From: Blabos de B. <bl...@gm...> - 2009-11-18 17:48:54
|
> Where can I get command-line tools that use the QuickFix library? Within the sources directory has a directory called examples, where are command line tools compiled during the quickfix compilation. Blabos On Wed, Nov 18, 2009 at 1:43 PM, Kelly Jones <kel...@gm...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Where can I get command-line tools that use the QuickFix library? > > I just want to connect to a FIX server, login, and send some simple > messages for starters. > > Is there Perl/Ruby/PHP/etc support for QuickFix? > > -- > We're just a Bunch Of Regular Guys, a collective group that's trying > to understand and assimilate technology. We feel that resistance to > new ideas and technology is unwise and ultimately futile. > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: Kenny S. <ks...@co...> - 2009-11-18 16:40:58
|
QuickFIX can build ruby and python bindings. You specify them with the configure script: http://quickfixengine.org/quickfix/doc/html/building.html -- Kenny Stone Connamara Systems, LLC On Wed, Nov 18, 2009 at 9:43 AM, Kelly Jones <kel...@gm...>wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Where can I get command-line tools that use the QuickFix library? > > I just want to connect to a FIX server, login, and send some simple > messages for starters. > > Is there Perl/Ruby/PHP/etc support for QuickFix? > > -- > We're just a Bunch Of Regular Guys, a collective group that's trying > to understand and assimilate technology. We feel that resistance to > new ideas and technology is unwise and ultimately futile. > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: Dale W. <wi...@oc...> - 2009-11-18 15:47:42
|
Joaquín Gracia wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Hi all, > > I'm using an application directly developed from the tradeclient > example in C++. > > How can I make this applicaton generate a log file with all messages > sent and received? > ** Change the code to use FIX::FileLogFactory rather than FIX::ScreenLogFactory. Dale ** > Thanks. > > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: Kelly J. <kel...@gm...> - 2009-11-18 15:43:57
|
Where can I get command-line tools that use the QuickFix library? I just want to connect to a FIX server, login, and send some simple messages for starters. Is there Perl/Ruby/PHP/etc support for QuickFix? -- We're just a Bunch Of Regular Guys, a collective group that's trying to understand and assimilate technology. We feel that resistance to new ideas and technology is unwise and ultimately futile. |