示例#1
0
        public void ChaikinADOscillator()
        {
            var goodOutputsLine1  = new double[HistoriesLength];
            int outBeginningIndex = 0;
            int outNBElement      = 0;
            int fastPeriod        = 3;
            int slowPeriod        = 10;

            var GoodOutputsRetCode1 = Core.AdOsc(
                FakeDataBase.ManualStartingIndex,
                EndingIndex,
                PriceHighs,
                PriceLows,
                ClosingPrices,
                Volumes,
                fastPeriod,
                slowPeriod,
                out outBeginningIndex,
                out outNBElement,
                goodOutputsLine1);

            var possiblyBadOutput1 = objectToTest.ChaikinADOscillator(
                TestDataFrequency,
                HistoriesLength
                );

            Assert.Equal(GoodOutputsRetCode1, possiblyBadOutput1.Outcome);
            Assert.Equal(outBeginningIndex, possiblyBadOutput1.AlgorithmsBeginningIndex);
            Assert.Equal(outNBElement, possiblyBadOutput1.NBElement);

            for (int i = 0; i < goodOutputsLine1.Length; i++)
            {
                Assert.Equal(goodOutputsLine1[i], possiblyBadOutput1.Series[i]);
            }

            //CustomHistory test
            FakeDataBase.HistoryIsCustom     = true;
            FakeDataBase.ManualStartingIndex = 5;
            goodOutputsLine1 = new double[HistoriesLength];

            var GoodOutputsRetCode2 = Core.AdOsc(
                FakeDataBase.ManualStartingIndex,
                EndingIndex,
                PriceHighs,
                PriceLows,
                ClosingPrices,
                Volumes,
                fastPeriod,
                slowPeriod,
                out outBeginningIndex,
                out outNBElement,
                goodOutputsLine1);

            var possiblyBadOutput2 = objectToTest.ChaikinADOscillator(
                TestDataFrequency,
                HistoriesLength
                );

            Assert.Equal(GoodOutputsRetCode2, possiblyBadOutput2.Outcome);
            Assert.Equal(outBeginningIndex, possiblyBadOutput2.AlgorithmsBeginningIndex);
            Assert.Equal(outNBElement, possiblyBadOutput2.NBElement);

            for (int i = 0; i < goodOutputsLine1.Length; i++)
            {
                Assert.Equal(goodOutputsLine1[i], possiblyBadOutput2.Series[i]);
            }
        }