예제 #1
0
        /// <summary>
        /// 値を取得します。
        /// </summary>
        /// <param name="candles">ロウソク足のコレクション</param>
        /// <returns>値</returns>
        public decimal[] GetValues(DataTypes.CandleCollection candles)
        {
            // 必要期間に満たない
            if (candles.Count < Period)
            {
                return(null);
            }

            // 移動平均
            decimal ma = GetMovingAverage(candles.GetRange(0, Period).Select(candle => candle.Close).ToArray(), MaMethod, PreviousMa);

            // 次回のために覚えておく
            PreviousMa = ma;

            return(new decimal[] { ma });
        }
예제 #2
0
        /// <summary>
        /// 値を取得します。
        /// </summary>
        /// <param name="candles">ロウソク足のコレクション</param>
        /// <returns>値</returns>
        public decimal[] GetValues(DataTypes.CandleCollection candles)
        {
            // 必要期間に満たない
            if (candles.Count < MovingAverageIndicator.Period)
            {
                return(null);
            }

            // 移動平均
            decimal ma = MovingAverageIndicator.GetValues(candles)[0];

            // 標準偏差
            decimal dev
                = (decimal)candles.GetRange(0, MovingAverageIndicator.Period).Select(candle => (double)candle.Close).PopulationStandardDeviation();

            return(new decimal[] { ma, ma + dev * Deviation, ma - dev * Deviation });
        }