#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 RaidoAlertZones[] cacheRaidoAlertZones;

		
		public RaidoAlertZones RaidoAlertZones(string licenseKey, bool enableUpperZone1, double upperZone1Price, string upperZone1Name, bool enableUpperZone2, double upperZone2Price, string upperZone2Name, bool enableLowerZone1, double lowerZone1Price, string lowerZone1Name, bool enableLowerZone2, double lowerZone2Price, string lowerZone2Name, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, bool alertOnce, int cooldownSeconds, int rearmDistanceTicks, bool showZone, bool showZoneLabel, int zoneOpacity, int zoneThicknessTicks, bool reactivateUpperAlert, bool reactivateLowerAlert, bool cancelUpperAlert, bool cancelLowerAlert)
		{
			return RaidoAlertZones(Input, licenseKey, enableUpperZone1, upperZone1Price, upperZone1Name, enableUpperZone2, upperZone2Price, upperZone2Name, enableLowerZone1, lowerZone1Price, lowerZone1Name, enableLowerZone2, lowerZone2Price, lowerZone2Name, enableTelegramAlerts, onlySendTelegramWhenChartActive, alertOnce, cooldownSeconds, rearmDistanceTicks, showZone, showZoneLabel, zoneOpacity, zoneThicknessTicks, reactivateUpperAlert, reactivateLowerAlert, cancelUpperAlert, cancelLowerAlert);
		}


		
		public RaidoAlertZones RaidoAlertZones(ISeries<double> input, string licenseKey, bool enableUpperZone1, double upperZone1Price, string upperZone1Name, bool enableUpperZone2, double upperZone2Price, string upperZone2Name, bool enableLowerZone1, double lowerZone1Price, string lowerZone1Name, bool enableLowerZone2, double lowerZone2Price, string lowerZone2Name, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, bool alertOnce, int cooldownSeconds, int rearmDistanceTicks, bool showZone, bool showZoneLabel, int zoneOpacity, int zoneThicknessTicks, bool reactivateUpperAlert, bool reactivateLowerAlert, bool cancelUpperAlert, bool cancelLowerAlert)
		{
			if (cacheRaidoAlertZones != null)
				for (int idx = 0; idx < cacheRaidoAlertZones.Length; idx++)
					if (cacheRaidoAlertZones[idx].LicenseKey == licenseKey && cacheRaidoAlertZones[idx].EnableUpperZone1 == enableUpperZone1 && cacheRaidoAlertZones[idx].UpperZone1Price == upperZone1Price && cacheRaidoAlertZones[idx].UpperZone1Name == upperZone1Name && cacheRaidoAlertZones[idx].EnableUpperZone2 == enableUpperZone2 && cacheRaidoAlertZones[idx].UpperZone2Price == upperZone2Price && cacheRaidoAlertZones[idx].UpperZone2Name == upperZone2Name && cacheRaidoAlertZones[idx].EnableLowerZone1 == enableLowerZone1 && cacheRaidoAlertZones[idx].LowerZone1Price == lowerZone1Price && cacheRaidoAlertZones[idx].LowerZone1Name == lowerZone1Name && cacheRaidoAlertZones[idx].EnableLowerZone2 == enableLowerZone2 && cacheRaidoAlertZones[idx].LowerZone2Price == lowerZone2Price && cacheRaidoAlertZones[idx].LowerZone2Name == lowerZone2Name && cacheRaidoAlertZones[idx].EnableTelegramAlerts == enableTelegramAlerts && cacheRaidoAlertZones[idx].OnlySendTelegramWhenChartActive == onlySendTelegramWhenChartActive && cacheRaidoAlertZones[idx].AlertOnce == alertOnce && cacheRaidoAlertZones[idx].CooldownSeconds == cooldownSeconds && cacheRaidoAlertZones[idx].RearmDistanceTicks == rearmDistanceTicks && cacheRaidoAlertZones[idx].ShowZone == showZone && cacheRaidoAlertZones[idx].ShowZoneLabel == showZoneLabel && cacheRaidoAlertZones[idx].ZoneOpacity == zoneOpacity && cacheRaidoAlertZones[idx].ZoneThicknessTicks == zoneThicknessTicks && cacheRaidoAlertZones[idx].ReactivateUpperAlert == reactivateUpperAlert && cacheRaidoAlertZones[idx].ReactivateLowerAlert == reactivateLowerAlert && cacheRaidoAlertZones[idx].CancelUpperAlert == cancelUpperAlert && cacheRaidoAlertZones[idx].CancelLowerAlert == cancelLowerAlert && cacheRaidoAlertZones[idx].EqualsInput(input))
						return cacheRaidoAlertZones[idx];
			return CacheIndicator<RaidoAlertZones>(new RaidoAlertZones(){ LicenseKey = licenseKey, EnableUpperZone1 = enableUpperZone1, UpperZone1Price = upperZone1Price, UpperZone1Name = upperZone1Name, EnableUpperZone2 = enableUpperZone2, UpperZone2Price = upperZone2Price, UpperZone2Name = upperZone2Name, EnableLowerZone1 = enableLowerZone1, LowerZone1Price = lowerZone1Price, LowerZone1Name = lowerZone1Name, EnableLowerZone2 = enableLowerZone2, LowerZone2Price = lowerZone2Price, LowerZone2Name = lowerZone2Name, EnableTelegramAlerts = enableTelegramAlerts, OnlySendTelegramWhenChartActive = onlySendTelegramWhenChartActive, AlertOnce = alertOnce, CooldownSeconds = cooldownSeconds, RearmDistanceTicks = rearmDistanceTicks, ShowZone = showZone, ShowZoneLabel = showZoneLabel, ZoneOpacity = zoneOpacity, ZoneThicknessTicks = zoneThicknessTicks, ReactivateUpperAlert = reactivateUpperAlert, ReactivateLowerAlert = reactivateLowerAlert, CancelUpperAlert = cancelUpperAlert, CancelLowerAlert = cancelLowerAlert }, input, ref cacheRaidoAlertZones);
		}

	}
}

namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
	public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
	{
		
		public Indicators.RaidoAlertZones RaidoAlertZones(string licenseKey, bool enableUpperZone1, double upperZone1Price, string upperZone1Name, bool enableUpperZone2, double upperZone2Price, string upperZone2Name, bool enableLowerZone1, double lowerZone1Price, string lowerZone1Name, bool enableLowerZone2, double lowerZone2Price, string lowerZone2Name, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, bool alertOnce, int cooldownSeconds, int rearmDistanceTicks, bool showZone, bool showZoneLabel, int zoneOpacity, int zoneThicknessTicks, bool reactivateUpperAlert, bool reactivateLowerAlert, bool cancelUpperAlert, bool cancelLowerAlert)
		{
			return indicator.RaidoAlertZones(Input, licenseKey, enableUpperZone1, upperZone1Price, upperZone1Name, enableUpperZone2, upperZone2Price, upperZone2Name, enableLowerZone1, lowerZone1Price, lowerZone1Name, enableLowerZone2, lowerZone2Price, lowerZone2Name, enableTelegramAlerts, onlySendTelegramWhenChartActive, alertOnce, cooldownSeconds, rearmDistanceTicks, showZone, showZoneLabel, zoneOpacity, zoneThicknessTicks, reactivateUpperAlert, reactivateLowerAlert, cancelUpperAlert, cancelLowerAlert);
		}


		
		public Indicators.RaidoAlertZones RaidoAlertZones(ISeries<double> input , string licenseKey, bool enableUpperZone1, double upperZone1Price, string upperZone1Name, bool enableUpperZone2, double upperZone2Price, string upperZone2Name, bool enableLowerZone1, double lowerZone1Price, string lowerZone1Name, bool enableLowerZone2, double lowerZone2Price, string lowerZone2Name, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, bool alertOnce, int cooldownSeconds, int rearmDistanceTicks, bool showZone, bool showZoneLabel, int zoneOpacity, int zoneThicknessTicks, bool reactivateUpperAlert, bool reactivateLowerAlert, bool cancelUpperAlert, bool cancelLowerAlert)
		{
			return indicator.RaidoAlertZones(input, licenseKey, enableUpperZone1, upperZone1Price, upperZone1Name, enableUpperZone2, upperZone2Price, upperZone2Name, enableLowerZone1, lowerZone1Price, lowerZone1Name, enableLowerZone2, lowerZone2Price, lowerZone2Name, enableTelegramAlerts, onlySendTelegramWhenChartActive, alertOnce, cooldownSeconds, rearmDistanceTicks, showZone, showZoneLabel, zoneOpacity, zoneThicknessTicks, reactivateUpperAlert, reactivateLowerAlert, cancelUpperAlert, cancelLowerAlert);
		}
	
	}
}

