/// <summary> /// secondsperbar number of seconds per bar > input draws red bar /// </summary> /// <returns></returns> public secondsperbar secondsperbar(Data.IDataSeries input, bool drawSMA, int firstline, int myInput0, int secondline, int sMAPeriod) { if (cachesecondsperbar != null) { for (int idx = 0; idx < cachesecondsperbar.Length; idx++) { if (cachesecondsperbar[idx].DrawSMA == drawSMA && cachesecondsperbar[idx].Firstline == firstline && cachesecondsperbar[idx].MyInput0 == myInput0 && cachesecondsperbar[idx].Secondline == secondline && cachesecondsperbar[idx].SMAPeriod == sMAPeriod && cachesecondsperbar[idx].EqualsInput(input)) { return(cachesecondsperbar[idx]); } } } lock (checksecondsperbar) { checksecondsperbar.DrawSMA = drawSMA; drawSMA = checksecondsperbar.DrawSMA; checksecondsperbar.Firstline = firstline; firstline = checksecondsperbar.Firstline; checksecondsperbar.MyInput0 = myInput0; myInput0 = checksecondsperbar.MyInput0; checksecondsperbar.Secondline = secondline; secondline = checksecondsperbar.Secondline; checksecondsperbar.SMAPeriod = sMAPeriod; sMAPeriod = checksecondsperbar.SMAPeriod; if (cachesecondsperbar != null) { for (int idx = 0; idx < cachesecondsperbar.Length; idx++) { if (cachesecondsperbar[idx].DrawSMA == drawSMA && cachesecondsperbar[idx].Firstline == firstline && cachesecondsperbar[idx].MyInput0 == myInput0 && cachesecondsperbar[idx].Secondline == secondline && cachesecondsperbar[idx].SMAPeriod == sMAPeriod && cachesecondsperbar[idx].EqualsInput(input)) { return(cachesecondsperbar[idx]); } } } secondsperbar indicator = new secondsperbar(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.DrawSMA = drawSMA; indicator.Firstline = firstline; indicator.MyInput0 = myInput0; indicator.Secondline = secondline; indicator.SMAPeriod = sMAPeriod; Indicators.Add(indicator); indicator.SetUp(); secondsperbar[] tmp = new secondsperbar[cachesecondsperbar == null ? 1 : cachesecondsperbar.Length + 1]; if (cachesecondsperbar != null) { cachesecondsperbar.CopyTo(tmp, 0); } tmp[tmp.Length - 1] = indicator; cachesecondsperbar = tmp; return(indicator); } }
/// <summary> /// secondsperbar number of seconds per bar > input draws red bar /// </summary> /// <returns></returns> public secondsperbar secondsperbar(Data.IDataSeries input, bool drawSMA, int firstline, int myInput0, int secondline, int sMAPeriod) { if (cachesecondsperbar != null) for (int idx = 0; idx < cachesecondsperbar.Length; idx++) if (cachesecondsperbar[idx].DrawSMA == drawSMA && cachesecondsperbar[idx].Firstline == firstline && cachesecondsperbar[idx].MyInput0 == myInput0 && cachesecondsperbar[idx].Secondline == secondline && cachesecondsperbar[idx].SMAPeriod == sMAPeriod && cachesecondsperbar[idx].EqualsInput(input)) return cachesecondsperbar[idx]; lock (checksecondsperbar) { checksecondsperbar.DrawSMA = drawSMA; drawSMA = checksecondsperbar.DrawSMA; checksecondsperbar.Firstline = firstline; firstline = checksecondsperbar.Firstline; checksecondsperbar.MyInput0 = myInput0; myInput0 = checksecondsperbar.MyInput0; checksecondsperbar.Secondline = secondline; secondline = checksecondsperbar.Secondline; checksecondsperbar.SMAPeriod = sMAPeriod; sMAPeriod = checksecondsperbar.SMAPeriod; if (cachesecondsperbar != null) for (int idx = 0; idx < cachesecondsperbar.Length; idx++) if (cachesecondsperbar[idx].DrawSMA == drawSMA && cachesecondsperbar[idx].Firstline == firstline && cachesecondsperbar[idx].MyInput0 == myInput0 && cachesecondsperbar[idx].Secondline == secondline && cachesecondsperbar[idx].SMAPeriod == sMAPeriod && cachesecondsperbar[idx].EqualsInput(input)) return cachesecondsperbar[idx]; secondsperbar indicator = new secondsperbar(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.DrawSMA = drawSMA; indicator.Firstline = firstline; indicator.MyInput0 = myInput0; indicator.Secondline = secondline; indicator.SMAPeriod = sMAPeriod; Indicators.Add(indicator); indicator.SetUp(); secondsperbar[] tmp = new secondsperbar[cachesecondsperbar == null ? 1 : cachesecondsperbar.Length + 1]; if (cachesecondsperbar != null) cachesecondsperbar.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cachesecondsperbar = tmp; return indicator; } }