示例#1
0
        /// <summary>
        /// Calculates indicator.
        /// </summary>
        /// <param name="price">Price series.</param>
        /// <returns>Calculated indicator series.</returns>
        public static double[] Calculate(double[] price)
        {
            Condition.Requires(price, "price")
            .IsNotEmpty();

            var fastSma = SMA.Calculate(price, 5);
            var slowSma = SMA.Calculate(price, 34);
            var ao      = new double[price.Length];

            for (int i = 0; i < price.Length; i++)
            {
                ao[i] = fastSma[i] - slowSma[i];
            }

            return(ao);
        }
示例#2
0
        /// <summary>
        /// Calculates indicator.
        /// </summary>
        /// <param name="price">Price series.</param>
        /// <param name="period">Indicator period.</param>
        /// <returns>Calculated indicator series.</returns>
        public static double[] Calculate(double[] price, int period)
        {
            Condition.Requires(price, "price")
            .IsNotEmpty();
            Condition.Requires(period, "period")
            .IsGreaterThan(0)
            .IsLessOrEqual(price.Length);

            var ao      = AO.Calculate(price);
            var smaOfAo = SMA.Calculate(ao, 5);
            var ac      = new double[price.Length];

            for (var i = 0; i < price.Length; ++i)
            {
                ac[i] = ao[i] - smaOfAo[i];
            }

            return(ac);
        }