Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

Help Modding an indicator please.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Help Modding an indicator please.

    Hi please can someone help me mod the code below

    What i would like to do is colour the bar to blue in realtime if it goes -8 or below

    Thanks in advance

    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.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>
        /// Enter the description of your new custom indicator here
        /// </summary>
        [Description("Enter the description of your new custom indicator here")]
        [Gui.Design.DisplayName("a")]
        public class TiGvaluechart : Indicator
        {
            #region Variables
            // Wizard generated variables
            // User defined variables (add any user defined variables below)
            #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(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Dot, "Hi"));
                Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Dot, "Lo"));
                
    			Add(new Line(Color.FromKnownColor(KnownColor.Red), 12, "TopTop"));
    			Add(new Line(Color.FromKnownColor(KnownColor.Red), 8, "Top"));
                Add(new Line(Color.FromKnownColor(KnownColor.Blue), -8, "Bottom"));
    			Add(new Line(Color.FromKnownColor(KnownColor.Gray), 4, "MidTop"));
    			Add(new Line(Color.FromKnownColor(KnownColor.Black), 0, "Middle"));
                Add(new Line(Color.FromKnownColor(KnownColor.Gray), -4, "MidBottom"));
    			Add(new Line(Color.FromKnownColor(KnownColor.Blue), -12, "TopBTop"));
    			
                CalculateOnBarClose	= false;
                Overlay				= false;
                PriceTypeSupported	= false;
    			DrawOnPricePanel = false;
            }
    		/// <summary>
            /// This method is used to configure the indicator and is called once before any bar data is loaded.
            /// </summary>
    		private double VolatilityUnit() 
    		{ 
        		return AverageRange() * .2;
    		}
    		/// <summary>
            /// This method is used to configure the indicator and is called once before any bar data is loaded.
            /// </summary>
    		private double AverageRange() 
    		{ 
        		double AvgHi = SMA(High, 5)[0]; 
    			double AvgLo = SMA(Low, 5)[0]; 
    			return AvgHi - AvgLo; 
    			
    		}
    		/// <summary>
            /// This method is used to configure the indicator and is called once before any bar data is loaded.
            /// </summary>
    		private double AverageMedian() 
    		{ 
        		double AvgHi = SMA(High, 5)[0]; 
    	        double AvgLo = SMA(Low, 5)[0]; 
    			return (AvgHi + AvgLo) / 2; 
    		}
    		/// <summary>
            /// This method is used to configure the indicator and is called once before any bar data is loaded.
            /// </summary>
    		private double RelativeHi() 
    		{ 
        		return  (High[0] - AverageMedian()) ; 
    		}
    		/// <summary>
            /// This method is used to configure the indicator and is called once before any bar data is loaded.
            /// </summary>
    		private double RelativeLo() 
    		{ 
        		return  (Low[0] - AverageMedian()) ; 
    		}
    		private double ValueHi()
    		{
    			return RelativeHi() / VolatilityUnit();
    		}
    		private double ValueLo()
    		{
    			return RelativeLo() / VolatilityUnit();
    		}
    		
    	    
    		/// <summary>
            /// Called on each bar update event (incoming tick)
            /// </summary>
            protected override void OnBarUpdate()
            {
                // Use this method for calculating your indicator values. Assign a value to each
                // plot below by replacing 'Close[0]' with your own formula.
              				
    		  
    			Hi.Set(ValueHi());
                Lo.Set(ValueLo());
            	DrawLine("Tag1" + CurrentBar, false, 0, ValueHi(), 0, ValueLo(), Color.Gray, DashStyle.Solid,4);
    
    
    		}	
    
            #region Properties
            [Browsable(false)]	// this line prevents the data series from being displayed in the indicator properties dialog, do not remove
            [XmlIgnore()]		// this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove
            public DataSeries Hi
            {
                get { return Values[0]; }
            }
    
            [Browsable(false)]	// this line prevents the data series from being displayed in the indicator properties dialog, do not remove
            [XmlIgnore()]		// this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove
            public DataSeries Lo
            {
                get { return Values[1]; }
            }
    
            #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 TiGvaluechart[] cacheTiGvaluechart = null;
    
            private static TiGvaluechart checkTiGvaluechart = new TiGvaluechart();
    
            /// <summary>
            /// Enter the description of your new custom indicator here
            /// </summary>
            /// <returns></returns>
            public TiGvaluechart TiGvaluechart()
            {
                return TiGvaluechart(Input);
            }
    
            /// <summary>
            /// Enter the description of your new custom indicator here
            /// </summary>
            /// <returns></returns>
            public TiGvaluechart TiGvaluechart(Data.IDataSeries input)
            {
                if (cacheTiGvaluechart != null)
                    for (int idx = 0; idx < cacheTiGvaluechart.Length; idx++)
                        if (cacheTiGvaluechart[idx].EqualsInput(input))
                            return cacheTiGvaluechart[idx];
    
                lock (checkTiGvaluechart)
                {
                    if (cacheTiGvaluechart != null)
                        for (int idx = 0; idx < cacheTiGvaluechart.Length; idx++)
                            if (cacheTiGvaluechart[idx].EqualsInput(input))
                                return cacheTiGvaluechart[idx];
    
                    TiGvaluechart indicator = new TiGvaluechart();
                    indicator.BarsRequired = BarsRequired;
                    indicator.CalculateOnBarClose = CalculateOnBarClose;
    #if NT7
                    indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
                    indicator.MaximumBarsLookBack = MaximumBarsLookBack;
    #endif
                    indicator.Input = input;
                    Indicators.Add(indicator);
                    indicator.SetUp();
    
                    TiGvaluechart[] tmp = new TiGvaluechart[cacheTiGvaluechart == null ? 1 : cacheTiGvaluechart.Length + 1];
                    if (cacheTiGvaluechart != null)
                        cacheTiGvaluechart.CopyTo(tmp, 0);
                    tmp[tmp.Length - 1] = indicator;
                    cacheTiGvaluechart = 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.TiGvaluechart TiGvaluechart()
            {
                return _indicator.TiGvaluechart(Input);
            }
    
            /// <summary>
            /// Enter the description of your new custom indicator here
            /// </summary>
            /// <returns></returns>
            public Indicator.TiGvaluechart TiGvaluechart(Data.IDataSeries input)
            {
                return _indicator.TiGvaluechart(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.TiGvaluechart TiGvaluechart()
            {
                return _indicator.TiGvaluechart(Input);
            }
    
            /// <summary>
            /// Enter the description of your new custom indicator here
            /// </summary>
            /// <returns></returns>
            public Indicator.TiGvaluechart TiGvaluechart(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.TiGvaluechart(input);
            }
        }
    }
    #endregion

Latest Posts

Collapse

Topics Statistics Last Post
Started by habeebft, Today, 07:27 AM
1 response
11 views
0 likes
Last Post NinjaTrader_ChristopherS  
Started by AveryFlynn, Today, 04:57 AM
1 response
11 views
0 likes
Last Post NinjaTrader_Erick  
Started by Max238, Today, 01:28 AM
4 responses
37 views
0 likes
Last Post Max238
by Max238
 
Started by r68cervera, Today, 05:29 AM
1 response
9 views
0 likes
Last Post NinjaTrader_ChelseaB  
Started by geddyisodin, Today, 05:20 AM
1 response
11 views
0 likes
Last Post NinjaTrader_Gaby  
Working...
X