http://imgur.com/tLRR2dc
here are the code that I want to insert in my indicator
DrawOnPricePanel = true; // Initialize section DrawText("CurrentVolume", true, Convert.ToString(Volume[0]), 0, High[0], 20, Color.Red, ChartControl.Font, StringAlignment.Near, Color.Transparent, Color.Transparent, 0);
#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; #endregion // This namespace holds all indicators and is required. Do not change it. namespace NinjaTrader.Indicator { /// <summary> /// Draws Horizontal Line or Ray at current price /// </summary> [Description("Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53")] public class PriceLineWH2 : Indicator { #region Variables // Wizard generated variables private Color lineColor = Color.Cyan; private int lineWidth = 2; private DashStyle lineStyle = DashStyle.Dot; private bool useLine = true; private int rayLength = 5; #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() { CalculateOnBarClose = false; Overlay = true; AutoScale = false; DrawOnPricePanel = false; } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { if (rayLength > 20) rayLength = 20; if (useLine) DrawHorizontalLine("Currprice", false, Input[0], lineColor, lineStyle, lineWidth); else if (CurrentBar > 50) DrawRay("CurrRay", false, rayLength, Input[0], 0, Input[0], lineColor, lineStyle, lineWidth); } #region Properties [Description("Use Line or Ray....True = Long Horizontal Line ... False = Short 'ray' with variable length")] [Category("Plots")] [Gui.Design.DisplayName ("1. Use Line or Ray")] public bool UseLine { get { return useLine; } set { useLine = value; } } [Description("LineStyle for Price Line")] [Category("Plots")] [Gui.Design.DisplayName ("2. Price Line Style")] public DashStyle LineStyle { get { return lineStyle; } set { lineStyle = value; } } [XmlIgnore()] [Description("Color of the Price Line")] [Category("Plots")] [Gui.Design.DisplayName ("3. Price Line Color")] public Color LineColor { get { return lineColor; } set { lineColor = value; } } [Browsable(false)] public string LineColorSerialize { get { return NinjaTrader.Gui.Design.SerializableColor.ToString(lineColor); }//SerializableColor set { lineColor = NinjaTrader.Gui.Design.SerializableColor.FromString(value); } } [Description("Width of the Price Line")] [Category("Plots")] [Gui.Design.DisplayName ("4. Price Line Width")] public int LineWidth { get { return lineWidth; } set { lineWidth = Math.Max(1, value); } } [Description("Line length....(for Ray only)....# of bars from right edge NOTE: Only works if Use Line = false")] [Category("Plots")] [Gui.Design.DisplayName ("5. Line Length for Ray")] public int RayLength { get { return rayLength; } set { rayLength = Math.Max(1, 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 PriceLineWH2[] cachePriceLineWH2 = null; private static PriceLineWH2 checkPriceLineWH2 = new PriceLineWH2(); /// <summary> /// Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53 /// </summary> /// <returns></returns> public PriceLineWH2 PriceLineWH2() { return PriceLineWH2(Input); } /// <summary> /// Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53 /// </summary> /// <returns></returns> public PriceLineWH2 PriceLineWH2(Data.IDataSeries input) { if (cachePriceLineWH2 != null) for (int idx = 0; idx < cachePriceLineWH2.Length; idx++) if (cachePriceLineWH2[idx].EqualsInput(input)) return cachePriceLineWH2[idx]; lock (checkPriceLineWH2) { if (cachePriceLineWH2 != null) for (int idx = 0; idx < cachePriceLineWH2.Length; idx++) if (cachePriceLineWH2[idx].EqualsInput(input)) return cachePriceLineWH2[idx]; PriceLineWH2 indicator = new PriceLineWH2(); indicator.BarsRequired = BarsRequired; indicator.CalculateOnBarClose = CalculateOnBarClose; #if NT7 indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256; indicator.MaximumBarsLookBack = MaximumBarsLookBack; #endif indicator.Input = input; Indicators.Add(indicator); indicator.SetUp(); PriceLineWH2[] tmp = new PriceLineWH2[cachePriceLineWH2 == null ? 1 : cachePriceLineWH2.Length + 1]; if (cachePriceLineWH2 != null) cachePriceLineWH2.CopyTo(tmp, 0); tmp[tmp.Length - 1] = indicator; cachePriceLineWH2 = 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> /// Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53 /// </summary> /// <returns></returns> [Gui.Design.WizardCondition("Indicator")] public Indicator.PriceLineWH2 PriceLineWH2() { return _indicator.PriceLineWH2(Input); } /// <summary> /// Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53 /// </summary> /// <returns></returns> public Indicator.PriceLineWH2 PriceLineWH2(Data.IDataSeries input) { return _indicator.PriceLineWH2(input); } } } // This namespace holds all strategies and is required. Do not change it. namespace NinjaTrader.Strategy { public partial class Strategy : StrategyBase { /// <summary> /// Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53 /// </summary> /// <returns></returns> [Gui.Design.WizardCondition("Indicator")] public Indicator.PriceLineWH2 PriceLineWH2() { return _indicator.PriceLineWH2(Input); } /// <summary> /// Horizontal Line at Current Price....(Ver 2.0 09/09/2010) revised by Photog53 /// </summary> /// <returns></returns> public Indicator.PriceLineWH2 PriceLineWH2(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.PriceLineWH2(input); } } } #endregion
regards
Comment