public void Application_Startup( object sender, StartupEventArgs e, ICustomFixStrategy strategy) { Trace.WriteLine("Application started."); // FIX app settings and related QuickFix.SessionSettings settings = new QuickFix.SessionSettings(this.ConfigFile); strategy.SessionSettings = settings; // FIX application setup QuickFix.MessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.LogFactory logFactory = new QuickFix.FileLogFactory(settings); _qfapp = new QFApp(settings, strategy); QuickFix.IInitiator initiator = new QuickFix.Transport.SocketInitiator(_qfapp, storeFactory, settings, logFactory); _qfapp.Initiator = initiator; // Window creation and context assignment UIDemo.MainWindow mainWindow = new UIDemo.MainWindow(); mainWindow.DataContext = new MainWindowViewModel(); mainWindow.MessageView.DataContext = new MessageViewModel(_qfapp); mainWindow.ExecutionView.DataContext = new ExecutionViewModel(_qfapp); mainWindow.ConnectionView.DataContext = new ConnectionViewModel(_qfapp); mainWindow.OrderView.DataContext = new OrderViewModel(_qfapp, strategy); mainWindow.NewsSenderView.DataContext = new NewsSenderViewModel(_qfapp); // Set the main UI dispatcher SmartDispatcher.SetDispatcher(mainWindow.Dispatcher); mainWindow.Show(); }
static void Main(string[] args) { System.Console.WriteLine("============="); System.Console.WriteLine("This is only an example program."); System.Console.WriteLine(); System.Console.WriteLine(" ! ! !"); System.Console.WriteLine(" DO NOT USE THIS ON A COMMERCIAL FIX INTERFACE!"); System.Console.WriteLine(" ! ! !"); System.Console.WriteLine(); System.Console.WriteLine("============="); try { QuickFix.SessionSettings settings = new QuickFix.SessionSettings("execution.cfg"); TradingApp application = new TradingApp(settings.Get().GetString("LogonName"), settings.Get().GetString("LogonPassword")); QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.ILogFactory logFactory = new QuickFix.FileLogFactory(settings); QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory); // this is a developer-test kludge. do not emulate. application.MyInitiator = initiator; initiator.Start(); application.Run(); initiator.Stop(); } catch (System.Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } }
/** * Login button */ private void btnLogin_Click(object sender, EventArgs e) { // disable the login button toggleBtn(btnLogin, false); // enable the logout button toggleBtn(btnLogout, true); try { // load the settings from file QuickFix.SessionSettings settings = new QuickFix.SessionSettings("fix.cfg"); // create a MessageStoreFactory from settings QuickFix.MessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); // create a LogFactory from settings using a file instead of screen QuickFix.LogFactory logFactory = new QuickFix.FileLogFactory(settings); // create a MessageFactory QuickFix.MessageFactory messageFactory = new QuickFix.DefaultMessageFactory(); // (re)initialize the application based on settings app = new ExampleApplication(settings); // set a listener for events app.loginComplete += new ExampleApplication.LoginComplete(loginComplete); app.messageRecieved += new ExampleApplication.MessageRecieved(processEvent); // (re)initialize the initiator initiator = new QuickFix.SocketInitiator(app, storeFactory, settings, logFactory, messageFactory); // start, or login, to the API through the initiator initiator.start(); // display the supporting windows ratesWindow.Show(); tradeWindow.Show(); accountsWindow.Show(); } catch (Exception evt) { Console.WriteLine(evt); } }
public void testGeneratedFileName() { if (System.IO.Directory.Exists("log")) { System.IO.Directory.Delete("log", true); } QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP"); QuickFix.SessionSettings settings = new QuickFix.SessionSettings(); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.FILE_LOG_PATH, "log"); settings.Set(sessionID, config); QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); log = (QuickFix.FileLog)factory.Create(sessionID); log.OnEvent("some event"); log.OnIncoming("some incoming"); log.OnOutgoing("some outgoing"); Assert.That(System.IO.File.Exists("log/FIX.4.2-SENDERCOMP-TARGETCOMP.event.current.log")); Assert.That(System.IO.File.Exists("log/FIX.4.2-SENDERCOMP-TARGETCOMP.messages.current.log")); }
/// <summary> /// Initiate a connection through QuickFix to the TT Fix Adapter /// </summary> /// <param name="cfg">configuration file name</param> /// <param name="p">password</param> /// <param name="r">reset sequence numbers - always true for this application</param> /// <param name="c">the mainForm control</param> public void initiate(string cfg, string p, bool r, Control c) { log.CreateLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), null); try { _password = p; _resetSession = r; _control = c; _settings = new QuickFix.SessionSettings(cfg); _storeFactory = new QuickFix.FileStoreFactory(_settings); _logFactory = new QuickFix.FileLogFactory(_settings); _messageFactory = new QuickFix42.MessageFactory(); _initiator = new QuickFix.ThreadedSocketInitiator(this, _storeFactory, _settings, _logFactory, _messageFactory); _initiator.start(); } catch (Exception ex) { log.WriteLog(ex.ToString()); } }
public void testThrowsIfNoConfig() { QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP"); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); QuickFix.SessionSettings settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); Assert.Throws <QuickFix.ConfigError>(delegate { factory.Create(sessionID); }); }
public void testThrowsIfNoConfig() { QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP"); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); QuickFix.SessionSettings settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); Assert.Throws<QuickFix.ConfigError>(delegate { factory.Create(sessionID); }); }
public void setup() { if(System.IO.Directory.Exists("log")) System.IO.Directory.Delete("log",true); sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP","TARGETCOMP"); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.FILE_LOG_PATH, "log"); settings = new QuickFix.SessionSettings(); settings.Set(sessionID,config); QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); log = (QuickFix.FileLog)factory.Create(sessionID); }
public void testLogRotation() { string logDir = "log"; if (System.IO.Directory.Exists(logDir)) System.IO.Directory.Delete(logDir, true); QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP"); QuickFix.SessionSettings settings = new QuickFix.SessionSettings(); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.FILE_LOG_PATH, logDir); int NumLogsToRotate = 5; config.SetString(QuickFix.SessionSettings.FILE_LOG_ROTATE_NUM_TO_KEEP, NumLogsToRotate.ToString()); config.SetString(QuickFix.SessionSettings.FILE_LOG_ROTATE_ON_NEW_SESSION, "Y"); settings.Set(sessionID, config); string timeStampMinute = System.DateTime.UtcNow.ToString("MMddyyyy-HHmm"); for (int i = 0; i < NumLogsToRotate; i++) { QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); log = (QuickFix.FileLog)factory.Create(sessionID); log.OnEvent("some event"); log.OnIncoming("some incoming"); log.OnOutgoing("some outgoing"); Assert.That(System.IO.File.Exists(logDir+"/FIX.4.2-SENDERCOMP-TARGETCOMP.event.current.log")); Assert.That(System.IO.File.Exists(logDir+"/FIX.4.2-SENDERCOMP-TARGETCOMP.messages.current.log")); log.Dispose(); } Assert.That(System.IO.Directory.GetFiles(logDir, String.Format("FIX.4.2-SENDERCOMP-TARGETCOMP.messages.current.log.{0}*",timeStampMinute), System.IO.SearchOption.TopDirectoryOnly) .Count().Equals(NumLogsToRotate-1)); Assert.That(System.IO.Directory.GetFiles(logDir, String.Format("FIX.4.2-SENDERCOMP-TARGETCOMP.event.current.log.{0}*", timeStampMinute), System.IO.SearchOption.TopDirectoryOnly) .Count().Equals(NumLogsToRotate-1)); }
public void setup() { if (System.IO.Directory.Exists("log")) { System.IO.Directory.Delete("log", true); } sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP"); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.FILE_LOG_PATH, "log"); settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); log = (QuickFix.FileLog)factory.Create(sessionID); }
public static ClientApplication Create(string configFilepath, IFixStrategy strategy, IFixMessageGenerator messageGenerator, IMessageSink messageSink) { // FIX app settings and related var settings = new QuickFix.SessionSettings(configFilepath); strategy.SessionSettings = settings; // FIX application setup var storeFactory = new QuickFix.FileStoreFactory(settings); var logFactory = new QuickFix.FileLogFactory(settings); var app = new ClientApplication(settings, messageGenerator, strategy, messageSink); var initiator = new QuickFix.Transport.SocketInitiator(app, storeFactory, settings, logFactory); app.Initiator = initiator; return app; }
static void Main(string[] args) { Console.WriteLine("============="); Console.WriteLine("This is only an example program, meant to run against the Executor or SimpleAcceptor example programs."); Console.WriteLine(); Console.WriteLine(" ! ! !"); Console.WriteLine(" DO NOT USE THIS ON A COMMERCIAL FIX INTERFACE! It won't work and it's a bad idea!"); Console.WriteLine(" ! ! !"); Console.WriteLine(); Console.WriteLine("============="); if (args.Length != 1) { System.Console.WriteLine("usage: TradeClient.exe CONFIG_FILENAME"); } string file = "..\\Debug\\sample_initiator.cfg"; try { QuickFix.SessionSettings settings = new QuickFix.SessionSettings(file); TradeClientApp application = new TradeClientApp(); QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.ILogFactory logFactory = new QuickFix.FileLogFactory(settings); QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory); application.MyInitiator = initiator; initiator.Start(); application.Run(); initiator.Stop(); } catch (System.Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } Environment.Exit(1); }
public static ClientApplication Create(string configFilepath, IFixStrategy strategy, IFixMessageGenerator messageGenerator, IMessageSink messageSink) { // FIX app settings and related var settings = new QuickFix.SessionSettings(configFilepath); strategy.SessionSettings = settings; // FIX application setup var storeFactory = new QuickFix.FileStoreFactory(settings); var logFactory = new QuickFix.FileLogFactory(settings); var app = new ClientApplication(settings, messageGenerator, strategy, messageSink); var initiator = new QuickFix.Transport.SocketInitiator(app, storeFactory, settings, logFactory); app.Initiator = initiator; return(app); }
public void testGeneratedFileName() { if (System.IO.Directory.Exists("log")) System.IO.Directory.Delete("log", true); QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDERCOMP", "TARGETCOMP"); QuickFix.SessionSettings settings = new QuickFix.SessionSettings(); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.FILE_LOG_PATH, "log"); settings.Set(sessionID, config); QuickFix.FileLogFactory factory = new QuickFix.FileLogFactory(settings); log = (QuickFix.FileLog)factory.Create(sessionID); log.OnEvent("some event"); log.OnIncoming("some incoming"); log.OnOutgoing("some outgoing"); Assert.That(System.IO.File.Exists("log/FIX.4.2-SENDERCOMP-TARGETCOMP.event.current.log")); Assert.That(System.IO.File.Exists("log/FIX.4.2-SENDERCOMP-TARGETCOMP.messages.current.log")); }
/// <summary> /// Initiate a connection through QuickFix to the TT Fix Adapter /// </summary> /// <param name="cfg">configuration file name</param> /// <param name="p">password</param> /// <param name="r">reset sequence numbers - always true for this application</param> /// <param name="c">the mainForm control</param> public void initiate(string cfg, string p, bool r, Control c) { log.CreateLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), null); try { _password = p; _resetSession = r; _control = c; _settings = new QuickFix.SessionSettings(cfg); _storeFactory = new QuickFix.FileStoreFactory(_settings); _logFactory = new QuickFix.FileLogFactory(_settings); _messageFactory = new QuickFix.FIX42.MessageFactory(); _initiator = new QuickFix.Transport.SocketInitiator(this, _storeFactory, _settings, _logFactory, _messageFactory); _initiator.Start(); } catch (Exception ex) { updateDisplay("QuickFIX Error"); log.WriteLog(ex.ToString()); } }