コード例 #1
0
        public void Should_Parse_FundamentalMessage_Culture_Independent(string cultureName)
        {
            // Arrange
            TestHelper.SetThreadCulture(cultureName);

            // Act
            var fundementalMessageParsed = FundamentalMessage.Parse(_message);
            var fundamentalMessage       = new FundamentalMessage("MSFT", "5", 65.6, 28624000, 97.95, 67.14, 97.95, 83.83, null, null, null, null, null, null, 1.49, null, 0.06, 6, "MICROSOFT", "MSFT", 76.8, 1.27, null, 159851, 64527, new DateTime(2018, 03, 31), 76073, 7683198, "0.50 02/18/2003", "0.50 03/29/1999", "14", 4, 7372, 24.82, "1", "21", new DateTime(2018, 05, 10), new DateTime(2017, 05, 18), new DateTime(2018, 05, 10), new DateTime(2018, 02, 09), 85.54, null, null, null, null, 511210, null, null, null);

            // Assert
            Assert.AreEqual(fundementalMessageParsed, fundamentalMessage);
        }
コード例 #2
0
        public void Should_Convert_Csv_To_Original_Message(string cultureName)
        {
            // Arrange
            TestHelper.SetThreadCulture(cultureName);
            var fundamental1 = FundamentalMessage.Parse(_message);

            // Act
            var fundamental1Csv = fundamental1.ToCsv();
            var fundamental2    = FundamentalMessage.Parse(fundamental1Csv);

            // Assert
            Assert.AreEqual(fundamental2, fundamental1);
        }