namespace NinjaTrader.NinjaScript.Strategies
{
	public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
	{
		
		public Indicators.RaidoAlertZones RaidoAlertZones(string licenseKey, bool enableUpperZone1, double upperZone1Price, string upperZone1Name, bool enableUpperZone2, double upperZone2Price, string upperZone2Name, bool enableLowerZone1, double lowerZone1Price, string lowerZone1Name, bool enableLowerZone2, double lowerZone2Price, string lowerZone2Name, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, bool alertOnce, int cooldownSeconds, int rearmDistanceTicks, bool showZone, bool showZoneLabel, int zoneOpacity, int zoneThicknessTicks, bool reactivateUpperAlert, bool reactivateLowerAlert, bool cancelUpperAlert, bool cancelLowerAlert)
		{
			return indicator.RaidoAlertZones(Input, licenseKey, enableUpperZone1, upperZone1Price, upperZone1Name, enableUpperZone2, upperZone2Price, upperZone2Name, enableLowerZone1, lowerZone1Price, lowerZone1Name, enableLowerZone2, lowerZone2Price, lowerZone2Name, enableTelegramAlerts, onlySendTelegramWhenChartActive, alertOnce, cooldownSeconds, rearmDistanceTicks, showZone, showZoneLabel, zoneOpacity, zoneThicknessTicks, reactivateUpperAlert, reactivateLowerAlert, cancelUpperAlert, cancelLowerAlert);
		}


		
		public Indicators.RaidoAlertZones RaidoAlertZones(ISeries<double> input , string licenseKey, bool enableUpperZone1, double upperZone1Price, string upperZone1Name, bool enableUpperZone2, double upperZone2Price, string upperZone2Name, bool enableLowerZone1, double lowerZone1Price, string lowerZone1Name, bool enableLowerZone2, double lowerZone2Price, string lowerZone2Name, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, bool alertOnce, int cooldownSeconds, int rearmDistanceTicks, bool showZone, bool showZoneLabel, int zoneOpacity, int zoneThicknessTicks, bool reactivateUpperAlert, bool reactivateLowerAlert, bool cancelUpperAlert, bool cancelLowerAlert)
		{
			return indicator.RaidoAlertZones(input, licenseKey, enableUpperZone1, upperZone1Price, upperZone1Name, enableUpperZone2, upperZone2Price, upperZone2Name, enableLowerZone1, lowerZone1Price, lowerZone1Name, enableLowerZone2, lowerZone2Price, lowerZone2Name, enableTelegramAlerts, onlySendTelegramWhenChartActive, alertOnce, cooldownSeconds, rearmDistanceTicks, showZone, showZoneLabel, zoneOpacity, zoneThicknessTicks, reactivateUpperAlert, reactivateLowerAlert, cancelUpperAlert, cancelLowerAlert);
		}

	}
}

#endregion
