protected override PatternResult <Trend?> ComputeByIndexImpl(int index)
        {
            if (index < 1)
            {
                return(new PatternResult <Trend?>(Equity[index].DateTime, null));
            }

            var latest       = _macdIndicator.ComputeByIndex(index);
            var secondLatest = _macdIndicator.ComputeByIndex(index - 1);

            return(new PatternResult <Trend?>(Equity[index].DateTime, Decision.IsTrending(latest.Osc - secondLatest.Osc)));
        }
Example #2
0
        public async Task TestMacdAsync()
        {
            var equity = await ImportEquityAsync();

            var indicator = new MovingAverageConvergenceDivergence(equity, 12, 26, 9);
            var result    = indicator.ComputeByIndex(equity.Count - 1);

            Assert.IsTrue(2.065m.IsApproximatelyEquals(result.Dif.Value));
            Assert.IsTrue(2.118m.IsApproximatelyEquals(result.Dem.Value));
            Assert.IsTrue((-0.053m).IsApproximatelyEquals(result.Osc.Value));
        }