quickfix-users Mailing List for QuickFIX (Page 36)
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: J. M. <jul...@pr...> - 2008-06-09 17:22:18
|
Hello. My server (Aceptor) is sending me I message that, beside is declared in FIXML4.4, has other field defined. So I edit the xml adding the fields missing to each xml message and all that. It was working good until the next isue came up: I'm getting an SecurityResponse whith the format: message{ 52=20080609-16:33:48.389 57=1 322=3820 323=4 320=1 15=USD 393=2045 82=21 67=12 711=100 group{ 311 = 587018 309 = ????SVN0008! 305 = 8 -------------------------------------------------> FOCUS ON THIS FIELD 463 = FXXXXX 307 = NG Fin BS, LD1 for IF - Consumers - Jul08 542 = 20080630 9013 = 0.0005 9014 = 2500.0 9017 = 2500 326 = 17 9083 = 4 9084= 0 9061 = 429 } } And QuickFix is autoresponsing this problem: 58=Tag not defined for this message type371=305 So I deduce that the tag 305 ( UnderlyingSecurityIDSource ) was missing from que message SecurityResponse and add it to the xml definition: <message name="SecurityDefinition" msgtype="d" msgcat="app"> ... <field name="UnderlyingSecurityIDSource" required="Y" /> .... <message/> But as I do that it tells me that the field 305 is repeating... Is logic, it is in an repeating gruop. So lest put it into the corresponding repeating group.... But when I attempt to do it... I see the field is in there... <message name="SecurityDefinition" msgtype="d" msgcat="app"> ... <group name="NoUnderlyings" required="N"> <component name="UnderlyingInstrument" required="N" /> </group> .... <message/> Where.... <component name="UnderlyingInstrument"> ... <field name="UnderlyingSecurityIDSource" required="N" /> --------> this is the fiel 305, difined in the field area. ... <component/> Why QuickFix is not "seeing" this field ??? Is any other way of avoiding the auto response of quickFix, cause the info I want is in the message... but QuickFix automaticaly reject it.....???? Thanks, Julian. |
From: Malinka R. <ael...@gm...> - 2008-06-06 20:44:51
|
have you checked: http://www.quickfixengine.org/quickfix/doc/html/user_defined.html On Fri, Jun 6, 2008 at 12:23 PM, Zayas, Guido (IT) < Gui...@mo...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi, > > I would like to add new fields to the ExecutionReport, non standard ones, > and I was wondering if there was a way of auto generating code from the > spec. > > My idea is to modify fix44.xml and then regenerate all the classes from > there. Is that possible? > > Thanks in advance for your help. > > Regards, > > > Guido Zayas > ------------------------------ > > NOTICE: If received in error, please destroy and notify sender. Sender does > not intend to waive confidentiality or privilege. Use of this email is > prohibited when received in error. > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://sourceforge.net/services/buy/index.php > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |
From: Zayas, G. \(IT\) <Gui...@Mo...> - 2008-06-06 16:23:49
|
Hi, I would like to add new fields to the ExecutionReport, non standard ones, and I was wondering if there was a way of auto generating code from the spec. My idea is to modify fix44.xml and then regenerate all the classes from there. Is that possible? Thanks in advance for your help. Regards, Guido Zayas -------------------------------------------------------- NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. |
From: Dale W. <wil...@oc...> - 2008-06-02 15:20:33
|
Hi Julian, Julián Mendiola wrote: > In the documentation says: "Most of the messages you will be > interested in looking at will be arriving in your overloaded > *fromApp". *But most doesn't mean all... I'm reciveing a message (I > see it in the logFile tag 35=AE) but the fromApp method is not call... If the message fails validation, it will not be delivered to fromApp. Instead QuickFIX will automatically generate the appropriate rejection message. > where can I catch that message? Other thing that leave me thinking was > that an automatic response is generated when the message arrive( with > the tag 35=3 and description: "Tag appears more than once". But that > is correct, the message must have repeating tags... it is well formated. In order to validate a message containing repeating groups, QuickFIX must have a data dictionary available. Look in your configuration file to be sure you have defined a data dictionary for this session (DataDictionary=path/file), and that UseDataDictionary=Y. These can appear in the specific [session] or in [default] Dale > > Thanks, Julian. |
From: Gianpiero N. <mag...@gm...> - 2008-05-30 18:22:51
|
Ok, I turned on the log file. I attached the message-log file and the event-log file. Thanks, gianpiero |
From: J. M. <jul...@pr...> - 2008-05-30 16:37:52
|
In the documentation says: "Most of the messages you will be interested in looking at will be arriving in your overloaded *fromApp". *But most doesn't mean all... I'm reciveing a message (I see it in the logFile tag 35=AE) but the fromApp method is not call... where can I catch that message? Other thing that leave me thinking was that an automatic response is generated when the message arrive( with the tag 35=3 and description: "Tag appears more than once". But that is correct, the message must have repeating tags... it is well formated. Thanks, Julian. |
From: Mike G. <mg...@co...> - 2008-05-30 14:54:14
|
It would be easier to help you diagnose the problem if you could turn on the FileLog and post both your messages and event logs for the session. -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: Gianpiero N. <mag...@gm...> - 2008-05-30 00:57:41
|
Hi, I downloaded, compiled ed installed quickfix engine. I wrote a simple class that implement Application.h. But when I test my application with openfix it doesn't work. The error was: "The undefined value ha no poperties" I tryed also with the example application tradingclient downloaded with quickfix: I have the same problem. Can you help me, please? Here there are all messages, config file and code. Thanks gianpiero My application (or the tradeclient application) send to openfix the logon message: * BeginString (8): FIX.4.4 BodyLength (9): 73 MsgType (35): A (Logon) MsgSeqNum (34): 1 SenderCompID (49): RTITEST1 SendingTime (52): 20080530-00:40:24.904 TargetCompID (56): OPENFIX#include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } EncryptMethod (98): 0 HeartBtInt (108): 2000 CheckSum (10): 003* The opefix server reply with a logout message: *BeginString (8): FIX.4.4#include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } BodyLength (9): 84 MsgType (35): 5 (Logout) SenderCompID (49): OPENFIX#include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } TargetCompID (56): RTITEST1 SendingTime (52): 20080530-00:41:31 MsgSeqNum (34): 1 Text (58): Test session shutting down#include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } CheckSum (10): 096* My application send another message (logout): *BeginString (8): FIX.4.4 BodyLength (9): 59 MsgType (35): 5 (Logout) MsgSeqNum (34): 2 SenderCompID (49): RTITEST1 SendingTime (52): 20080530-00:40:25.891 TargetCompID (56): OPENFIX CheckSum (1** BodyLength (9): 59**0): 138 *My simple application is composed by 3 file: Application.h #include "quickfix/Application.h" #include "quickfix/MessageCracker.h" #include "quickfix/Values.h" #include "quickfix/Utility.h" #include "quickfix/Mutex.h" #include "quickfix/fix40/NewOrderSingle.h" #include "quickfix/fix41/NewOrderSingle.h" #include "quickfix/fix42/NewOrderSingle.h" #include "quickfix/fix43/NewOrderSingle.h" #include "quickfix/fix44/NewOrderSingle.h" class Application : public FIX::Application { public: Application() : m_orderID(0), m_execID(0) {} // Application overloads char ask(); void run(); void onCreate( const FIX::SessionID& ); void onLogon( const FIX::SessionID& sessionID ); void onLogout( const FIX::SessionID& sessionID ); void toAdmin( FIX::Message&, const FIX::SessionID& ); void toApp( FIX::Message&, const FIX::SessionID& ) throw( FIX::DoNotSend ); void fromAdmin( const FIX::Message&, const FIX::SessionID& ) throw( FIX::FieldNotFound, FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::RejectLogon ); void fromApp( const FIX::Message& message, const FIX::SessionID& sessionID ) throw( FIX::FieldNotFound, FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::UnsupportedMessageType ); private: int m_orderID, m_execID; }; The Application.cpp #include "Application.h" #include "quickfix/Session.h" void Application::onCreate( const FIX::SessionID& sessionID ) { printf("onCreate called\n"); } void Application::onLogon( const FIX::SessionID& sessionID ) { printf("onLogon called\n"); } void Application::onLogout( const FIX::SessionID& sessionID ) { printf("onLogout called\n"); } void Application::toAdmin( FIX::Message& message, const FIX::SessionID& sessionID ) { printf("toAdmin called\n"); } void Application::toApp( FIX::Message& message, const FIX::SessionID& sessionID ) throw( FIX::DoNotSend ) { printf("toApp called\n"); } void Application::fromAdmin( const FIX::Message& message,const FIX::SessionID& sessionID ) throw( FIX::FieldNotFound, FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::RejectLogon ) { printf("fromAdmin called\n"); } void Application::fromApp( const FIX::Message& message,const FIX::SessionID& sessionID ) throw( FIX::FieldNotFound, FIX::IncorrectDataFormat, FIX::IncorrectTagValue, FIX::UnsupportedMessageType ) { printf("fromApp called\n"); //crack( message, sessionID ); } void Application::run() { while ( true ) { char action = ask(); }#include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } } char Application::ask() { char value; std::cout << std::endl // << "1) Enter Order" << std::endl // << "2) Cancel Order" << std::endl // << "3) Replace Order" << std::endl // << "4) Market data test" << std::endl // << "5) Quit" << std::endl << "?: "; std::cin >> value; return value; } And the follow is the configuartion file: * [DEFAULT] ConnectionType=initiator [SESSION]char Application::ask() { char value; std::cout << std::endl // << "1) Enter Order" << std::endl // << "2) Cancel Order" << std::endl // << "3) Replace Order" << std::endl // << "4) Market data test" << std::endl // << "5) Quit" << std::endl << "?: "; std::cin >> value; return value; } and the main: #include "quickfix/FileStore.h" #include "quickfix/FileLog.h" #include "quickfix/SocketInitiator.h" #include "quickfix/Session.h" #include "quickfix/SessionSettings.h" #include "quickfix/Application.h" #include "Application.h" int main( int argc, char** argv ) { if ( argc != 2 ) { std::cout << "usage: " << argv[ 0 ] << " FILE." << std::endl; return 0; } std::string file = argv[ 1 ]; try { FIX::SessionSettings settings( file ); Application application; FIX::FileStoreFactory storeFactory( settings ); FIX::ScreenLogFactory logFactory( true, true, true ); FIX::SocketInitiator initiator( application, storeFactory, settings, logFactory ); initiator.start(); application.run(); initiator.stop(); return 0; } catch ( std::exception & e ) { std::cout << e.what(); return 1; } } BeginString=FIX.4.4 SenderCompID=RTITEST1 TargetCompID=OPENFIX StartTime=00:00:01 EndTime=23:59:59 HeartBtInt=2000 SocketConnectPort=7001 SocketConnectHost=64.74.45.70 DataDictionary=/tmp/quickfix/spec/FIX44.xml FileStorePath=store.STORAGE EncryptMethod=0 MsgSeqNum=1 * * * |
From: Vincent P. <vpr...@ph...> - 2008-05-29 23:03:47
|
On May 29, 2008, at 5:53 PM, Mike Gatny wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ > html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > You may want to head over to fixprotocol.org and download the FIX spec > for the FIX version you are using. Specifically, you may want to look > at the appendix containing the state change matrices. Looks like I'll probably need to figure out the matrix. > > That said, a New Order Single (and other order msgs for that matter) > should always have a unique ClOrdID, regardless of side. > Additionally, > your counterparty may impose certain restrictions on the format of the > ClOrdID (e.g. it's length, or what characters it can contain). > > An ExecutionReport should always contain a ClOrdID that matches the > ClOrdID on the order to which it refers. So the party that sent > the buy > should get an ExecutionReport with a ClOrdID that matches his New > Order > Single's ClOrdID, and the party that sent the sell should get an > ExecutionReport with a ClOrdID that matches his New Order Single's > ClOrdID. Thanks. > > -- > Mike Gatny > Connamara Systems, LLC > http://www.connamara.com/ > > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users -- Vincent |
From: Mike G. <mg...@co...> - 2008-05-29 22:53:27
|
You may want to head over to fixprotocol.org and download the FIX spec for the FIX version you are using. Specifically, you may want to look at the appendix containing the state change matrices. That said, a New Order Single (and other order msgs for that matter) should always have a unique ClOrdID, regardless of side. Additionally, your counterparty may impose certain restrictions on the format of the ClOrdID (e.g. it's length, or what characters it can contain). An ExecutionReport should always contain a ClOrdID that matches the ClOrdID on the order to which it refers. So the party that sent the buy should get an ExecutionReport with a ClOrdID that matches his New Order Single's ClOrdID, and the party that sent the sell should get an ExecutionReport with a ClOrdID that matches his New Order Single's ClOrdID. -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: Vincent P. <vpr...@ph...> - 2008-05-29 22:18:44
|
When I send NOS on the sell side, I know you're supposed the send a unique ClOrdID. Are you also supposed to send a ClOrdID for orders on the buy side? I know you should give two matching trades a unique OrderID, and send ExecutionReports of each the sell that matches the buy, each of which has the seller's ClOrdID. I'm wondering if I should also send the ClOrdID for the buyer as well as the seller. -- Vincent |
From: Mike G. <mg...@co...> - 2008-05-29 19:50:21
|
Documentation for Repeating Groups is here: http://www.quickfixengine.org/quickfix/doc/html/repeating_groups.html Note that you must use a Data Dictionary in order to use repeating groups. If you need to support a non-standard FIX message that contains repeating groups, you'll have to modify the data dictionary accordingly. -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: J. M. <jul...@pr...> - 2008-05-29 19:46:40
|
In a lot of messsages in the FIX protocol there are sets of tags that might repeat. How do I do this with quickFix? I've tryed to repet the line that sets a tag but it didn't work... ej: // TradeDate message.setField(new UtcDateOnlyField(75, new DateTime(2008,05,29))); // TradeDate message.setField(new UtcDateOnlyField(75, new DateTime(2008, 05, 28))); I need to repeat this field It just override the field.... how do I performe this? Thanks, Julian. |
From: Mike G. <mg...@co...> - 2008-05-29 17:00:52
|
> In adition to [DEFAULT] and [SESSION] tags, is there any other? No. > Can I load generics messeges tags from a file without parsing them by my own? Yes. > Ther is not a function "session.getField("my_field")"? It won't be correct to specify > all the tags particular info in the code and develop a parcer to do this > wont be easy. You can call get() on a SessionSettings instance to get a Dictionary instance containing the [DEFAULT] settings. If you pass a SessionID argument to get(), you will get a Dictionary instance containing settings for a particular [SESSION]. On the Dictionary instance, you can then call getString("my_field") or getLong("my_field") or getBool("my_field"), etc... to get the value of your field depending on its type. -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: Mike G. <mg...@co...> - 2008-05-28 16:37:32
|
You can add the additional fields to the Logon message in the toAdmin() callback. Check with your counterparty to determine which fields to use for the password and account (FIX specfies Password and Account fields, but your counterparty may use other/custom fields). -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: Mike G. <mg...@co...> - 2008-05-28 16:36:42
|
Yes, you can download the spec from http://fixprotocol.org/ which contains such tables. If you prefer xml, you can refer to the data dictionaries that ship with quickfix. -- Mike Gatny Connamara Systems, LLC http://www.connamara.com/ |
From: J. M. <jul...@pr...> - 2008-05-28 13:09:18
|
I've achived to performed a succesful logIn to my trade host. Thanks all for the sujestion and solution. Now I have another question... I don´t have very clear how the setting file works... Why it recogniced some fields but others are missing? Where is that specified? In adition to [DEFAULT] and [SESSION] tags, is there any other? Can I load generics messeges tags from a file without parsing them by my own? Ther is not a function "session.getField("my_field")"? It won't be correct to specify all the tags particular info in the code and develop a parcer to do this wont be easy. Thanks again. Julian. |
From: C. G. <let...@gm...> - 2008-05-27 08:36:16
|
Thank you for your help :) Problem is, no messages are ever sent or recieved. I does however seem to be like you say, the socket is gets closed on QF, or maybe it fails to open in the first place. I'm thinking something like the old connection is still lingering about, and the port is held busy by the OS, or somesuch. That's why I'd like to try prying more information about just what "connection failed" means. :) 2008/5/22 Malinka Rellikwodahs <ael...@gm...>: > the .NET quickfix is a Managed C++ wrapper to the C++ quickfix, so the .NET > methods and classes just call the C++ methods and classes with some extra > code for Garbage collection, so most likely you found the line that was > causing the log in your log file > > now i'm fairly sure that what causes a log sequence like that is when QF > tried to connect and send data to the other end the socket got closed on it, > you can look at your message log and see what messages you sent and > recieved, and verify if they are valid, also try pinging and telneting to > your server if you can telnet to the server then they closed the connection > on you after parsing the message and your message is wrong somehow (bad > protocol behavior but happens), otherwise if you can't verify firewall > settings on your end and contact the other end and verify firewall and such > > however if you really still want to change the log event then that c++ code > you found is the place to change it > > On Thu, May 22, 2008 at 5:53 AM, Claes Gyllenswärd <let...@gm...> > wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> >> I'm happily using quickfix and it works great. >> Every evening, at 22.00, the remote side turns off it's systems, and I >> need to wait until next morning when they come up again. >> My application attempts to reconnect continously but fails. >> The remote side say they never see any connection attempt at all, so I'm >> guessing for some reason, I fail to open a new socket during morning. My log >> simply says >> >> 20080522-08:46:09 : Connecting to xxx.xxx.xxx.xxx on port yyyyy >> 20080522-08:46:31 : Connection failed >> >> Since "Connection Failed" doesn't tell me much, I started looking for >> where the error occured, so I could add some extra error handling code. >> The only place I can find this message "Connection Failed" is in the c++ >> source files. I use .net, so I'm guessing that's not really relevant in my >> case. >> >> >> Could anyone give me some ideas about what to look for, so I can gather >> more information about my problem? >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> >> > |
From: Vincent P. <vpr...@ph...> - 2008-05-27 04:15:07
|
Is there a table that shows all the required fields for each FIX message? -- Vincent |
From: Mike P. <mic...@ya...> - 2008-05-27 02:35:21
|
You could add the user/password in the toAdmin() function. Mike --- On Mon, 5/26/08, Julián Mendiola <jul...@pr...> wrote: > From: Julián Mendiola <jul...@pr...> > Subject: [Quickfix-users] basic question > To: qui...@li... > Date: Monday, May 26, 2008, 2:28 PM > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users |
From: J. M. <jul...@pr...> - 2008-05-26 19:28:18
|
When I create a SocketIniciator and pass a SessionSetting with the conection info, I have deduce that it attempt to perform a conection automaticaly, isn't it? In this case, if my FIX server request extra information in the logon message (ej: username and password) how can I do to add this tags to the automatic SocketIniciator login messege??? Can I inherit from class SocketIniciator and override some method? I've tryed adding the fields in the setting file but nothing happends, seems it doesn't include them in the logon message. Thanks, Julian. |
From: J. M. <jul...@pr...> - 2008-05-26 15:53:22
|
I have some problems to conect to a server. I've created my SocketInitiator and setted all parameters my FIX client request. But as my consol aplication send a login request it recives this error: *"Conection reset by peer" *and disconect*.* What does it means? Do I also need a aceptor to recive information? Is the server rejecting my request? Thanks, Julian. |
From: Arturo A. H. U. <aho...@al...> - 2008-05-23 20:04:05
|
El Thursday 22 May 2008 12:10:41 Julián Mendiola escribió: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX > Support: http://www.quickfixengine.org/services.html I have created an introduction to FIX and QuickFIX, but it is in spanish. http://www.arturo.hoffstadt.cl/wp/2008/02/10/introduccion-a-fix-y-quickfix-financial-information-exchange/ I see the your domains is com.ar, so maybe it suits you Regards. -- Arturo Hoffstadt Urrutia aho...@in... Estudiante Ingenieria Civil Informatica http://arturo.hoffstadt.cl "La Magia existe, solo debes buscar mejor" |
From: matt b. <mb...@gm...> - 2008-05-23 01:05:04
|
Hello, Ok app thru exceptions enough to figure out what was need in the startup config file to get the SessionSettings class loaded into SocketInitiator I put in the IP, Port, TargetCompId, and SenderCompId my broker gave me however I also got a Logon password and Account number. When I call the SocketInitiator.isLoggedOn() it says false Do I need another command to send the password to login? Mags |
From: Malinka R. <ael...@gm...> - 2008-05-22 21:47:12
|
the .NET quickfix is a Managed C++ wrapper to the C++ quickfix, so the .NET methods and classes just call the C++ methods and classes with some extra code for Garbage collection, so most likely you found the line that was causing the log in your log file now i'm fairly sure that what causes a log sequence like that is when QF tried to connect and send data to the other end the socket got closed on it, you can look at your message log and see what messages you sent and recieved, and verify if they are valid, also try pinging and telneting to your server if you can telnet to the server then they closed the connection on you after parsing the message and your message is wrong somehow (bad protocol behavior but happens), otherwise if you can't verify firewall settings on your end and contact the other end and verify firewall and such however if you really still want to change the log event then that c++ code you found is the place to change it On Thu, May 22, 2008 at 5:53 AM, Claes Gyllenswärd <let...@gm...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I'm happily using quickfix and it works great. > Every evening, at 22.00, the remote side turns off it's systems, and I need > to wait until next morning when they come up again. > My application attempts to reconnect continously but fails. > The remote side say they never see any connection attempt at all, so I'm > guessing for some reason, I fail to open a new socket during morning. My log > simply says > > 20080522-08:46:09 : Connecting to xxx.xxx.xxx.xxx on port yyyyy > 20080522-08:46:31 : Connection failed > > Since "Connection Failed" doesn't tell me much, I started looking for where > the error occured, so I could add some extra error handling code. > The only place I can find this message "Connection Failed" is in the c++ > source files. I use .net, so I'm guessing that's not really relevant in my > case. > > > Could anyone give me some ideas about what to look for, so I can gather > more information about my problem? > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > |