/// <summary> /// Woodies variation of the CCI. /// </summary> /// <returns></returns> public WoodiesCCI WoodiesCCI(Data.IDataSeries input, int chopIndicatorWidth, int neutralBars, int period, int periodEma, int periodLinReg, int periodTurbo, int sideWinderLimit0, int sideWinderLimit1, int sideWinderWidth) { checkWoodiesCCI.ChopIndicatorWidth = chopIndicatorWidth; chopIndicatorWidth = checkWoodiesCCI.ChopIndicatorWidth; checkWoodiesCCI.NeutralBars = neutralBars; neutralBars = checkWoodiesCCI.NeutralBars; checkWoodiesCCI.Period = period; period = checkWoodiesCCI.Period; checkWoodiesCCI.PeriodEma = periodEma; periodEma = checkWoodiesCCI.PeriodEma; checkWoodiesCCI.PeriodLinReg = periodLinReg; periodLinReg = checkWoodiesCCI.PeriodLinReg; checkWoodiesCCI.PeriodTurbo = periodTurbo; periodTurbo = checkWoodiesCCI.PeriodTurbo; checkWoodiesCCI.SideWinderLimit0 = sideWinderLimit0; sideWinderLimit0 = checkWoodiesCCI.SideWinderLimit0; checkWoodiesCCI.SideWinderLimit1 = sideWinderLimit1; sideWinderLimit1 = checkWoodiesCCI.SideWinderLimit1; checkWoodiesCCI.SideWinderWidth = sideWinderWidth; sideWinderWidth = checkWoodiesCCI.SideWinderWidth; if (cacheWoodiesCCI != null) { for (int idx = 0; idx < cacheWoodiesCCI.Length; idx++) { if (cacheWoodiesCCI[idx].ChopIndicatorWidth == chopIndicatorWidth && cacheWoodiesCCI[idx].NeutralBars == neutralBars && cacheWoodiesCCI[idx].Period == period && cacheWoodiesCCI[idx].PeriodEma == periodEma && cacheWoodiesCCI[idx].PeriodLinReg == periodLinReg && cacheWoodiesCCI[idx].PeriodTurbo == periodTurbo && cacheWoodiesCCI[idx].SideWinderLimit0 == sideWinderLimit0 && cacheWoodiesCCI[idx].SideWinderLimit1 == sideWinderLimit1 && cacheWoodiesCCI[idx].SideWinderWidth == sideWinderWidth && cacheWoodiesCCI[idx].EqualsInput(input)) { return(cacheWoodiesCCI[idx]); } } } WoodiesCCI indicator = new WoodiesCCI(); indicator.SetUp(); indicator.CalculateOnBarClose = CalculateOnBarClose; indicator.Input = input; indicator.ChopIndicatorWidth = chopIndicatorWidth; indicator.NeutralBars = neutralBars; indicator.Period = period; indicator.PeriodEma = periodEma; indicator.PeriodLinReg = periodLinReg; indicator.PeriodTurbo = periodTurbo; indicator.SideWinderLimit0 = sideWinderLimit0; indicator.SideWinderLimit1 = sideWinderLimit1; indicator.SideWinderWidth = sideWinderWidth; WoodiesCCI[] tmp = new WoodiesCCI[cacheWoodiesCCI == null ? 1 : cacheWoodiesCCI.Length + 1]; if (cacheWoodiesCCI != null) { cacheWoodiesCCI.CopyTo(tmp, 0); } tmp[tmp.Length - 1] = indicator; cacheWoodiesCCI = tmp; Indicators.Add(indicator); return(indicator); }
/// <summary> /// Woodies variation of the CCI. /// </summary> /// <returns></returns> public WoodiesCCI WoodiesCCI(Data.IDataSeries input, int chopIndicatorWidth, int neutralBars, int period, int periodEma, int periodLinReg, int periodTurbo, int sideWinderLimit0, int sideWinderLimit1, int sideWinderWidth) { checkWoodiesCCI.ChopIndicatorWidth = chopIndicatorWidth; chopIndicatorWidth = checkWoodiesCCI.ChopIndicatorWidth; checkWoodiesCCI.NeutralBars = neutralBars; neutralBars = checkWoodiesCCI.NeutralBars; checkWoodiesCCI.Period = period; period = checkWoodiesCCI.Period; checkWoodiesCCI.PeriodEma = periodEma; periodEma = checkWoodiesCCI.PeriodEma; checkWoodiesCCI.PeriodLinReg = periodLinReg; periodLinReg = checkWoodiesCCI.PeriodLinReg; checkWoodiesCCI.PeriodTurbo = periodTurbo; periodTurbo = checkWoodiesCCI.PeriodTurbo; checkWoodiesCCI.SideWinderLimit0 = sideWinderLimit0; sideWinderLimit0 = checkWoodiesCCI.SideWinderLimit0; checkWoodiesCCI.SideWinderLimit1 = sideWinderLimit1; sideWinderLimit1 = checkWoodiesCCI.SideWinderLimit1; checkWoodiesCCI.SideWinderWidth = sideWinderWidth; sideWinderWidth = checkWoodiesCCI.SideWinderWidth; if (cacheWoodiesCCI != null) for (int idx = 0; idx < cacheWoodiesCCI.Length; idx++) if (cacheWoodiesCCI[idx].ChopIndicatorWidth == chopIndicatorWidth && cacheWoodiesCCI[idx].NeutralBars == neutralBars && cacheWoodiesCCI[idx].Period == period && cacheWoodiesCCI[idx].PeriodEma == periodEma && cacheWoodiesCCI[idx].PeriodLinReg == periodLinReg && cacheWoodiesCCI[idx].PeriodTurbo == periodTurbo && cacheWoodiesCCI[idx].SideWinderLimit0 == sideWinderLimit0 && cacheWoodiesCCI[idx].SideWinderLimit1 == sideWinderLimit1 && cacheWoodiesCCI[idx].SideWinderWidth == sideWinderWidth && cacheWoodiesCCI[idx].EqualsInput(input)) return cacheWoodiesCCI[idx]; WoodiesCCI indicator = new WoodiesCCI(); indicator.SetUp(); indicator.CalculateOnBarClose = CalculateOnBarClose; indicator.Input = input; indicator.ChopIndicatorWidth = chopIndicatorWidth; indicator.NeutralBars = neutralBars; indicator.Period = period; indicator.PeriodEma = periodEma; indicator.PeriodLinReg = periodLinReg; indicator.PeriodTurbo = periodTurbo; indicator.SideWinderLimit0 = sideWinderLimit0; indicator.SideWinderLimit1 = sideWinderLimit1; indicator.SideWinderWidth = sideWinderWidth; WoodiesCCI[] tmp = new WoodiesCCI[cacheWoodiesCCI == null ? 1 : cacheWoodiesCCI.Length + 1]; if (cacheWoodiesCCI != null) cacheWoodiesCCI.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cacheWoodiesCCI = tmp; Indicators.Add(indicator); return indicator; }