#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 RaidoTrendMatrix[] cacheRaidoTrendMatrix;

		
		public RaidoTrendMatrix RaidoTrendMatrix(string licenseKey, RaidoTrendMatrixLanguage language, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, RaidoTrendMatrixLanguage telegramLanguage, RaidoTrendMatrixAlertMode alertMode, int alertCooldownSeconds, bool sendHistoricalTelegramAlerts, bool debugTelegram, int linRegPeriod, double slopeThreshold, int aTRPeriod, int aTRAveragePeriod, double aTRHighMultiplier, bool enableBackground, bool enablePanel, int strongBackgroundOpacity, int weakBackgroundOpacity, int neutralBackgroundOpacity, bool showDebug, int panelSlot)
		{
			return RaidoTrendMatrix(Input, licenseKey, language, enableTelegramAlerts, onlySendTelegramWhenChartActive, telegramLanguage, alertMode, alertCooldownSeconds, sendHistoricalTelegramAlerts, debugTelegram, linRegPeriod, slopeThreshold, aTRPeriod, aTRAveragePeriod, aTRHighMultiplier, enableBackground, enablePanel, strongBackgroundOpacity, weakBackgroundOpacity, neutralBackgroundOpacity, showDebug, panelSlot);
		}


		
		public RaidoTrendMatrix RaidoTrendMatrix(ISeries<double> input, string licenseKey, RaidoTrendMatrixLanguage language, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, RaidoTrendMatrixLanguage telegramLanguage, RaidoTrendMatrixAlertMode alertMode, int alertCooldownSeconds, bool sendHistoricalTelegramAlerts, bool debugTelegram, int linRegPeriod, double slopeThreshold, int aTRPeriod, int aTRAveragePeriod, double aTRHighMultiplier, bool enableBackground, bool enablePanel, int strongBackgroundOpacity, int weakBackgroundOpacity, int neutralBackgroundOpacity, bool showDebug, int panelSlot)
		{
			if (cacheRaidoTrendMatrix != null)
				for (int idx = 0; idx < cacheRaidoTrendMatrix.Length; idx++)
					if (cacheRaidoTrendMatrix[idx].LicenseKey == licenseKey && cacheRaidoTrendMatrix[idx].Language == language && cacheRaidoTrendMatrix[idx].EnableTelegramAlerts == enableTelegramAlerts && cacheRaidoTrendMatrix[idx].OnlySendTelegramWhenChartActive == onlySendTelegramWhenChartActive && cacheRaidoTrendMatrix[idx].TelegramLanguage == telegramLanguage && cacheRaidoTrendMatrix[idx].AlertMode == alertMode && cacheRaidoTrendMatrix[idx].AlertCooldownSeconds == alertCooldownSeconds && cacheRaidoTrendMatrix[idx].SendHistoricalTelegramAlerts == sendHistoricalTelegramAlerts && cacheRaidoTrendMatrix[idx].DebugTelegram == debugTelegram && cacheRaidoTrendMatrix[idx].LinRegPeriod == linRegPeriod && cacheRaidoTrendMatrix[idx].SlopeThreshold == slopeThreshold && cacheRaidoTrendMatrix[idx].ATRPeriod == aTRPeriod && cacheRaidoTrendMatrix[idx].ATRAveragePeriod == aTRAveragePeriod && cacheRaidoTrendMatrix[idx].ATRHighMultiplier == aTRHighMultiplier && cacheRaidoTrendMatrix[idx].EnableBackground == enableBackground && cacheRaidoTrendMatrix[idx].EnablePanel == enablePanel && cacheRaidoTrendMatrix[idx].StrongBackgroundOpacity == strongBackgroundOpacity && cacheRaidoTrendMatrix[idx].WeakBackgroundOpacity == weakBackgroundOpacity && cacheRaidoTrendMatrix[idx].NeutralBackgroundOpacity == neutralBackgroundOpacity && cacheRaidoTrendMatrix[idx].ShowDebug == showDebug && cacheRaidoTrendMatrix[idx].PanelSlot == panelSlot && cacheRaidoTrendMatrix[idx].EqualsInput(input))
						return cacheRaidoTrendMatrix[idx];
			return CacheIndicator<RaidoTrendMatrix>(new RaidoTrendMatrix(){ LicenseKey = licenseKey, Language = language, EnableTelegramAlerts = enableTelegramAlerts, OnlySendTelegramWhenChartActive = onlySendTelegramWhenChartActive, TelegramLanguage = telegramLanguage, AlertMode = alertMode, AlertCooldownSeconds = alertCooldownSeconds, SendHistoricalTelegramAlerts = sendHistoricalTelegramAlerts, DebugTelegram = debugTelegram, LinRegPeriod = linRegPeriod, SlopeThreshold = slopeThreshold, ATRPeriod = aTRPeriod, ATRAveragePeriod = aTRAveragePeriod, ATRHighMultiplier = aTRHighMultiplier, EnableBackground = enableBackground, EnablePanel = enablePanel, StrongBackgroundOpacity = strongBackgroundOpacity, WeakBackgroundOpacity = weakBackgroundOpacity, NeutralBackgroundOpacity = neutralBackgroundOpacity, ShowDebug = showDebug, PanelSlot = panelSlot }, input, ref cacheRaidoTrendMatrix);
		}

	}
}

namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
	public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
	{
		
		public Indicators.RaidoTrendMatrix RaidoTrendMatrix(string licenseKey, RaidoTrendMatrixLanguage language, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, RaidoTrendMatrixLanguage telegramLanguage, RaidoTrendMatrixAlertMode alertMode, int alertCooldownSeconds, bool sendHistoricalTelegramAlerts, bool debugTelegram, int linRegPeriod, double slopeThreshold, int aTRPeriod, int aTRAveragePeriod, double aTRHighMultiplier, bool enableBackground, bool enablePanel, int strongBackgroundOpacity, int weakBackgroundOpacity, int neutralBackgroundOpacity, bool showDebug, int panelSlot)
		{
			return indicator.RaidoTrendMatrix(Input, licenseKey, language, enableTelegramAlerts, onlySendTelegramWhenChartActive, telegramLanguage, alertMode, alertCooldownSeconds, sendHistoricalTelegramAlerts, debugTelegram, linRegPeriod, slopeThreshold, aTRPeriod, aTRAveragePeriod, aTRHighMultiplier, enableBackground, enablePanel, strongBackgroundOpacity, weakBackgroundOpacity, neutralBackgroundOpacity, showDebug, panelSlot);
		}


		
		public Indicators.RaidoTrendMatrix RaidoTrendMatrix(ISeries<double> input , string licenseKey, RaidoTrendMatrixLanguage language, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, RaidoTrendMatrixLanguage telegramLanguage, RaidoTrendMatrixAlertMode alertMode, int alertCooldownSeconds, bool sendHistoricalTelegramAlerts, bool debugTelegram, int linRegPeriod, double slopeThreshold, int aTRPeriod, int aTRAveragePeriod, double aTRHighMultiplier, bool enableBackground, bool enablePanel, int strongBackgroundOpacity, int weakBackgroundOpacity, int neutralBackgroundOpacity, bool showDebug, int panelSlot)
		{
			return indicator.RaidoTrendMatrix(input, licenseKey, language, enableTelegramAlerts, onlySendTelegramWhenChartActive, telegramLanguage, alertMode, alertCooldownSeconds, sendHistoricalTelegramAlerts, debugTelegram, linRegPeriod, slopeThreshold, aTRPeriod, aTRAveragePeriod, aTRHighMultiplier, enableBackground, enablePanel, strongBackgroundOpacity, weakBackgroundOpacity, neutralBackgroundOpacity, showDebug, panelSlot);
		}
	
	}
}

namespace NinjaTrader.NinjaScript.Strategies
{
	public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
	{
		
		public Indicators.RaidoTrendMatrix RaidoTrendMatrix(string licenseKey, RaidoTrendMatrixLanguage language, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, RaidoTrendMatrixLanguage telegramLanguage, RaidoTrendMatrixAlertMode alertMode, int alertCooldownSeconds, bool sendHistoricalTelegramAlerts, bool debugTelegram, int linRegPeriod, double slopeThreshold, int aTRPeriod, int aTRAveragePeriod, double aTRHighMultiplier, bool enableBackground, bool enablePanel, int strongBackgroundOpacity, int weakBackgroundOpacity, int neutralBackgroundOpacity, bool showDebug, int panelSlot)
		{
			return indicator.RaidoTrendMatrix(Input, licenseKey, language, enableTelegramAlerts, onlySendTelegramWhenChartActive, telegramLanguage, alertMode, alertCooldownSeconds, sendHistoricalTelegramAlerts, debugTelegram, linRegPeriod, slopeThreshold, aTRPeriod, aTRAveragePeriod, aTRHighMultiplier, enableBackground, enablePanel, strongBackgroundOpacity, weakBackgroundOpacity, neutralBackgroundOpacity, showDebug, panelSlot);
		}


		
		public Indicators.RaidoTrendMatrix RaidoTrendMatrix(ISeries<double> input , string licenseKey, RaidoTrendMatrixLanguage language, bool enableTelegramAlerts, bool onlySendTelegramWhenChartActive, RaidoTrendMatrixLanguage telegramLanguage, RaidoTrendMatrixAlertMode alertMode, int alertCooldownSeconds, bool sendHistoricalTelegramAlerts, bool debugTelegram, int linRegPeriod, double slopeThreshold, int aTRPeriod, int aTRAveragePeriod, double aTRHighMultiplier, bool enableBackground, bool enablePanel, int strongBackgroundOpacity, int weakBackgroundOpacity, int neutralBackgroundOpacity, bool showDebug, int panelSlot)
		{
			return indicator.RaidoTrendMatrix(input, licenseKey, language, enableTelegramAlerts, onlySendTelegramWhenChartActive, telegramLanguage, alertMode, alertCooldownSeconds, sendHistoricalTelegramAlerts, debugTelegram, linRegPeriod, slopeThreshold, aTRPeriod, aTRAveragePeriod, aTRHighMultiplier, enableBackground, enablePanel, strongBackgroundOpacity, weakBackgroundOpacity, neutralBackgroundOpacity, showDebug, panelSlot);
		}

	}
}

#endregion
