#region Using declarations
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Gui;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Gui.SuperDom;
using NinjaTrader.Gui.Tools;
using NinjaTrader.Data;
using NinjaTrader.NinjaScript;
using NinjaTrader.Core.FloatingPoint;

#endregion



#region NinjaScript generated code. Neither change nor remove.

namespace NinjaTrader.NinjaScript.Indicators
{
	public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
	{
		
		private RaidoStructureLevels[] cacheRaidoStructureLevels;

		
		public RaidoStructureLevels RaidoStructureLevels(string licenseKey, int swingStrength, int lookbackBars, int zoneToleranceTicks, int minTouches, int maxLevels, RaidoStructureLevelMode levelMode, bool useChartPrices, bool showActiveRange, int rangeLookbackBars, int minimumRangeHeightTicks, int maximumRangeHeightTicks, bool useOnlyOuterRangeLevels, bool showBreakoutMarks, int breakoutBufferTicks, bool showPullbackZone, int pullbackZoneTicks, int setupExpiryBars, bool showSupportLevels, bool showResistanceLevels, bool showOnlyRecentLevels, bool showLevelLabels, bool showBreakoutLabels, bool showRetestLabels, bool showInfoPanel, int labelHorizontalOffset, int labelVerticalOffset, int eventLabelHorizontalOffset, int eventLabelVerticalOffset, bool showPriceMarkers, bool showLastResistanceMarker, bool showLastSupportMarker, bool showRangeMarkers)
		{
			return RaidoStructureLevels(Input, licenseKey, swingStrength, lookbackBars, zoneToleranceTicks, minTouches, maxLevels, levelMode, useChartPrices, showActiveRange, rangeLookbackBars, minimumRangeHeightTicks, maximumRangeHeightTicks, useOnlyOuterRangeLevels, showBreakoutMarks, breakoutBufferTicks, showPullbackZone, pullbackZoneTicks, setupExpiryBars, showSupportLevels, showResistanceLevels, showOnlyRecentLevels, showLevelLabels, showBreakoutLabels, showRetestLabels, showInfoPanel, labelHorizontalOffset, labelVerticalOffset, eventLabelHorizontalOffset, eventLabelVerticalOffset, showPriceMarkers, showLastResistanceMarker, showLastSupportMarker, showRangeMarkers);
		}


		
		public RaidoStructureLevels RaidoStructureLevels(ISeries<double> input, string licenseKey, int swingStrength, int lookbackBars, int zoneToleranceTicks, int minTouches, int maxLevels, RaidoStructureLevelMode levelMode, bool useChartPrices, bool showActiveRange, int rangeLookbackBars, int minimumRangeHeightTicks, int maximumRangeHeightTicks, bool useOnlyOuterRangeLevels, bool showBreakoutMarks, int breakoutBufferTicks, bool showPullbackZone, int pullbackZoneTicks, int setupExpiryBars, bool showSupportLevels, bool showResistanceLevels, bool showOnlyRecentLevels, bool showLevelLabels, bool showBreakoutLabels, bool showRetestLabels, bool showInfoPanel, int labelHorizontalOffset, int labelVerticalOffset, int eventLabelHorizontalOffset, int eventLabelVerticalOffset, bool showPriceMarkers, bool showLastResistanceMarker, bool showLastSupportMarker, bool showRangeMarkers)
		{
			if (cacheRaidoStructureLevels != null)
				for (int idx = 0; idx < cacheRaidoStructureLevels.Length; idx++)
					if (cacheRaidoStructureLevels[idx].LicenseKey == licenseKey && cacheRaidoStructureLevels[idx].SwingStrength == swingStrength && cacheRaidoStructureLevels[idx].LookbackBars == lookbackBars && cacheRaidoStructureLevels[idx].ZoneToleranceTicks == zoneToleranceTicks && cacheRaidoStructureLevels[idx].MinTouches == minTouches && cacheRaidoStructureLevels[idx].MaxLevels == maxLevels && cacheRaidoStructureLevels[idx].LevelMode == levelMode && cacheRaidoStructureLevels[idx].UseChartPrices == useChartPrices && cacheRaidoStructureLevels[idx].ShowActiveRange == showActiveRange && cacheRaidoStructureLevels[idx].RangeLookbackBars == rangeLookbackBars && cacheRaidoStructureLevels[idx].MinimumRangeHeightTicks == minimumRangeHeightTicks && cacheRaidoStructureLevels[idx].MaximumRangeHeightTicks == maximumRangeHeightTicks && cacheRaidoStructureLevels[idx].UseOnlyOuterRangeLevels == useOnlyOuterRangeLevels && cacheRaidoStructureLevels[idx].ShowBreakoutMarks == showBreakoutMarks && cacheRaidoStructureLevels[idx].BreakoutBufferTicks == breakoutBufferTicks && cacheRaidoStructureLevels[idx].ShowPullbackZone == showPullbackZone && cacheRaidoStructureLevels[idx].PullbackZoneTicks == pullbackZoneTicks && cacheRaidoStructureLevels[idx].SetupExpiryBars == setupExpiryBars && cacheRaidoStructureLevels[idx].ShowSupportLevels == showSupportLevels && cacheRaidoStructureLevels[idx].ShowResistanceLevels == showResistanceLevels && cacheRaidoStructureLevels[idx].ShowOnlyRecentLevels == showOnlyRecentLevels && cacheRaidoStructureLevels[idx].ShowLevelLabels == showLevelLabels && cacheRaidoStructureLevels[idx].ShowBreakoutLabels == showBreakoutLabels && cacheRaidoStructureLevels[idx].ShowRetestLabels == showRetestLabels && cacheRaidoStructureLevels[idx].ShowInfoPanel == showInfoPanel && cacheRaidoStructureLevels[idx].LabelHorizontalOffset == labelHorizontalOffset && cacheRaidoStructureLevels[idx].LabelVerticalOffset == labelVerticalOffset && cacheRaidoStructureLevels[idx].EventLabelHorizontalOffset == eventLabelHorizontalOffset && cacheRaidoStructureLevels[idx].EventLabelVerticalOffset == eventLabelVerticalOffset && cacheRaidoStructureLevels[idx].ShowPriceMarkers == showPriceMarkers && cacheRaidoStructureLevels[idx].ShowLastResistanceMarker == showLastResistanceMarker && cacheRaidoStructureLevels[idx].ShowLastSupportMarker == showLastSupportMarker && cacheRaidoStructureLevels[idx].ShowRangeMarkers == showRangeMarkers && cacheRaidoStructureLevels[idx].EqualsInput(input))
						return cacheRaidoStructureLevels[idx];
			return CacheIndicator<RaidoStructureLevels>(new RaidoStructureLevels(){ LicenseKey = licenseKey, SwingStrength = swingStrength, LookbackBars = lookbackBars, ZoneToleranceTicks = zoneToleranceTicks, MinTouches = minTouches, MaxLevels = maxLevels, LevelMode = levelMode, UseChartPrices = useChartPrices, ShowActiveRange = showActiveRange, RangeLookbackBars = rangeLookbackBars, MinimumRangeHeightTicks = minimumRangeHeightTicks, MaximumRangeHeightTicks = maximumRangeHeightTicks, UseOnlyOuterRangeLevels = useOnlyOuterRangeLevels, ShowBreakoutMarks = showBreakoutMarks, BreakoutBufferTicks = breakoutBufferTicks, ShowPullbackZone = showPullbackZone, PullbackZoneTicks = pullbackZoneTicks, SetupExpiryBars = setupExpiryBars, ShowSupportLevels = showSupportLevels, ShowResistanceLevels = showResistanceLevels, ShowOnlyRecentLevels = showOnlyRecentLevels, ShowLevelLabels = showLevelLabels, ShowBreakoutLabels = showBreakoutLabels, ShowRetestLabels = showRetestLabels, ShowInfoPanel = showInfoPanel, LabelHorizontalOffset = labelHorizontalOffset, LabelVerticalOffset = labelVerticalOffset, EventLabelHorizontalOffset = eventLabelHorizontalOffset, EventLabelVerticalOffset = eventLabelVerticalOffset, ShowPriceMarkers = showPriceMarkers, ShowLastResistanceMarker = showLastResistanceMarker, ShowLastSupportMarker = showLastSupportMarker, ShowRangeMarkers = showRangeMarkers }, input, ref cacheRaidoStructureLevels);
		}

	}
}

namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
	public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
	{
		
		public Indicators.RaidoStructureLevels RaidoStructureLevels(string licenseKey, int swingStrength, int lookbackBars, int zoneToleranceTicks, int minTouches, int maxLevels, RaidoStructureLevelMode levelMode, bool useChartPrices, bool showActiveRange, int rangeLookbackBars, int minimumRangeHeightTicks, int maximumRangeHeightTicks, bool useOnlyOuterRangeLevels, bool showBreakoutMarks, int breakoutBufferTicks, bool showPullbackZone, int pullbackZoneTicks, int setupExpiryBars, bool showSupportLevels, bool showResistanceLevels, bool showOnlyRecentLevels, bool showLevelLabels, bool showBreakoutLabels, bool showRetestLabels, bool showInfoPanel, int labelHorizontalOffset, int labelVerticalOffset, int eventLabelHorizontalOffset, int eventLabelVerticalOffset, bool showPriceMarkers, bool showLastResistanceMarker, bool showLastSupportMarker, bool showRangeMarkers)
		{
			return indicator.RaidoStructureLevels(Input, licenseKey, swingStrength, lookbackBars, zoneToleranceTicks, minTouches, maxLevels, levelMode, useChartPrices, showActiveRange, rangeLookbackBars, minimumRangeHeightTicks, maximumRangeHeightTicks, useOnlyOuterRangeLevels, showBreakoutMarks, breakoutBufferTicks, showPullbackZone, pullbackZoneTicks, setupExpiryBars, showSupportLevels, showResistanceLevels, showOnlyRecentLevels, showLevelLabels, showBreakoutLabels, showRetestLabels, showInfoPanel, labelHorizontalOffset, labelVerticalOffset, eventLabelHorizontalOffset, eventLabelVerticalOffset, showPriceMarkers, showLastResistanceMarker, showLastSupportMarker, showRangeMarkers);
		}


		
		public Indicators.RaidoStructureLevels RaidoStructureLevels(ISeries<double> input , string licenseKey, int swingStrength, int lookbackBars, int zoneToleranceTicks, int minTouches, int maxLevels, RaidoStructureLevelMode levelMode, bool useChartPrices, bool showActiveRange, int rangeLookbackBars, int minimumRangeHeightTicks, int maximumRangeHeightTicks, bool useOnlyOuterRangeLevels, bool showBreakoutMarks, int breakoutBufferTicks, bool showPullbackZone, int pullbackZoneTicks, int setupExpiryBars, bool showSupportLevels, bool showResistanceLevels, bool showOnlyRecentLevels, bool showLevelLabels, bool showBreakoutLabels, bool showRetestLabels, bool showInfoPanel, int labelHorizontalOffset, int labelVerticalOffset, int eventLabelHorizontalOffset, int eventLabelVerticalOffset, bool showPriceMarkers, bool showLastResistanceMarker, bool showLastSupportMarker, bool showRangeMarkers)
		{
			return indicator.RaidoStructureLevels(input, licenseKey, swingStrength, lookbackBars, zoneToleranceTicks, minTouches, maxLevels, levelMode, useChartPrices, showActiveRange, rangeLookbackBars, minimumRangeHeightTicks, maximumRangeHeightTicks, useOnlyOuterRangeLevels, showBreakoutMarks, breakoutBufferTicks, showPullbackZone, pullbackZoneTicks, setupExpiryBars, showSupportLevels, showResistanceLevels, showOnlyRecentLevels, showLevelLabels, showBreakoutLabels, showRetestLabels, showInfoPanel, labelHorizontalOffset, labelVerticalOffset, eventLabelHorizontalOffset, eventLabelVerticalOffset, showPriceMarkers, showLastResistanceMarker, showLastSupportMarker, showRangeMarkers);
		}
	
	}
}

