Пример #1
0
        static void TestReadHistoryFile()
        {
            const string filename = @"C:\Users\geh\Downloads\Latha\FIX_ExchangeSimulator20150113.history";

            var messages = new Fix.MessageCollection();

            try
            {
                long count      = 0;
                long exceptions = 0;
                using (var stream = new FileStream(filename, FileMode.Open))
                    using (var reader = new Fix.Reader(stream))
                    {
                        for (; ;)
                        {
                            try
                            {
                                Fix.Message message = reader.ReadLine();

                                if (message == null)
                                {
                                    break;
                                }

                                messages.Add(message);
                            }
                            catch (Exception)
                            {
                                ++exceptions;
                                reader.DiscardLine();
                                continue;
                            }
                            ++count;
                        }
                    }
                Console.WriteLine("{0} / {1}", count, exceptions);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.WriteLine("MESSAGES - {0}", messages.Count);

            var book = new Fix.OrderBook();

            try
            {
                foreach (var message in messages)
                {
                    book.Process(message);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            Console.WriteLine("ORDERS - {0}", book.Orders.Count);
        }
Пример #2
0
        public void TestGateDriverParser()
        {
            var uri    = new Uri(string.Format("file://{0}", Path.GetFullPath("t_gate_driver.log")));
            var parser = new Fix.Parsers.FormattedLogParser();

            Fix.MessageCollection messages = parser.Parse(uri);
            Assert.AreEqual(43, messages.Count);
        }
Пример #3
0
        public void TestGateRawCiParser()
        {
            var uri    = new Uri(string.Format("file://{0}", Path.GetFullPath("t_gate_raw_ci.log")));
            var parser = new Fix.Parsers.RawGateCiLogParser();

            Fix.MessageCollection messages = parser.Parse(uri);
            Assert.AreEqual(4909, messages.Count);
        }
Пример #4
0
        public void TestAtlasParser()
        {
            var uri    = new Uri(string.Format("file://{0}", Path.GetFullPath("t_atlas.log")));
            var parser = new Fix.Parsers.AtlasLogParser();

            Fix.MessageCollection messages = parser.Parse(uri);
            Assert.AreEqual(473, messages.Count);
        }
Пример #5
0
        void LoadClientMessagesButtonClick(object?sender, EventArgs e)
        {
            using OpenFileDialog dlg = new();

            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Cursor?original = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;

            try
            {
                Fix.MessageCollection messages = Fix.MessageCollection.Parse(dlg.FileName);

                if (messages == null)
                {
                    MessageBox.Show(this,
                                    "The file could not be parsed",
                                    Application.ProductName,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    return;
                }

                Messages = messages;
            }
            catch (Exception ex)
            {
                MessageBox.Show(this,
                                ex.Message,
                                Application.ProductName,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
            }
            finally
            {
                Cursor.Current = original;
            }
        }