public void CanSerializeToXml_RSIRange()
        {
            var source = new RSIRange
            {
                Symbol = "A",
                Date   = DateTime.Today,
                Min    = 1.0,
                Max    = 2.0,
                L5     = 3.0,
                H5     = 4.0,
                L10    = 5.0,
                H10    = 6.0,
                L15    = 7.0,
                H15    = 8.0,
            };

            var i = source.ToIndicator();

            var target = EntityHelper.DeserializeFromXml <RSIRange>(i.Data);

            Assert.IsTrue(source.Symbol == target.Symbol);
            Assert.IsTrue(source.Date == target.Date);
            Assert.IsTrue(source.Min == target.Min);
            Assert.IsTrue(source.Max == target.Max);
            Assert.IsTrue(source.L5 == target.L5);
            Assert.IsTrue(source.H5 == target.H5);
            Assert.IsTrue(source.L10 == target.L10);
            Assert.IsTrue(source.H10 == target.H10);
            Assert.IsTrue(source.L15 == target.L15);
            Assert.IsTrue(source.H15 == target.H15);
        }
        public Indicator AnalyzeData(DataState state)
        {
            List <double> closePrices = _analyseRepo.LoadClosePriceBySymbol(state.Symbol, true).ToList();

            RSIRangeData range = RSICalculator.GetRSIRange(RSICalculator.Period, closePrices);

            if (range == null)
            {
                return(null);
            }
            RSIRange value = new RSIRange();

            value.Symbol = state.Symbol;
            value.Date   = state.Last.Value;
            value.Min    = range.Min;
            value.Max    = range.Max;
            value.L5     = range.L5;
            value.H5     = range.H5;
            value.L10    = range.L10;
            value.H10    = range.H10;
            value.L15    = range.L15;
            value.H15    = range.H15;
            return(value.ToIndicator());
        }