public Indicator.anaCurrentMonthOHLV43 anaCurrentMonthOHLV43(anaSessionTypeCM43 currentSession, int factorMonthlyRange, int factorNoiseBands, int rangePeriod1, int rangePeriod2, anaSessionCountCM43 selectedSession, bool showCurrentOpen, bool showFibonacci, bool showHiLo, bool showMidline, bool showNoiseLevels, bool showTargetLevels, anaTargetTypeCM43 targetType)
 {
     return _indicator.anaCurrentMonthOHLV43(Input, currentSession, factorMonthlyRange, factorNoiseBands, rangePeriod1, rangePeriod2, selectedSession, showCurrentOpen, showFibonacci, showHiLo, showMidline, showNoiseLevels, showTargetLevels, targetType);
 }
        /// <summary>
        /// anaCurrentMonthOHLV43.
        /// </summary>
        /// <returns></returns>
        public Indicator.anaCurrentMonthOHLV43 anaCurrentMonthOHLV43(Data.IDataSeries input, anaSessionTypeCM43 currentSession, int factorMonthlyRange, int factorNoiseBands, int rangePeriod1, int rangePeriod2, anaSessionCountCM43 selectedSession, bool showCurrentOpen, bool showFibonacci, bool showHiLo, bool showMidline, bool showNoiseLevels, bool showTargetLevels, anaTargetTypeCM43 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.anaCurrentMonthOHLV43(input, currentSession, factorMonthlyRange, factorNoiseBands, rangePeriod1, rangePeriod2, selectedSession, showCurrentOpen, showFibonacci, showHiLo, showMidline, showNoiseLevels, showTargetLevels, targetType);
        }
        /// <summary>
        /// anaCurrentMonthOHLV43.
        /// </summary>
        /// <returns></returns>
        public anaCurrentMonthOHLV43 anaCurrentMonthOHLV43(Data.IDataSeries input, anaSessionTypeCM43 currentSession, int factorMonthlyRange, int factorNoiseBands, int rangePeriod1, int rangePeriod2, anaSessionCountCM43 selectedSession, bool showCurrentOpen, bool showFibonacci, bool showHiLo, bool showMidline, bool showNoiseLevels, bool showTargetLevels, anaTargetTypeCM43 targetType)
        {
            if (cacheanaCurrentMonthOHLV43 != null)
                for (int idx = 0; idx < cacheanaCurrentMonthOHLV43.Length; idx++)
                    if (cacheanaCurrentMonthOHLV43[idx].CurrentSession == currentSession && cacheanaCurrentMonthOHLV43[idx].FactorMonthlyRange == factorMonthlyRange && cacheanaCurrentMonthOHLV43[idx].FactorNoiseBands == factorNoiseBands && cacheanaCurrentMonthOHLV43[idx].RangePeriod1 == rangePeriod1 && cacheanaCurrentMonthOHLV43[idx].RangePeriod2 == rangePeriod2 && cacheanaCurrentMonthOHLV43[idx].SelectedSession == selectedSession && cacheanaCurrentMonthOHLV43[idx].ShowCurrentOpen == showCurrentOpen && cacheanaCurrentMonthOHLV43[idx].ShowFibonacci == showFibonacci && cacheanaCurrentMonthOHLV43[idx].ShowHiLo == showHiLo && cacheanaCurrentMonthOHLV43[idx].ShowMidline == showMidline && cacheanaCurrentMonthOHLV43[idx].ShowNoiseLevels == showNoiseLevels && cacheanaCurrentMonthOHLV43[idx].ShowTargetLevels == showTargetLevels && cacheanaCurrentMonthOHLV43[idx].TargetType == targetType && cacheanaCurrentMonthOHLV43[idx].EqualsInput(input))
                        return cacheanaCurrentMonthOHLV43[idx];

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

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

                anaCurrentMonthOHLV43 indicator = new anaCurrentMonthOHLV43();
                indicator.BarsRequired = BarsRequired;
                indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
                indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
                indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
                indicator.Input = input;
                indicator.CurrentSession = currentSession;
                indicator.FactorMonthlyRange = factorMonthlyRange;
                indicator.FactorNoiseBands = factorNoiseBands;
                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();

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