/// <summary> /// Collect data /// </summary> /// <returns></returns> public ZZCollectData ZZCollectData(Data.IDataSeries input, int myInput0) { if (cacheZZCollectData != null) { for (int idx = 0; idx < cacheZZCollectData.Length; idx++) { if (cacheZZCollectData[idx].MyInput0 == myInput0 && cacheZZCollectData[idx].EqualsInput(input)) { return(cacheZZCollectData[idx]); } } } lock (checkZZCollectData) { checkZZCollectData.MyInput0 = myInput0; myInput0 = checkZZCollectData.MyInput0; if (cacheZZCollectData != null) { for (int idx = 0; idx < cacheZZCollectData.Length; idx++) { if (cacheZZCollectData[idx].MyInput0 == myInput0 && cacheZZCollectData[idx].EqualsInput(input)) { return(cacheZZCollectData[idx]); } } } ZZCollectData indicator = new ZZCollectData(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.MyInput0 = myInput0; Indicators.Add(indicator); indicator.SetUp(); ZZCollectData[] tmp = new ZZCollectData[cacheZZCollectData == null ? 1 : cacheZZCollectData.Length + 1]; if (cacheZZCollectData != null) { cacheZZCollectData.CopyTo(tmp, 0); } tmp[tmp.Length - 1] = indicator; cacheZZCollectData = tmp; return(indicator); } }
/// <summary> /// Collect data /// </summary> /// <returns></returns> public ZZCollectData ZZCollectData(Data.IDataSeries input, int myInput0) { if (cacheZZCollectData != null) for (int idx = 0; idx < cacheZZCollectData.Length; idx++) if (cacheZZCollectData[idx].MyInput0 == myInput0 && cacheZZCollectData[idx].EqualsInput(input)) return cacheZZCollectData[idx]; lock (checkZZCollectData) { checkZZCollectData.MyInput0 = myInput0; myInput0 = checkZZCollectData.MyInput0; if (cacheZZCollectData != null) for (int idx = 0; idx < cacheZZCollectData.Length; idx++) if (cacheZZCollectData[idx].MyInput0 == myInput0 && cacheZZCollectData[idx].EqualsInput(input)) return cacheZZCollectData[idx]; ZZCollectData indicator = new ZZCollectData(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.MyInput0 = myInput0; Indicators.Add(indicator); indicator.SetUp(); ZZCollectData[] tmp = new ZZCollectData[cacheZZCollectData == null ? 1 : cacheZZCollectData.Length + 1]; if (cacheZZCollectData != null) cacheZZCollectData.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cacheZZCollectData = tmp; return indicator; } }