If any of you advanced programmers / support gurus can help me fix this I would be very grateful.
And I know it's way out of the bounds of support....
#region Using declarations using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Xml.Serialization; using NinjaTrader.Cbi; using NinjaTrader.Data; using NinjaTrader.Gui.Chart; using System.Windows.Forms; #endregion namespace NinjaTrader.Indicator { [Description("Enter the description of your new custom indicator here")] public class PositionMonitor1 : Indicator { #region Variables private ComboBox ctrdrAcct; private Account selectedacct; #endregion protected override void Initialize() { Overlay = true; } protected override void OnTermination() { selectedacct.PositionUpdate -= new PositionUpdateEventHandler(positionchangedHandler); } protected override void OnStartUp() { { ctrdrAcct = (ComboBox)ChartControl.Controls["pnlChartTrader"].Controls["ctrChartTraderControl"].Controls["cboAccount"]; // object instance error correction selectedacct = (Account) ctrdrAcct.SelectedItem; selectedacct.PositionUpdate += new PositionUpdateEventHandler(positionchangedHandler); } } protected override void OnBarUpdate() { if(Historical) return; } private void positionchangedHandler(object sender,EventArgs e)//state-------------------------------mypositionChanged----------------------- { DoSomething(); } private void DoSomething() { try{ if(selectedacct.Positions.FindByInstrument(Instrument).MarketPosition == MarketPosition.Short) { DrawTextFixed("Tag","SHORT",TextPosition.TopRight); } if(selectedacct.Positions.FindByInstrument(Instrument).MarketPosition == MarketPosition.Long) { DrawTextFixed("Tag","LONG",TextPosition.TopRight); } } catch// = FLAT { DrawTextFixed("Tag","FLAT",TextPosition.TopRight); } } } } #region NinjaScript generated code. Neither change nor remove. // This namespace holds all indicators and is required. Do not change it. namespace NinjaTrader.Indicator { public partial class Indicator : IndicatorBase { private PositionMonitor1[] cachePositionMonitor1 = null; private static PositionMonitor1 checkPositionMonitor1 = new PositionMonitor1(); /// <summary> /// Enter the description of your new custom indicator here /// </summary> /// <returns></returns> public PositionMonitor1 PositionMonitor1() { return PositionMonitor1(Input); } /// <summary> /// Enter the description of your new custom indicator here /// </summary> /// <returns></returns> public PositionMonitor1 PositionMonitor1(Data.IDataSeries input) { if (cachePositionMonitor1 != null) for (int idx = 0; idx < cachePositionMonitor1.Length; idx++) if (cachePositionMonitor1[idx].EqualsInput(input)) return cachePositionMonitor1[idx]; lock (checkPositionMonitor1) { if (cachePositionMonitor1 != null) for (int idx = 0; idx < cachePositionMonitor1.Length; idx++) if (cachePositionMonitor1[idx].EqualsInput(input)) return cachePositionMonitor1[idx]; PositionMonitor1 indicator = new PositionMonitor1(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; Indicators.Add(indicator); indicator.SetUp(); PositionMonitor1[] tmp = new PositionMonitor1[cachePositionMonitor1 == null ? 1 : cachePositionMonitor1.Length + 1]; if (cachePositionMonitor1 != null) cachePositionMonitor1.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cachePositionMonitor1 = tmp; return indicator; } } } } // This namespace holds all market analyzer column definitions and is required. Do not change it. namespace NinjaTrader.MarketAnalyzer { public partial class Column : ColumnBase { /// <summary> /// Enter the description of your new custom indicator here /// </summary> /// <returns></returns> [Gui.Design.WizardCondition("Indicator")] public Indicator.PositionMonitor1 PositionMonitor1() { return _indicator.PositionMonitor1(Input); } /// <summary> /// Enter the description of your new custom indicator here /// </summary> /// <returns></returns> public Indicator.PositionMonitor1 PositionMonitor1(Data.IDataSeries input) { return _indicator.PositionMonitor1(input); } } } // This namespace holds all strategies and is required. Do not change it. namespace NinjaTrader.Strategy { public partial class Strategy : StrategyBase { /// <summary> /// Enter the description of your new custom indicator here /// </summary> /// <returns></returns> [Gui.Design.WizardCondition("Indicator")] public Indicator.PositionMonitor1 PositionMonitor1() { return _indicator.PositionMonitor1(Input); } /// <summary> /// Enter the description of your new custom indicator here /// </summary> /// <returns></returns> public Indicator.PositionMonitor1 PositionMonitor1(Data.IDataSeries input) { 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.PositionMonitor1(input); } } } #endregion
Comment