Пример #1
0
        public void CanSerializeToXml_GainLoss()
        {
            var source = new GainLoss
            {
                Symbol          = "A",
                Date            = DateTime.Today,
                MaxContGainDays = 1,
                AvgContGainDays = 2,
                MaxContLossDays = 3,
                AvgContLossDays = 4,
                LastGLContDays  = 5,
            };

            var i = source.ToIndicator();

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

            Assert.IsTrue(source.Symbol == target.Symbol);
            Assert.IsTrue(source.Date == target.Date);
            Assert.IsTrue(source.MaxContGainDays == target.MaxContGainDays);
            Assert.IsTrue(source.AvgContGainDays == target.AvgContGainDays);
            Assert.IsTrue(source.MaxContLossDays == target.MaxContLossDays);
            Assert.IsTrue(source.AvgContLossDays == target.AvgContLossDays);
            Assert.IsTrue(source.LastGLContDays == target.LastGLContDays);
        }
Пример #2
0
        public Indicator AnalyzeData(DataState state)
        {
            double[] gainLoss = _analyseRepo.LoadComputedEod(state.Symbol)
                                .OrderByDescending(ce => ce.Date)
                                .Select(e => e.GL).ToArray();
            var      calculator = new ContinuousCalculator(gainLoss, gl => gl > 0);
            GainLoss value      = new GainLoss();

            value.Symbol          = state.Symbol;
            value.Date            = state.Last.Value;
            value.MaxContGainDays = calculator.TrueMax;
            value.AvgContGainDays = calculator.TrueAvg;
            value.MaxContLossDays = calculator.FalseMax;
            value.AvgContLossDays = calculator.FalseAvg;
            value.LastGLContDays  = calculator.LastCont;
            return(value.ToIndicator());
        }