public void SMA実装テスト_5区間の単純移動平均で5回以下の場合その時の平均が求められる()
        {
            var sut = new SmaIndicator.SmaImpl(5);

            Assert.AreEqual(Enumerable.Range(1, 1).Sum() / 1m, sut.Next(1));
            Assert.AreEqual(Enumerable.Range(1, 2).Sum() / 2m, sut.Next(2));
            Assert.AreEqual(Enumerable.Range(1, 3).Sum() / 3m, sut.Next(3));
            Assert.AreEqual(Enumerable.Range(1, 4).Sum() / 4m, sut.Next(4));
            Assert.AreEqual(Enumerable.Range(1, 5).Sum() / 5m, sut.Next(5));
        }
        public void SMA実装テスト_5区間の単純移動平均で5回以上値を入れた場合直近の5回分の平均が求められる()
        {
            var sut = new SmaIndicator.SmaImpl(5);

            Enumerable.Range(1, 5).ToList().ForEach(i => sut.Next(i));

            Assert.AreEqual(Enumerable.Range(2, 5).Sum() / 5m, sut.Next(6));
            Assert.AreEqual(Enumerable.Range(3, 5).Sum() / 5m, sut.Next(7));
            Assert.AreEqual(Enumerable.Range(4, 5).Sum() / 5m, sut.Next(8));
            Assert.AreEqual(Enumerable.Range(5, 5).Sum() / 5m, sut.Next(9));
            Assert.AreEqual(Enumerable.Range(6, 5).Sum() / 5m, sut.Next(10));
        }
Exemple #3
0
 public AtrIndicator(int period)
 {
     this.period       = period;
     this.smaIndicator = new SmaIndicator.SmaImpl(period);
 }