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); }
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()); }