/// <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()); } }
static void Main(string[] args) { if (args.Length != 1) { System.Console.WriteLine("usage: TradeClient.exe CONFIG_FILENAME"); System.Environment.Exit(2); } string file = args[0]; try { QuickFix.SessionSettings settings = new QuickFix.SessionSettings(file); TradeClientApp application = new TradeClientApp(); QuickFix.MessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.LogFactory logFactory = new QuickFix.ScreenLogFactory(settings); QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory); initiator.Start(); application.Run(); initiator.Stop(); } catch (System.Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } Environment.Exit(1); }
static void Main(string[] args) { Console.WriteLine("============="); Console.WriteLine(); Console.WriteLine(" ! ! !"); Console.WriteLine(" Test for NASDAQ UMS"); Console.WriteLine(" ! ! !"); Console.WriteLine(); Console.WriteLine("============="); string file = "./tradeclient.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.ScreenLogFactory(settings); QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory); application.Initiator = initiator; initiator.Start(); application.Run(); initiator.Stop(); } catch (System.Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } Environment.Exit(1); }
public void setup() { responder = new MockResponder(); sessionID = new QuickFix.SessionID("FIX.4.2", "SENDER", "TARGET"); application = new MockApplication(); settings = new QuickFix.SessionSettings(); config = new QuickFix.Dictionary(); config.SetBool(QuickFix.SessionSettings.PERSIST_MESSAGES, false); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); config.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); settings.Set(sessionID, config); session = new QuickFix.Session(application, new QuickFix.MemoryStoreFactory(), sessionID, new QuickFix.DataDictionaryProvider(), new QuickFix.SessionSchedule(config), 0, new QuickFix.ScreenLogFactory(settings), new QuickFix.DefaultMessageFactory(), "blah"); session.SetResponder(responder); session.CheckLatency = false; // must be set for an initiator int heartBeatInterval = 10; session2 = new QuickFix.Session(application, new QuickFix.MemoryStoreFactory(), new QuickFix.SessionID("FIX.4.2", "OTHER_SENDER", "OTHER_TARGET"), new QuickFix.DataDictionaryProvider(), new QuickFix.SessionSchedule(config), heartBeatInterval, new QuickFix.ScreenLogFactory(settings), new QuickFix.DefaultMessageFactory(), "blah"); session2.SetResponder(responder); session2.CheckLatency = false; seqNum = 1; }
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("market-data.cfg"); MarketDataApp application = new MarketDataApp(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); } }
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.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.ILogFactory 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(); }
public void testGeneratedFileName() { var logDirectory = Path.Combine(TestContext.CurrentContext.TestDirectory, "log"); if (System.IO.Directory.Exists(logDirectory)) { System.IO.Directory.Delete(logDirectory, 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, logDirectory); 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(Path.Combine(logDirectory, "FIX.4.2-SENDERCOMP-TARGETCOMP.event.current.log"))); Assert.That(System.IO.File.Exists(Path.Combine(logDirectory, "FIX.4.2-SENDERCOMP-TARGETCOMP.messages.current.log"))); }
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 ClientApplication( QuickFix.SessionSettings settings, IFixMessageGenerator messageGenerator, IFixStrategy strategy, IMessageSink messageSink) { _messageGenerator = messageGenerator; _strategy = strategy; _messageSink = messageSink; ActiveSessionID = null; MySessionSettings = settings; }
/* * * instrument quickfix_id => list of fixconnectors */ static public void OnStartUp(NinjaTrader.Strategy.FixConnector fixConnector) { lock (locker_) { // adding anyway s_fixConnectors.Add(fixConnector); try { // start ? if (string.IsNullOrEmpty(ConfigFileName)) { if (string.IsNullOrEmpty(fixConnector.ConfigFileName)) { // cannot start s_fixConnectors.Warn(Name, "No config file name set to start QuickFix server. FixConnector enqueued but inactive for now ..."); return; } // a configfile is set, let's spin that shit ConfigFileName = fixConnector.ConfigFileName; s_fixConnectors.Info(Name, "[OnStartUp] Creating FIX session with file " + ConfigFileName); QuickFix.SessionSettings sessionSettings = new QuickFix.SessionSettings(ConfigFileName); s_fixConnectors.Info(Name, "[OnStartUp] Creating socket acceptor"); m_acceptor = new QuickFix.ThreadedSocketAcceptor( m_app = new NinjaTrader_FixBridge.QuickFixApp(s_fixConnectors), new QuickFix.FileStoreFactory(sessionSettings), sessionSettings, new QuickFix.FileLogFactory(sessionSettings) ); sessionSettings = null; s_fixConnectors.Info(Name, "[OnStartUp] Starting FixBridge ..."); m_acceptor.Start(); s_fixConnectors.Info(Name, "[OnStartUp] FixBridge started !"); } } catch (Exception e) { s_fixConnectors.Error(Name, "[OnStartUp] Exception OnStartUp : " + e.Message + ", source:" + e.Source); s_fixConnectors.Error(Name, "[OnStartUp] Exception OnStartUp : " + e.ToString()); s_fixConnectors.Error(Name, "[OnStartUp] Exception OnStartUp : " + e.StackTrace); s_fixConnectors.Error(Name, "[OnStartUp] => destroying FIX layer"); KillFix(); throw e; } } }
public void setup() { 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.ODBC_STORE_CONNECTION_STRING, "DSN=FIXSIM"); settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); factory = new QuickFix.ODBCStoreFactory(settings); store = (QuickFix.ODBCStore)factory.Create(sessionID); }
// Cannot be autogenerated. #endregion #region {protected} Instance constructor. /// <summary> /// todo.1 {name1} should ideally be taken from a configuration object. /// </summary> protected TFixInitiatorApplicationBase (string name1, QuickFix.SessionSettings fixSessionSettings ) : base(name1) { //Name = name1; FixSocketInitiator_ = new QuickFix.Transport.SocketInitiator (this, Common.Core.StaticData.TStaticSingletonObjectContainer <QuickFix.MemoryStoreFactory> .Object, fixSessionSettings, this,//new TFixLogger(name1), Common.Core.StaticData.TStaticSingletonObjectContainer <QuickFix.DefaultMessageFactory> .Object ); }
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"); System.Environment.Exit(2); } string file = args[0]; try { QuickFix.SessionSettings settings = new QuickFix.SessionSettings(file); TradeClientApp application = new TradeClientApp(); QuickFix.IMessageStoreFactory storeFactory = new QuickFix.ODBCStoreFactory(settings); QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(settings); //QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); //QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(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); } Environment.Exit(1); }
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("store")) System.IO.Directory.Delete("store", 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_STORE_PATH, "store"); settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); factory = new QuickFix.FileStoreFactory(settings); store = (QuickFix.FileStore)factory.Create(sessionID); }
public void setup() { if (System.IO.Directory.Exists("store")) { System.IO.Directory.Delete("store", 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_STORE_PATH, "store"); settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); factory = new QuickFix.FileStoreFactory(settings); store = (QuickFix.FileStore)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"); System.Environment.Exit(2); } string file = args[0]; try { QuickFix.SessionSettings settings = new QuickFix.SessionSettings(file); TradeClientApp application = new TradeClientApp(); QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(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); } Environment.Exit(1); }
static void Main(string[] args) { try { QuickFix.SessionSettings settings = new QuickFix.SessionSettings("config_ssl.cfg"); MarketDataApp application = new MarketDataApp(); QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(settings); QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory); initiator.Start(); System.Threading.Thread.Sleep(TimeSpan.MaxValue); } catch (System.Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); Console.ReadLine(); } 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 UnitTestContext() { QuickFix.Dictionary config = CreateConfig(); QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDER", "TARGET"); QuickFix.SessionSettings settings = new QuickFix.SessionSettings(); settings.Set(sessionID, config); App = new QFApp(settings); Initiator = new MockInitiator(); App.Initiator = Initiator; Session = new SessionThatTracksOutbound( App, new QuickFix.MemoryStoreFactory(), sessionID, new QuickFix.DataDictionaryProvider(), new QuickFix.SessionSchedule(config), 0, new QuickFix.ScreenLogFactory(settings), new QuickFix.DefaultMessageFactory(), "blah"); Session.MaxLatency = 120; }
static void Main(string[] args) { try { //OmsFix44Client application = new OmsFix44Client(new REST.V1.CoinApiRestClient("API_KEY")); OmsFix50Client application = new OmsFix50Client(new REST.V1.CoinApiRestClient("API_KEY")); QuickFix.SessionSettings settings = new QuickFix.SessionSettings("FixSettings.cfg"); QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings); QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(settings); QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory); initiator.Start(); System.Threading.Thread.Sleep(Int32.MaxValue); } catch (System.Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); Console.ReadLine(); } Environment.Exit(1); }
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")); }
/** * Constructor. Send the constructed SessionSettings */ public ExampleApplication(QuickFix.SessionSettings settings) { this.settings = settings; // keep the passed settings locally this.username = this.settings.get().getString("Username"); // extract the username from the settings this.password = this.settings.get().getString("Password"); // extract the password from the settings if (Convert.ToInt32(this.settings.getSessions().Count) > 1) { if (this.settings.getSessions()[0].ToString().Contains(_mdSession)) { sessionID_md = (QuickFix.SessionID) this.settings.getSessions()[0]; sessionID = (QuickFix.SessionID) this.settings.getSessions()[1]; } if (this.settings.getSessions()[1].ToString().Contains(_mdSession)) { sessionID_md = (QuickFix.SessionID) this.settings.getSessions()[1]; sessionID = (QuickFix.SessionID) this.settings.getSessions()[0]; } } else { sessionID = (QuickFix.SessionID) this.settings.getSessions()[0]; } }
private static void ThreadSafeRun() { #region System.Threading.Monitor.Enter(Common.Core.Threading.TThreadingHelpers.MainLockable); var fixSessionSettings = new QuickFix.SessionSettings(@".\Data\FixSessionConfiguration.ini"); var fixInitiatorApplication = new GdaxFixApiFacade.TFixInitiatorApplication(@"Test", fixSessionSettings); //( (System.IDisposable) fixInitiatorApplication ).Dispose(); //fixInitiatorApplication.Dispose(); fixInitiatorApplication.LoggedInEvent += HandleFixInitiatorApplicationLoggedInEvent; fixInitiatorApplication.LoggedOutEvent += HandleFixInitiatorApplicationLoggedOutEvent; fixInitiatorApplication.ReceivedSessionFixMessageEvent += HandleFixInitiatorApplicationReceivedSessionFixMessageEvent; fixInitiatorApplication.ReceivedApplicationFixMessageEvent += HandleFixInitiatorApplicationReceivedApplicationFixMessageEvent; fixInitiatorApplication.ASyncRepeatedTryLogIn(); #endregion #region for (;;) { System.Threading.Monitor.Exit(Common.Core.Threading.TThreadingHelpers.MainLockable); System.Threading.Thread.Sleep(1); System.Threading.Monitor.Enter(Common.Core.Threading.TThreadingHelpers.MainLockable); if (fixInitiatorApplication.IsLoggedIn) { break; } else { } } #endregion #region { var newOrderSingleFixMessage = new QuickFix.FIX42.NewOrderSingle(); newOrderSingleFixMessage.ClOrdID = new QuickFix.Fields.ClOrdID //(System.Diagnostics.Stopwatch.GetTimestamp().ToString(System.Globalization.NumberFormatInfo.InvariantInfo)); (System.Guid.NewGuid().ToString(@"n" /*, System.Globalization.NumberFormatInfo.InvariantInfo*/)); newOrderSingleFixMessage.HandlInst = new QuickFix.Fields.HandlInst(QuickFix.Fields.HandlInst.AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION); newOrderSingleFixMessage.Symbol = new QuickFix.Fields.Symbol(@"BTC-USD"); newOrderSingleFixMessage.Side = new QuickFix.Fields.Side(QuickFix.Fields.Side.SELL); newOrderSingleFixMessage.OrderQty = new QuickFix.Fields.OrderQty (0.01m); //(0.1m); //(99999.00m); newOrderSingleFixMessage.OrdType = new QuickFix.Fields.OrdType //(QuickFix.Fields.OrdType.LIMIT); (QuickFix.Fields.OrdType.MARKET); //newOrderSingleFixMessage.Price = // new QuickFix.Fields.Price // //(0.01m); // (10500.00m); //newOrderSingleFixMessage.TimeInForce = // new QuickFix.Fields.TimeInForce // //(QuickFix.Fields.TimeInForce.GOOD_TILL_CANCEL); // //(QuickFix.Fields.TimeInForce.IMMEDIATE_OR_CANCEL); // (QuickFix.Fields.TimeInForce.FILL_OR_KILL); fixInitiatorApplication.TrySendFixMessage(newOrderSingleFixMessage); } #endregion #region System.Threading.Thread.Sleep(4000); #endregion #region //fixInitiatorApplication.AsyncLogOut(); fixInitiatorApplication.Dispose(); //( (System.IDisposable) fixInitiatorApplication ).Dispose(); System.Threading.Monitor.Exit(Common.Core.Threading.TThreadingHelpers.MainLockable); #endregion }
public void setup() { responder = new MockResponder(); sessionID = new QuickFix.SessionID("FIX.4.2", "SENDER", "TARGET"); application = new MockApplication(); settings = new QuickFix.SessionSettings(); QuickFix.Dictionary config = new QuickFix.Dictionary(); config.SetBool(QuickFix.SessionSettings.PERSIST_MESSAGES, false); config.SetString(QuickFix.SessionSettings.CONNECTION_TYPE, "initiator"); config.SetString(QuickFix.SessionSettings.START_TIME, "00:00:00"); config.SetString(QuickFix.SessionSettings.END_TIME, "00:00:00"); settings.Set(sessionID, config); session = new QuickFix.Session(application, new QuickFix.MemoryStoreFactory(), sessionID, new QuickFix.DataDictionaryProvider(),new QuickFix.SessionSchedule(config), 0, new QuickFix.ScreenLogFactory(settings), new QuickFix.DefaultMessageFactory(), "blah"); session.SetResponder(responder); session.CheckLatency = false; // must be set for an initiator int heartBeatInterval = 10; session2 = new QuickFix.Session(application, new QuickFix.MemoryStoreFactory(), new QuickFix.SessionID("FIX.4.2", "OTHER_SENDER", "OTHER_TARGET"), new QuickFix.DataDictionaryProvider(), new QuickFix.SessionSchedule(config), heartBeatInterval, new QuickFix.ScreenLogFactory(settings), new QuickFix.DefaultMessageFactory(), "blah"); session2.SetResponder(responder); session2.CheckLatency = false; seqNum = 1; }
/// <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()); } }
public QFApp(QuickFix.SessionSettings settings, ICustomFixStrategy strategy) { _strategy = strategy; ActiveSessionID = null; MySessionSettings = settings; }
public QFApp(QuickFix.SessionSettings settings) : this(settings, new NullFixStrategy()) { }
/* * * instrument quickfix_id => list of fixconnectors */ public static void OnStartUp(NinjaTrader.Strategy.FixConnector fixConnector) { lock (locker_) { // adding anyway s_fixConnectors.Add(fixConnector); try { // start ? if (string.IsNullOrEmpty(ConfigFileName)) { if (string.IsNullOrEmpty(fixConnector.ConfigFileName)) { // cannot start s_fixConnectors.Warn(Name, "No config file name set to start QuickFix server. FixConnector enqueued but inactive for now ..."); return; } // a configfile is set, let's spin that shit ConfigFileName = fixConnector.ConfigFileName; s_fixConnectors.Info(Name, "[OnStartUp] Creating FIX session with file " + ConfigFileName); QuickFix.SessionSettings sessionSettings = new QuickFix.SessionSettings(ConfigFileName); s_fixConnectors.Info(Name, "[OnStartUp] Creating socket acceptor"); m_acceptor = new QuickFix.ThreadedSocketAcceptor( m_app=new NinjaTrader_FixBridge.QuickFixApp(s_fixConnectors), new QuickFix.FileStoreFactory(sessionSettings), sessionSettings, new QuickFix.FileLogFactory(sessionSettings) ); sessionSettings = null; s_fixConnectors.Info(Name, "[OnStartUp] Starting FixBridge ..."); m_acceptor.Start(); s_fixConnectors.Info(Name, "[OnStartUp] FixBridge started !"); } } catch (Exception e) { s_fixConnectors.Error(Name, "[OnStartUp] Exception OnStartUp : " + e.Message + ", source:" + e.Source); s_fixConnectors.Error(Name, "[OnStartUp] Exception OnStartUp : " + e.ToString()); s_fixConnectors.Error(Name, "[OnStartUp] Exception OnStartUp : " + e.StackTrace); s_fixConnectors.Error(Name, "[OnStartUp] => destroying FIX layer"); KillFix(); throw e; } } }