protected override void OnStartUp() { o = Z20101212LaguerreFilter(Open, gamma, len); h = Z20101212LaguerreFilter(High, gamma, len); l = Z20101212LaguerreFilter(Low, gamma, len); c = Z20101212LaguerreFilter(Close, gamma, len); }
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); }