CheckEnumValueTest Ninjatrader
Enumsunknown
csharp
a year ago
10 kB
21
Indexable
#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; using NinjaTrader.NinjaScript.DrawingTools; using System.Windows.Controls; #endregion //This namespace holds Indicators in this folder and is required. Do not change it. namespace NinjaTrader.NinjaScript.Indicators { public class CheckEnumValueTest : Indicator { #region Class Variables // Create a variable that stores the user's selection for a moving average private CheckEnumValueTest_Tools.CustomEnum myEnum; private string ticksString; private Grid chartTraderGrid, chartTraderButtonsGrid; private ChartTab chartTab; private Style chartTraderButtonStyle; private Chart chartWindow; private TabItem tabItem; private RowDefinition customCtaddedRow2; private Grid lowerButtonsGrid; private Button[] chartTraderCustomButtonsArray; private bool customCtButtonsActive; #endregion #region OnStateChange() protected override void OnStateChange() { if (State == State.SetDefaults) { Description = @""; Name = "CheckEnumValueTest"; myEnum = CheckEnumValueTest_Tools.CustomEnum.D; } else if (State == State.Historical) { ticksString = "12345"; if (ChartControl != null) { ChartControl.Dispatcher.InvokeAsync((() => { LoadBrushesFromSkin(); // WPF modifications wait until State.Historical to play nice with duplicating tabs CreateWPFControls(); })); } } else if (State == State.Terminated) { if (ChartControl != null) { ChartControl.Dispatcher.InvokeAsync((() => { DisposeWPFControls(); })); } } } #endregion #region CreateWPFControls() protected void CreateWPFControls() { #region GRID GONFIG chartWindow = Window.GetWindow(ChartControl.Parent) as Chart; if (chartWindow == null) return; chartTraderGrid = (chartWindow.FindFirst("ChartWindowChartTraderControl") as ChartTrader).Content as Grid; chartTraderButtonsGrid = chartTraderGrid.Children[0] as Grid;; lowerButtonsGrid = new Grid(); Grid.SetColumnSpan(lowerButtonsGrid, 4); lowerButtonsGrid.ColumnDefinitions.Add(new ColumnDefinition()); lowerButtonsGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength((double)Application.Current.FindResource("MarginBase")) }); lowerButtonsGrid.ColumnDefinitions.Add(new ColumnDefinition()); customCtaddedRow2 = new RowDefinition() { Height = new GridLength(40) }; #endregion #region BUTTONS CONFIG string addToContentString = new CheckEnumValueTest_Tools.CustomEnum[] { CheckEnumValueTest_Tools.CustomEnum.A, CheckEnumValueTest_Tools.CustomEnum.B, CheckEnumValueTest_Tools.CustomEnum.C }.Contains(MyEnum) ? " - " + ticksString : string.Empty; chartTraderCustomButtonsArray = new Button[2]; for (int i = 0; i < 2; ++i) { chartTraderCustomButtonsArray[i] = new Button() { Content = string.Format("Button {0}{1}", i + 1, addToContentString), Height = 30, Margin = new Thickness(0,0,0,0), Padding = new Thickness(0,0,0,0), Style = chartTraderButtonStyle }; } chartTraderCustomButtonsArray[0].Click += ChartTraderButtonMenu_Click; chartTraderCustomButtonsArray[1].Click += ChartTraderButtonMenu_Click; Grid.SetColumn(chartTraderCustomButtonsArray[0], 0); Grid.SetColumn(chartTraderCustomButtonsArray[1], 2); for (int i = 0; i < 2; ++i) lowerButtonsGrid.Children.Add(chartTraderCustomButtonsArray[i]); #endregion #region TABs CONFIG if (TabSelected()) ShowWPFControls(); chartWindow.MainTabControl.SelectionChanged += TabChangedHandler; #endregion } #endregion #region DisposeWPFControls() private void DisposeWPFControls() { if (chartWindow != null) chartWindow.MainTabControl.SelectionChanged -= TabChangedHandler; HideWPFControls(); for (int i = 0; i < 2; i++) if (chartTraderCustomButtonsArray[i] != null) chartTraderCustomButtonsArray[i].Click -= ChartTraderButtonMenu_Click; if (customCtButtonsActive) { if (chartTraderButtonsGrid != null || lowerButtonsGrid != null) { chartTraderGrid.Children.Remove(lowerButtonsGrid); chartTraderGrid.RowDefinitions.Remove(customCtaddedRow2); } customCtButtonsActive = false; } } #endregion #region HideWPFControls() private void HideWPFControls() { if (customCtButtonsActive) { if (chartTraderButtonsGrid != null || lowerButtonsGrid != null) { chartTraderGrid.Children.Remove(lowerButtonsGrid); chartTraderGrid.RowDefinitions.Remove(customCtaddedRow2); } customCtButtonsActive = false; } } #endregion #region LoadBrushesFromSkin() private void LoadBrushesFromSkin() { chartTraderButtonStyle = Application.Current.TryFindResource("BasicEntryButton") as Style; } #endregion #region OnBarUpdate() protected override void OnBarUpdate() { } #endregion #region ShowWPFControls() private void ShowWPFControls() { if (!customCtButtonsActive) { // add a new row (addedRow2) for our lowerButtonsGrid below the ask and bid prices and pnl display chartTraderGrid.RowDefinitions.Add(customCtaddedRow2); Grid.SetRow(lowerButtonsGrid, (chartTraderGrid.RowDefinitions.Count - 1)); chartTraderGrid.Children.Add(lowerButtonsGrid); customCtButtonsActive = true; } } #endregion #region ChartTraderButtonMenu_Click protected void ChartTraderButtonMenu_Click(object sender, RoutedEventArgs eventArgs) { Button button = sender as Button; } #endregion #region TabSelected() private bool TabSelected() { if (ChartControl == null || chartWindow == null || chartWindow.MainTabControl == null) return false; bool tabSelected = false; if (ChartControl.ChartTab == ((chartWindow.MainTabControl.Items.GetItemAt(chartWindow.MainTabControl.SelectedIndex) as TabItem).Content as ChartTab)) tabSelected = true; return tabSelected; } #endregion #region TabChangedHandler // Runs ShowWPFControls if this is the selected chart tab, other wise runs HideWPFControls() private void TabChangedHandler(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count <= 0) return; tabItem = e.AddedItems[0] as TabItem; if (tabItem == null) return; chartTab = tabItem.Content as ChartTab; if (chartTab == null) return; if (TabSelected()) ShowWPFControls(); else HideWPFControls(); } #endregion // Creates the user definable parameter for the moving average type. [Display(GroupName = "Parameters", Description = "Choose an enum value")] public CheckEnumValueTest_Tools.CustomEnum MyEnum { get { return myEnum; } set { myEnum = value; } } } } namespace CheckEnumValueTest_Tools { public enum CustomEnum { A, B, C, D, E } } #region NinjaScript generated code. Neither change nor remove. namespace NinjaTrader.NinjaScript.Indicators { public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase { private CheckEnumValueTest[] cacheCheckEnumValueTest; public CheckEnumValueTest CheckEnumValueTest() { return CheckEnumValueTest(Input); } public CheckEnumValueTest CheckEnumValueTest(ISeries<double> input) { if (cacheCheckEnumValueTest != null) for (int idx = 0; idx < cacheCheckEnumValueTest.Length; idx++) if (cacheCheckEnumValueTest[idx] != null && cacheCheckEnumValueTest[idx].EqualsInput(input)) return cacheCheckEnumValueTest[idx]; return CacheIndicator<CheckEnumValueTest>(new CheckEnumValueTest(), input, ref cacheCheckEnumValueTest); } } } namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns { public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase { public Indicators.CheckEnumValueTest CheckEnumValueTest() { return indicator.CheckEnumValueTest(Input); } public Indicators.CheckEnumValueTest CheckEnumValueTest(ISeries<double> input ) { return indicator.CheckEnumValueTest(input); } } } namespace NinjaTrader.NinjaScript.Strategies { public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase { public Indicators.CheckEnumValueTest CheckEnumValueTest() { return indicator.CheckEnumValueTest(Input); } public Indicators.CheckEnumValueTest CheckEnumValueTest(ISeries<double> input ) { return indicator.CheckEnumValueTest(input); } } } #endregion
Editor is loading...
Leave a Comment