Ejemplo n.º 1
0
        public static List <decimal?> Mfi(this IEnumerable <ICandle> candles, int?period = null)
        {
            period ??= 14;

            IIndicatorOptions options = new MfiOptions(period.Value);
            Mfi mfi = new Mfi();

            return(mfi.Get(candles, options));
        }
Ejemplo n.º 2
0
        public override dynamic Get(IEnumerable <ICandle> source, IIndicatorOptions options = null)
        {
            MfiOptions config = options != null ? (MfiOptions)options.Options : new MfiOptions(14);

            double[] mfiValues = new double[source.Count()];

            double[] highs   = source.Select(x => Convert.ToDouble(x.High)).ToArray();
            double[] lows    = source.Select(x => Convert.ToDouble(x.Low)).ToArray();
            double[] closes  = source.Select(x => Convert.ToDouble(x.Close)).ToArray();
            double[] volumes = source.Select(x => Convert.ToDouble(x.Volume)).ToArray();

            TicTacTec.TA.Library.Core.RetCode mfi = TicTacTec.TA.Library.Core.Mfi(0, source.Count() - 1, highs, lows, closes, volumes, config.Period, out int outBegIdx, out int outNbElement, mfiValues);

            if (mfi == TicTacTec.TA.Library.Core.RetCode.Success)
            {
                return(FixIndicatorOrdering(mfiValues.ToList(), outBegIdx, outNbElement));
            }

            throw new Exception("Could not calculate MFI");
        }