/// <summary> /// GomCD Heikin Ashi /// </summary> /// <returns></returns> public GomCDHA GomCDHA(Data.IDataSeries input, int maxCompBars, int minCompBars) { if (cacheGomCDHA != null) { for (int idx = 0; idx < cacheGomCDHA.Length; idx++) { if (cacheGomCDHA[idx].MaxCompBars == maxCompBars && cacheGomCDHA[idx].MinCompBars == minCompBars && cacheGomCDHA[idx].EqualsInput(input)) { return(cacheGomCDHA[idx]); } } } lock (checkGomCDHA) { checkGomCDHA.MaxCompBars = maxCompBars; maxCompBars = checkGomCDHA.MaxCompBars; checkGomCDHA.MinCompBars = minCompBars; minCompBars = checkGomCDHA.MinCompBars; if (cacheGomCDHA != null) { for (int idx = 0; idx < cacheGomCDHA.Length; idx++) { if (cacheGomCDHA[idx].MaxCompBars == maxCompBars && cacheGomCDHA[idx].MinCompBars == minCompBars && cacheGomCDHA[idx].EqualsInput(input)) { return(cacheGomCDHA[idx]); } } } GomCDHA indicator = new GomCDHA(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.MaxCompBars = maxCompBars; indicator.MinCompBars = minCompBars; Indicators.Add(indicator); indicator.SetUp(); GomCDHA[] tmp = new GomCDHA[cacheGomCDHA == null ? 1 : cacheGomCDHA.Length + 1]; if (cacheGomCDHA != null) { cacheGomCDHA.CopyTo(tmp, 0); } tmp[tmp.Length - 1] = indicator; cacheGomCDHA = tmp; return(indicator); } }
/// <summary> /// GomCD Heikin Ashi /// </summary> /// <returns></returns> public GomCDHA GomCDHA(Data.IDataSeries input, int maxCompBars, int minCompBars) { if (cacheGomCDHA != null) for (int idx = 0; idx < cacheGomCDHA.Length; idx++) if (cacheGomCDHA[idx].MaxCompBars == maxCompBars && cacheGomCDHA[idx].MinCompBars == minCompBars && cacheGomCDHA[idx].EqualsInput(input)) return cacheGomCDHA[idx]; lock (checkGomCDHA) { checkGomCDHA.MaxCompBars = maxCompBars; maxCompBars = checkGomCDHA.MaxCompBars; checkGomCDHA.MinCompBars = minCompBars; minCompBars = checkGomCDHA.MinCompBars; if (cacheGomCDHA != null) for (int idx = 0; idx < cacheGomCDHA.Length; idx++) if (cacheGomCDHA[idx].MaxCompBars == maxCompBars && cacheGomCDHA[idx].MinCompBars == minCompBars && cacheGomCDHA[idx].EqualsInput(input)) return cacheGomCDHA[idx]; GomCDHA indicator = new GomCDHA(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.MaxCompBars = maxCompBars; indicator.MinCompBars = minCompBars; Indicators.Add(indicator); indicator.SetUp(); GomCDHA[] tmp = new GomCDHA[cacheGomCDHA == null ? 1 : cacheGomCDHA.Length + 1]; if (cacheGomCDHA != null) cacheGomCDHA.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cacheGomCDHA = tmp; return indicator; } }