Exemplo n.º 1
0
        public static MamaItem Mama(this IEnumerable <ICandle> candles, double?fastLimit, double?slowLimit)
        {
            fastLimit = fastLimit ?? 0;
            slowLimit = slowLimit ?? 0;

            IIndicatorOptions options = new MamaOptions(fastLimit.Value, slowLimit.Value);
            Mama mama = new Mama();

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

            double[] mamaValues = new double[source.Count()];
            double[] famaValues = new double[source.Count()];
            double[] closes     = source.Select(x => Convert.ToDouble(x.Close)).ToArray();

            var mfi = TicTacTec.TA.Library.Core.Mama(0, source.Count() - 1, closes, config.FastLimit, config.SlowLimit, out int outBegIdx, out int outNbElement, mamaValues, famaValues);

            if (mfi == TicTacTec.TA.Library.Core.RetCode.Success)
            {
                return(new MamaItem
                {
                    Mama = FixIndicatorOrdering(mamaValues.ToList(), outBegIdx, outNbElement),
                    Fama = FixIndicatorOrdering(famaValues.ToList(), outBegIdx, outNbElement)
                });
            }

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