コード例 #3
0
        public void Should_Get_Different_HashCode()
        {
            // Arrange
            var fundamental1 = new FundamentalMessage("MSFT", "5", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
            var fundamental2 = new FundamentalMessage("MSFT", "5", "1.0".ToNullableDouble(), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);

            // Act
            var hashCode1 = fundamental1.GetHashCode();
            var hashCode2 = fundamental2.GetHashCode();

            // Assert
            Assert.AreNotEqual(hashCode1, hashCode2);
        }
コード例 #4
0
        public void Should_Parse_FundamentalMessage_Culture_Independent(string cultureName)
        {
            // Arrange
            TestHelper.SetThreadCulture(cultureName);
            var message = "F,MSFT,5,65.6,28624000,97.9500,67.1400,97.9500,83.8300,,,,,,,,,,,1.49,,0.06,06,,MICROSOFT,MSFT,76.800,1.27,,159851.0,64527.0,03/31/2018,76073.0,7683198,,0.50 02/18/2003,0.50 03/29/1999,,,14,4,7372,24.82,1,21,05/10/2018,05/18/2017,05/10/2018,02/09/2018,85.5400,,,,,511210,,,,";

            // Act
            var fundementalMessageParsed = FundamentalMessage.Parse(message);
            var fundamentalMessage       = new FundamentalMessage("MSFT", "5", 65.6d, 28624000, 97.95d, 67.14d, 97.95d, 83.83d, null, null, null, null, null, null, 1.49d, null, 0.06d, 6, "MICROSOFT", "MSFT", 76.8d, 1.27d, null, 159851, 64527, new DateTime(2018, 03, 31), 76073, 7683198, "0.50 02/18/2003", "0.50 03/29/1999", "14", 4, 7372, 24.82d, "1", "21", new DateTime(2018, 05, 10), new DateTime(2017, 05, 18), new DateTime(2018, 05, 10), new DateTime(2018, 02, 09), 85.54d, null, null, null, null, 511210, null, null, null);

            // Assert
            Assert.AreEqual(fundementalMessageParsed, fundamentalMessage);
        }
コード例 #5
0
        public void Should_Return_FundamentalMessage()
        {
            // TODO: full fundamental message assertion
            var message        = @"F,MSFT,5,65.6,28624000,97.9500,67.1400,97.9500,83.8300,,,,,,,,,,,1.49,,0.06,06,,MICROSOFT,MSFT,76.800,1.27,,159851.0,64527.0,03/31/2018,76073.0,7683198,,0.50 02/18/2003,0.50 03/29/1999,,,14,4,7372,24.82,1,21,05/10/2018,05/18/2017,05/10/2018,02/09/2018,85.5400,,,,,511210,,,,";
            var values         = Level1MessageHandler.GetValuesFromMessage(message);
            var fundamentalMsg = FundamentalMessage.CreateFundamentalMessage(values);

            Assert.AreEqual(fundamentalMsg.Symbol, "MSFT");
            Assert.AreEqual(fundamentalMsg.ExchangeId, "5");

            Assert.AreEqual(fundamentalMsg.OptionsPremiumMultiplier, null);
            Assert.AreEqual(fundamentalMsg.OptionsMultipleDeliverables, null);
        }
コード例 #6
0
        public void Should_Parse_FundamentalMessage_Culture_Independent(string cultureName)
        {
            // Arrange
            TestHelper.SetThreadCulture(cultureName);

            // Act
            var fundementalMessageParsed = FundamentalMessage.Parse(_message);
            var fundamentalMessage       = new FundamentalMessage(
                "MSFT", "5", 65.6d, 28624000, 97.95d, 67.14d, 97.95d, 83.83d, null, null, null, null, null, 1.49d,
                null, 0.06d, 6, "MICROSOFT", "MSFT", 76.8d, 1.27d, null, 159851, 64527, new DateTime(2018, 03, 31), 76073,
                7683198, "0.50 02/18/2003", "0.50 03/29/1999", "14", 4, 7372, 24.82d, "1", "21", new DateTime(2018, 05, 10),
                new DateTime(2017, 05, 18), new DateTime(2018, 05, 10), new DateTime(2018, 02, 09), 85.54d, null, null, null,
                null, 511210, null, null, null, new TimeSpan(09, 00, 00), new TimeSpan(17, 00, 00), "USD", "125000", "HMUZ", 0.1,
                new DateTime(2016, 01, 01), "TEST", 1);

            // Assert
            Assert.AreEqual(fundementalMessageParsed, fundamentalMessage);
        }
コード例 #7
0
        private void ProcessFundamentalMessage(string msg, string[] values)
        {
            var fundamentalMessage = FundamentalMessage.CreateFundamentalMessage(values);

            Fundamental?.Invoke(fundamentalMessage);
        }
コード例 #8
0
 private void Level1ClientOnFundamental(FundamentalMessage msg)
 {
     Console.WriteLine(msg);
 }
コード例 #9
0
        private void ProcessFundamentalMessage(string msg)
        {
            var fundamentalMessage = FundamentalMessage.Parse(msg);

            Fundamental?.Invoke(fundamentalMessage);
        }
コード例 #10
0
        void ProcessFundamentalRecord(FundamentalMessage Message)
        {
            // contains 'F' as first element
            //IQ5009 iq5009 = (IQ5009) e.user;
            //iqF F = iq5009.F;

            int j; bool b; string s;

            string sym = Message.items[1];

            try {
                cmdDeleteOptions.Parameters[0].Value = sym;
                cmdDeleteOptions.ExecuteNonQuery();
            }
            catch (Exception E) {
                Console.WriteLine("*** Exception in GetBasicInfo::ProcessFundamentalRecord::cmdDeleteOptions, " + sym + ", " + E.ToString());
            }

            try {
                cmdDeleteF.Parameters[0].Value = sym;
                cmdDeleteF.ExecuteNonQuery();
            }
            catch (Exception E) {
                Console.WriteLine("*** Exception in GetBasicInfo::ProcessFundamentalRecord::cmdDeleteF, " + sym + ", " + E.ToString());
            }

            //Console.WriteLine("->");
            bool flag = false;

            for (int i = 0; i < alOrd.Count; i++)
            {
                string l = Message.items[rOrd[i] - 1];
                if ((5 == rOrd[i] - 1) || (6 == rOrd[i] - 1))
                {
                    if (0 < l.Length)
                    {
                        if (l.Substring(0, 2) == ".-")
                        {
                            flag = true;
                        }
                    }
                }
                if ((45 == rOrd[i] - 1) || (46 == rOrd[i] - 1))
                {
                    if ((0 == l.Length) || (10 == l.Length))
                    {
                    }
                    else
                    {
                        flag = true;
                    }
                }
                cmdInsertF.Parameters[i].Value = l;
                //Console.WriteLine(" {0},{1},{2} ", i, F.rOrd[i]-1, e.items[F.rOrd[i] - 1]);
            }

            if (flag)
            {
                Console.WriteLine("** Ejected {0}", sym);
            }
            else
            {
                try {
                    cmdInsertF.ExecuteNonQuery();

                    string sTemp = Message.RootOptionSymbols;
                    if ("" != sTemp)
                    {
                        string[] sOptionRoots = sTemp.Split(chDelimSpace);
                        for (int i = 0; i < sOptionRoots.Length; i++)
                        {
                            s = sOptionRoots[i];
                            j = 0; b = false;
                            while (j < i)
                            {
                                b |= (s == sOptionRoots[j++]);
                            }
                            if (!b)
                            {
                                cmdInsertOptionRoot.Parameters[0].Value = sym;
                                cmdInsertOptionRoot.Parameters[1].Value = s;
                                cmdInsertOptionRoot.ExecuteNonQuery();
                            }
                        }
                    }
                }
                catch (Exception E) {
                    Console.WriteLine("*** Exception in GetBasicInfo::ProcessFundamentalRecord::cmdInsertF, " + E.ToString());
                }
            }
        }