Please could you tell me how to fix that?
My code:
#region Using declarations using System; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.ComponentModel; using System.Xml.Serialization; using NinjaTrader.Data; using NinjaTrader.Gui.Chart; #endregion // This namespace holds all indicators and is required. Do not change it. namespace NinjaTrader.Indicator { /// <summary> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> [Description("Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc).")] public class VolLoBo : Indicator { #region Variables private int VolRelev1 = 200; private Color ColorVolRel1 = Color.Green; private int VolRelev2 = 320; private Color ColorVolRel2 = Color.Red; #endregion /// <summary> /// This method is used to configure the indicator and is called once before any bar data is loaded. /// </summary> protected override void Initialize() { Add(new Plot(new Pen(Color.Blue, 2), PlotStyle.Bar, "Volume")); Add(new Line(Color.DarkGray, 0, "Zero line")); } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { Value.Set(Volume[0]); if (Volume[0] >= VolRelev1) { PlotColors[0][0] = ColorVolRel1; } if (Volume[0] >= VolRelev2) { PlotColors[0][0] = ColorVolRel2; } } #region Properties [XmlIgnore()] [Description("Color V. Relevante")] [GridCategory("Parameters")] public Color Color_V_Relevante { get { return ColorVolRel1; } set { ColorVolRel1 = value; } } [Browsable(false)] public string ColorVolRel1Serializable { get { return NinjaTrader.Gui.Design.SerializableColor.ToString(ColorVolRel1); } set { ColorVolRel1 = NinjaTrader.Gui.Design.SerializableColor.FromString(value); } } [XmlIgnore()] [Description("Color Super Volumen")] [GridCategory("Parameters")] public Color Color_SuperVolumen { get { return ColorVolRel2; } set { ColorVolRel2 = value; } } [Browsable(false)] public string ColorVolRel2Serializable { get { return NinjaTrader.Gui.Design.SerializableColor.ToString(ColorVolRel2); } set { ColorVolRel2 = NinjaTrader.Gui.Design.SerializableColor.FromString(value); } } [XmlIgnore()] [Description("Valor Volumen Relevante")] [GridCategory("Parameters")] public int V_Relevante { get { return VolRelev1; } set { VolRelev1 = value; } } [XmlIgnore()] [Description("Valor Volumen Relevante")] [GridCategory("Parameters")] public int SuperVolumen { get { return VolRelev2; } set { VolRelev2 = value; } } #endregion } } #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 VolLoBo[] cacheVolLoBo = null; private static VolLoBo checkVolLoBo = new VolLoBo(); /// <summary> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> /// <returns></returns> public VolLoBo VolLoBo(Color color_SuperVolumen, Color color_V_Relevante, int superVolumen, int v_Relevante) { return VolLoBo(Input, color_SuperVolumen, color_V_Relevante, superVolumen, v_Relevante); } /// <summary> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> /// <returns></returns> public VolLoBo VolLoBo(Data.IDataSeries input, Color color_SuperVolumen, Color color_V_Relevante, int superVolumen, int v_Relevante) { if (cacheVolLoBo != null) for (int idx = 0; idx < cacheVolLoBo.Length; idx++) if (cacheVolLoBo[idx].Color_SuperVolumen == color_SuperVolumen && cacheVolLoBo[idx].Color_V_Relevante == color_V_Relevante && cacheVolLoBo[idx].SuperVolumen == superVolumen && cacheVolLoBo[idx].V_Relevante == v_Relevante && cacheVolLoBo[idx].EqualsInput(input)) return cacheVolLoBo[idx]; lock (checkVolLoBo) { checkVolLoBo.Color_SuperVolumen = color_SuperVolumen; color_SuperVolumen = checkVolLoBo.Color_SuperVolumen; checkVolLoBo.Color_V_Relevante = color_V_Relevante; color_V_Relevante = checkVolLoBo.Color_V_Relevante; checkVolLoBo.SuperVolumen = superVolumen; superVolumen = checkVolLoBo.SuperVolumen; checkVolLoBo.V_Relevante = v_Relevante; v_Relevante = checkVolLoBo.V_Relevante; if (cacheVolLoBo != null) for (int idx = 0; idx < cacheVolLoBo.Length; idx++) if (cacheVolLoBo[idx].Color_SuperVolumen == color_SuperVolumen && cacheVolLoBo[idx].Color_V_Relevante == color_V_Relevante && cacheVolLoBo[idx].SuperVolumen == superVolumen && cacheVolLoBo[idx].V_Relevante == v_Relevante && cacheVolLoBo[idx].EqualsInput(input)) return cacheVolLoBo[idx]; VolLoBo indicator = new VolLoBo(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; indicator.Color_SuperVolumen = color_SuperVolumen; indicator.Color_V_Relevante = color_V_Relevante; indicator.SuperVolumen = superVolumen; indicator.V_Relevante = v_Relevante; Indicators.Add(indicator); indicator.SetUp(); VolLoBo[] tmp = new VolLoBo[cacheVolLoBo == null ? 1 : cacheVolLoBo.Length + 1]; if (cacheVolLoBo != null) cacheVolLoBo.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cacheVolLoBo = 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> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> /// <returns></returns> [Gui.Design.WizardCondition("Indicator")] public Indicator.VolLoBo VolLoBo(Color color_SuperVolumen, Color color_V_Relevante, int superVolumen, int v_Relevante) { return _indicator.VolLoBo(Input, color_SuperVolumen, color_V_Relevante, superVolumen, v_Relevante); } /// <summary> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> /// <returns></returns> public Indicator.VolLoBo VolLoBo(Data.IDataSeries input, Color color_SuperVolumen, Color color_V_Relevante, int superVolumen, int v_Relevante) { return _indicator.VolLoBo(input, color_SuperVolumen, color_V_Relevante, superVolumen, v_Relevante); } } } // This namespace holds all strategies and is required. Do not change it. namespace NinjaTrader.Strategy { public partial class Strategy : StrategyBase { /// <summary> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> /// <returns></returns> [Gui.Design.WizardCondition("Indicator")] public Indicator.VolLoBo VolLoBo(Color color_SuperVolumen, Color color_V_Relevante, int superVolumen, int v_Relevante) { return _indicator.VolLoBo(Input, color_SuperVolumen, color_V_Relevante, superVolumen, v_Relevante); } /// <summary> /// Volume is simply the number of shares (or contracts) traded during a specified time frame (e.g. hour, day, week, month, etc). /// </summary> /// <returns></returns> public Indicator.VolLoBo VolLoBo(Data.IDataSeries input, Color color_SuperVolumen, Color color_V_Relevante, int superVolumen, int v_Relevante) { 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.VolLoBo(input, color_SuperVolumen, color_V_Relevante, superVolumen, v_Relevante); } } } #endregion
Comment