namespace NinjaTrader.NinjaScript.Strategies
{
	public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
	{
		
		public Indicators.RaidoStructureLevels RaidoStructureLevels(string licenseKey, int swingStrength, int lookbackBars, int zoneToleranceTicks, int minTouches, int maxLevels, RaidoStructureLevelMode levelMode, bool useChartPrices, bool showActiveRange, int rangeLookbackBars, int minimumRangeHeightTicks, int maximumRangeHeightTicks, bool useOnlyOuterRangeLevels, bool showBreakoutMarks, int breakoutBufferTicks, bool showPullbackZone, int pullbackZoneTicks, int setupExpiryBars, bool showSupportLevels, bool showResistanceLevels, bool showOnlyRecentLevels, bool showLevelLabels, bool showBreakoutLabels, bool showRetestLabels, bool showInfoPanel, int labelHorizontalOffset, int labelVerticalOffset, int eventLabelHorizontalOffset, int eventLabelVerticalOffset, bool showPriceMarkers, bool showLastResistanceMarker, bool showLastSupportMarker, bool showRangeMarkers)
		{
			return indicator.RaidoStructureLevels(Input, licenseKey, swingStrength, lookbackBars, zoneToleranceTicks, minTouches, maxLevels, levelMode, useChartPrices, showActiveRange, rangeLookbackBars, minimumRangeHeightTicks, maximumRangeHeightTicks, useOnlyOuterRangeLevels, showBreakoutMarks, breakoutBufferTicks, showPullbackZone, pullbackZoneTicks, setupExpiryBars, showSupportLevels, showResistanceLevels, showOnlyRecentLevels, showLevelLabels, showBreakoutLabels, showRetestLabels, showInfoPanel, labelHorizontalOffset, labelVerticalOffset, eventLabelHorizontalOffset, eventLabelVerticalOffset, showPriceMarkers, showLastResistanceMarker, showLastSupportMarker, showRangeMarkers);
		}


		
		public Indicators.RaidoStructureLevels RaidoStructureLevels(ISeries<double> input , string licenseKey, int swingStrength, int lookbackBars, int zoneToleranceTicks, int minTouches, int maxLevels, RaidoStructureLevelMode levelMode, bool useChartPrices, bool showActiveRange, int rangeLookbackBars, int minimumRangeHeightTicks, int maximumRangeHeightTicks, bool useOnlyOuterRangeLevels, bool showBreakoutMarks, int breakoutBufferTicks, bool showPullbackZone, int pullbackZoneTicks, int setupExpiryBars, bool showSupportLevels, bool showResistanceLevels, bool showOnlyRecentLevels, bool showLevelLabels, bool showBreakoutLabels, bool showRetestLabels, bool showInfoPanel, int labelHorizontalOffset, int labelVerticalOffset, int eventLabelHorizontalOffset, int eventLabelVerticalOffset, bool showPriceMarkers, bool showLastResistanceMarker, bool showLastSupportMarker, bool showRangeMarkers)
		{
			return indicator.RaidoStructureLevels(input, licenseKey, swingStrength, lookbackBars, zoneToleranceTicks, minTouches, maxLevels, levelMode, useChartPrices, showActiveRange, rangeLookbackBars, minimumRangeHeightTicks, maximumRangeHeightTicks, useOnlyOuterRangeLevels, showBreakoutMarks, breakoutBufferTicks, showPullbackZone, pullbackZoneTicks, setupExpiryBars, showSupportLevels, showResistanceLevels, showOnlyRecentLevels, showLevelLabels, showBreakoutLabels, showRetestLabels, showInfoPanel, labelHorizontalOffset, labelVerticalOffset, eventLabelHorizontalOffset, eventLabelVerticalOffset, showPriceMarkers, showLastResistanceMarker, showLastSupportMarker, showRangeMarkers);
		}

	}
}

#endregion
