public Indicator.anaCurrentWeekOHLV43 anaCurrentWeekOHLV43(anaSessionTypeCW43 currentSession, int factorNoiseBands, int factorWeeklyRange, int rangePeriod1, int rangePeriod2, anaSessionCountCW43 selectedSession, bool showCurrentOpen, bool showFibonacci, bool showHiLo, bool showMidline, bool showNoiseLevels, bool showTargetLevels, anaTargetTypeCW43 targetType)
 {
     return _indicator.anaCurrentWeekOHLV43(Input, currentSession, factorNoiseBands, factorWeeklyRange, rangePeriod1, rangePeriod2, selectedSession, showCurrentOpen, showFibonacci, showHiLo, showMidline, showNoiseLevels, showTargetLevels, targetType);
 }
        /// <summary>
        /// anaCurrentWeekOHLV43.
        /// </summary>
        /// <returns></returns>
        public Indicator.anaCurrentWeekOHLV43 anaCurrentWeekOHLV43(Data.IDataSeries input, anaSessionTypeCW43 currentSession, int factorNoiseBands, int factorWeeklyRange, int rangePeriod1, int rangePeriod2, anaSessionCountCW43 selectedSession, bool showCurrentOpen, bool showFibonacci, bool showHiLo, bool showMidline, bool showNoiseLevels, bool showTargetLevels, anaTargetTypeCW43 targetType)
        {
            if (InInitialize && input == null)
                throw new ArgumentException("You only can access an indicator with the default input/bar series from within the 'Initialize()' method");

            return _indicator.anaCurrentWeekOHLV43(input, currentSession, factorNoiseBands, factorWeeklyRange, rangePeriod1, rangePeriod2, selectedSession, showCurrentOpen, showFibonacci, showHiLo, showMidline, showNoiseLevels, showTargetLevels, targetType);
        }
        /// <summary>
        /// anaCurrentWeekOHLV43.
        /// </summary>
        /// <returns></returns>
        public anaCurrentWeekOHLV43 anaCurrentWeekOHLV43(Data.IDataSeries input, anaSessionTypeCW43 currentSession, int factorNoiseBands, int factorWeeklyRange, int rangePeriod1, int rangePeriod2, anaSessionCountCW43 selectedSession, bool showCurrentOpen, bool showFibonacci, bool showHiLo, bool showMidline, bool showNoiseLevels, bool showTargetLevels, anaTargetTypeCW43 targetType)
        {
            if (cacheanaCurrentWeekOHLV43 != null)
                for (int idx = 0; idx < cacheanaCurrentWeekOHLV43.Length; idx++)
                    if (cacheanaCurrentWeekOHLV43[idx].CurrentSession == currentSession && cacheanaCurrentWeekOHLV43[idx].FactorNoiseBands == factorNoiseBands && cacheanaCurrentWeekOHLV43[idx].FactorWeeklyRange == factorWeeklyRange && cacheanaCurrentWeekOHLV43[idx].RangePeriod1 == rangePeriod1 && cacheanaCurrentWeekOHLV43[idx].RangePeriod2 == rangePeriod2 && cacheanaCurrentWeekOHLV43[idx].SelectedSession == selectedSession && cacheanaCurrentWeekOHLV43[idx].ShowCurrentOpen == showCurrentOpen && cacheanaCurrentWeekOHLV43[idx].ShowFibonacci == showFibonacci && cacheanaCurrentWeekOHLV43[idx].ShowHiLo == showHiLo && cacheanaCurrentWeekOHLV43[idx].ShowMidline == showMidline && cacheanaCurrentWeekOHLV43[idx].ShowNoiseLevels == showNoiseLevels && cacheanaCurrentWeekOHLV43[idx].ShowTargetLevels == showTargetLevels && cacheanaCurrentWeekOHLV43[idx].TargetType == targetType && cacheanaCurrentWeekOHLV43[idx].EqualsInput(input))
                        return cacheanaCurrentWeekOHLV43[idx];

            lock (checkanaCurrentWeekOHLV43)
            {
                checkanaCurrentWeekOHLV43.CurrentSession = currentSession;
                currentSession = checkanaCurrentWeekOHLV43.CurrentSession;
                checkanaCurrentWeekOHLV43.FactorNoiseBands = factorNoiseBands;
                factorNoiseBands = checkanaCurrentWeekOHLV43.FactorNoiseBands;
                checkanaCurrentWeekOHLV43.FactorWeeklyRange = factorWeeklyRange;
                factorWeeklyRange = checkanaCurrentWeekOHLV43.FactorWeeklyRange;
                checkanaCurrentWeekOHLV43.RangePeriod1 = rangePeriod1;
                rangePeriod1 = checkanaCurrentWeekOHLV43.RangePeriod1;
                checkanaCurrentWeekOHLV43.RangePeriod2 = rangePeriod2;
                rangePeriod2 = checkanaCurrentWeekOHLV43.RangePeriod2;
                checkanaCurrentWeekOHLV43.SelectedSession = selectedSession;
                selectedSession = checkanaCurrentWeekOHLV43.SelectedSession;
                checkanaCurrentWeekOHLV43.ShowCurrentOpen = showCurrentOpen;
                showCurrentOpen = checkanaCurrentWeekOHLV43.ShowCurrentOpen;
                checkanaCurrentWeekOHLV43.ShowFibonacci = showFibonacci;
                showFibonacci = checkanaCurrentWeekOHLV43.ShowFibonacci;
                checkanaCurrentWeekOHLV43.ShowHiLo = showHiLo;
                showHiLo = checkanaCurrentWeekOHLV43.ShowHiLo;
                checkanaCurrentWeekOHLV43.ShowMidline = showMidline;
                showMidline = checkanaCurrentWeekOHLV43.ShowMidline;
                checkanaCurrentWeekOHLV43.ShowNoiseLevels = showNoiseLevels;
                showNoiseLevels = checkanaCurrentWeekOHLV43.ShowNoiseLevels;
                checkanaCurrentWeekOHLV43.ShowTargetLevels = showTargetLevels;
                showTargetLevels = checkanaCurrentWeekOHLV43.ShowTargetLevels;
                checkanaCurrentWeekOHLV43.TargetType = targetType;
                targetType = checkanaCurrentWeekOHLV43.TargetType;

                if (cacheanaCurrentWeekOHLV43 != null)
                    for (int idx = 0; idx < cacheanaCurrentWeekOHLV43.Length; idx++)
                        if (cacheanaCurrentWeekOHLV43[idx].CurrentSession == currentSession && cacheanaCurrentWeekOHLV43[idx].FactorNoiseBands == factorNoiseBands && cacheanaCurrentWeekOHLV43[idx].FactorWeeklyRange == factorWeeklyRange && cacheanaCurrentWeekOHLV43[idx].RangePeriod1 == rangePeriod1 && cacheanaCurrentWeekOHLV43[idx].RangePeriod2 == rangePeriod2 && cacheanaCurrentWeekOHLV43[idx].SelectedSession == selectedSession && cacheanaCurrentWeekOHLV43[idx].ShowCurrentOpen == showCurrentOpen && cacheanaCurrentWeekOHLV43[idx].ShowFibonacci == showFibonacci && cacheanaCurrentWeekOHLV43[idx].ShowHiLo == showHiLo && cacheanaCurrentWeekOHLV43[idx].ShowMidline == showMidline && cacheanaCurrentWeekOHLV43[idx].ShowNoiseLevels == showNoiseLevels && cacheanaCurrentWeekOHLV43[idx].ShowTargetLevels == showTargetLevels && cacheanaCurrentWeekOHLV43[idx].TargetType == targetType && cacheanaCurrentWeekOHLV43[idx].EqualsInput(input))
                            return cacheanaCurrentWeekOHLV43[idx];

                anaCurrentWeekOHLV43 indicator = new anaCurrentWeekOHLV43();
                indicator.BarsRequired = BarsRequired;
                indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
                indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
                indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
                indicator.Input = input;
                indicator.CurrentSession = currentSession;
                indicator.FactorNoiseBands = factorNoiseBands;
                indicator.FactorWeeklyRange = factorWeeklyRange;
                indicator.RangePeriod1 = rangePeriod1;
                indicator.RangePeriod2 = rangePeriod2;
                indicator.SelectedSession = selectedSession;
                indicator.ShowCurrentOpen = showCurrentOpen;
                indicator.ShowFibonacci = showFibonacci;
                indicator.ShowHiLo = showHiLo;
                indicator.ShowMidline = showMidline;
                indicator.ShowNoiseLevels = showNoiseLevels;
                indicator.ShowTargetLevels = showTargetLevels;
                indicator.TargetType = targetType;
                Indicators.Add(indicator);
                indicator.SetUp();

                anaCurrentWeekOHLV43[] tmp = new anaCurrentWeekOHLV43[cacheanaCurrentWeekOHLV43 == null ? 1 : cacheanaCurrentWeekOHLV43.Length + 1];
                if (cacheanaCurrentWeekOHLV43 != null)
                    cacheanaCurrentWeekOHLV43.CopyTo(tmp, 0);
                tmp[tmp.Length - 1] = indicator;
                cacheanaCurrentWeekOHLV43 = tmp;
                return indicator;
            }
        }