protected override void OnStartUp()
 {
     o = Z20101212LaguerreFilter(Open, gamma, len);
     h = Z20101212LaguerreFilter(High, gamma, len);
     l = Z20101212LaguerreFilter(Low, gamma, len);
     c = Z20101212LaguerreFilter(Close, gamma, len);
 }
Пример #2
0
 protected override void OnStartUp()
 {
     if (fastLen > slowLen)
     {
         int tmp = fastLen;
         fastLen = slowLen;
         slowLen = tmp;
     }
     lf = Z20101212LaguerreFilter(Input, gamma, slowLen);
 }
        /// <summary>
        /// Laguerre
        /// </summary>
        /// <returns></returns>
        public Z20101212LaguerreFilter Z20101212LaguerreFilter(Data.IDataSeries input, double gamma, int length)
        {
            if (cacheZ20101212LaguerreFilter != null)
            {
                for (int idx = 0; idx < cacheZ20101212LaguerreFilter.Length; idx++)
                {
                    if (Math.Abs(cacheZ20101212LaguerreFilter[idx].Gamma - gamma) <= double.Epsilon && cacheZ20101212LaguerreFilter[idx].Length == length && cacheZ20101212LaguerreFilter[idx].EqualsInput(input))
                    {
                        return(cacheZ20101212LaguerreFilter[idx]);
                    }
                }
            }

            lock (checkZ20101212LaguerreFilter)
            {
                checkZ20101212LaguerreFilter.Gamma = gamma;
                gamma = checkZ20101212LaguerreFilter.Gamma;
                checkZ20101212LaguerreFilter.Length = length;
                length = checkZ20101212LaguerreFilter.Length;

                if (cacheZ20101212LaguerreFilter != null)
                {
                    for (int idx = 0; idx < cacheZ20101212LaguerreFilter.Length; idx++)
                    {
                        if (Math.Abs(cacheZ20101212LaguerreFilter[idx].Gamma - gamma) <= double.Epsilon && cacheZ20101212LaguerreFilter[idx].Length == length && cacheZ20101212LaguerreFilter[idx].EqualsInput(input))
                        {
                            return(cacheZ20101212LaguerreFilter[idx]);
                        }
                    }
                }

                Z20101212LaguerreFilter indicator = new Z20101212LaguerreFilter();
                indicator.BarsRequired        = BarsRequired;
                indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
                indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
                indicator.MaximumBarsLookBack         = MaximumBarsLookBack;
#endif
                indicator.Input  = input;
                indicator.Gamma  = gamma;
                indicator.Length = length;
                Indicators.Add(indicator);
                indicator.SetUp();

                Z20101212LaguerreFilter[] tmp = new Z20101212LaguerreFilter[cacheZ20101212LaguerreFilter == null ? 1 : cacheZ20101212LaguerreFilter.Length + 1];
                if (cacheZ20101212LaguerreFilter != null)
                {
                    cacheZ20101212LaguerreFilter.CopyTo(tmp, 0);
                }
                tmp[tmp.Length - 1]          = indicator;
                cacheZ20101212LaguerreFilter = tmp;
                return(indicator);
            }
        }
 protected override void OnStartUp()
 {
     lf = Z20101212LaguerreFilter(Input, gamma, len);
 }