/// <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 }); }
/// <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 }); }