NexusFi: Find Your Edge


Home Menu

 





H-igh L-ow C-lose bars


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one cory with 7 posts (3 thanks)
    2. looks_two danjuma with 7 posts (0 thanks)
    3. looks_3 arcade with 2 posts (0 thanks)
    4. looks_4 gio5959 with 2 posts (1 thanks)
      Best Posters
    1. looks_one tarantino with 3 thanks per post
    2. looks_two pawnbroker with 3 thanks per post
    3. looks_3 trendisyourfriend with 2 thanks per post
    4. looks_4 cory with 0.4 thanks per post
    1. trending_up 14,698 views
    2. thumb_up 12 thanks given
    3. group 11 followers
    1. forum 30 posts
    2. attach_file 9 attachments




 
Search this Thread

H-igh L-ow C-lose bars

  #21 (permalink)
 danjuma 
London, UK
 
Experience: Beginner
Platform: NinjaTrader, IB TWS
Broker: IB, Kinetic
Trading: Stocks, Forex
Posts: 98 since Nov 2011
Thanks Given: 47
Thanks Received: 16


cory View Post
after ( note the left bracket)
......
protected override void OnBarUpdate()
{

add this;

if(Close[0]>Open[0])
{
PlotColors[0][0] = Color.Blue;
PlotColors[1][0] = Color.Blue;
PlotColors[2][0] = Color.Blue;
PlotColors[3][0] = Color.Blue;
}
if(Close[0]<Open[0])
{
PlotColors[0][0] = Color.Red;
PlotColors[1][0] = Color.Red;
PlotColors[2][0] = Color.Red;
PlotColors[3][0] = Color.Red;
}
else
{
PlotColors[0][0] = Color.Gray;
PlotColors[1][0] = Color.Gray;
PlotColors[2][0] = Color.Gray;
PlotColors[3][0] = Color.Gray;
}


Hello cory,

Thank you very much for your response/assistance. I have followed your suggestion, however , it's doing doing what I want. Below is the amended code following your suggestion, is there something I have done wrong?

Many thanks
Dan

 
Code
//
// Copyright (C) 2006, NinjaTrader LLC <www.ninjatrader.com>.
// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release.
//
// Modified by MrJoe
//   14.may.2011 - first release
//   15.may.2011 - automatic resize of the closing tick line 
//

#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>
    /// HLC Bars for VSA.
    /// </summary>
    [Description("HLC Bars for VSA")]
    public class KayHLCBars : Indicator
    {
        #region Variables
        private Color           savePenColor         = Color.Transparent;
        private Color           savePen2Color        = Color.Transparent;
        private Color           saveDownColor        = Color.Empty;
        private Color           saveUpColor          = Color.Empty;
        private Color           m_barColor           = Color.Red;
        private Pen				m_barPen		     = null;
		private int             m_barWidth           = 0;
        #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.Red, PlotStyle.Line, "MOpen"));
            Add(new Plot(Color.Red, PlotStyle.Line, "MHigh"));
            Add(new Plot(Color.Red, PlotStyle.Line, "MLow"));
            Add(new Plot(Color.Red, PlotStyle.Line, "MClose"));
			ZOrder				= 1;
            PaintPriceMarkers   = false;
            CalculateOnBarClose = false;
            PlotsConfigurable   = false;
            Overlay             = true;
        }

        /// <summary>
        /// Called on each bar update event (incoming tick)
        /// </summary>
        protected override void OnBarUpdate()
        {
			
			if(Close[0]>Open[0])
{
PlotColors[0][0] = Color.Blue;
PlotColors[1][0] = Color.Blue;
PlotColors[2][0] = Color.Blue;
PlotColors[3][0] = Color.Blue;
}
if(Close[0]<Open[0])
{
PlotColors[0][0] = Color.Red;
PlotColors[1][0] = Color.Red;
PlotColors[2][0] = Color.Red;
PlotColors[3][0] = Color.Red;
}
else
{
PlotColors[0][0] = Color.Gray;
PlotColors[1][0] = Color.Gray;
PlotColors[2][0] = Color.Gray;
PlotColors[3][0] = Color.Gray;
}
			
			
		
			MClose.Set(Close[0]);
            MHigh.Set(High[0]);
            MLow.Set(Low[0]);
        }

        #region Properties


        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MOpen
        {
            get { return Values[0]; }
        }

        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MHigh
        {
            get { return Values[1]; }
        }

        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MLow
        {
            get { return Values[2]; }
        }

        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MClose
        {
            get { return Values[3]; }
        }	
		
        [Description("Forced HLC bar width (0 = use Data Series settings).")]
        [Category("Settings")]
        [Gui.Design.DisplayNameAttribute("Bar width")]
        public int HLCBarWidth
        {
            get { return m_barWidth; }
            set { m_barWidth = value; }
        }

        [XmlIgnore]
        [Description("Color of bars.")]
        [Category("Settings")]
        [Gui.Design.DisplayNameAttribute("Color of bars")]
        public Color HLCBarColor
        {
            get { return m_barColor; }
            set { m_barColor = value; }
        }

        [Browsable(false)]
        public string HLCBarColorSerialize
        {
            get { return Gui.Design.SerializableColor.ToString(m_barColor); }
            set { m_barColor = Gui.Design.SerializableColor.FromString(value); }
        }


        #endregion

		private int GetBarWidth()
		{
			if ( m_barWidth != 0 ) {
				return m_barWidth;
			}
			else {
				return Bars.BarsData.ChartStyle.BarWidthUI;
			}
		}
		
        protected override void OnStartUp()
        {
            if (ChartControl == null || Bars == null)
                return;
            savePenColor                        = Bars.BarsData.ChartStyle.Pen.Color;
            savePen2Color                       = Bars.BarsData.ChartStyle.Pen2.Color;
            saveUpColor                         = Bars.BarsData.ChartStyle.UpColor;
            saveDownColor                       = Bars.BarsData.ChartStyle.DownColor;
            Bars.BarsData.ChartStyle.Pen.Color  = Color.Empty;
            Bars.BarsData.ChartStyle.Pen2.Color = Color.Empty;
            Bars.BarsData.ChartStyle.DownColor  = Color.Empty;
            Bars.BarsData.ChartStyle.UpColor    = Color.Empty;
            m_barPen                            = new Pen(m_barColor, GetBarWidth());
       }

        protected override void OnTermination()
        {
            if (ChartControl != null && Bars != null)
            {
                Bars.BarsData.ChartStyle.Pen.Color = savePenColor;
                Bars.BarsData.ChartStyle.Pen2.Color = savePen2Color;
                Bars.BarsData.ChartStyle.UpColor = saveUpColor;
                Bars.BarsData.ChartStyle.DownColor = saveDownColor;
            }

            if (m_barPen != null) m_barPen.Dispose();
       }

        public override void Plot(Graphics graphics, Rectangle bounds, double min, double max)
        {
			if (Bars == null || ChartControl == null)
                return;

			if ( GetBarWidth() != m_barPen.Width ) {
				m_barPen.Dispose();
				m_barPen = new Pen(m_barColor, GetBarWidth());
			}
			
			int tickWidth = Math.Max(3, 2 + 3 * (GetBarWidth() - 1));
			
            for (int idx = FirstBarIndexPainted; idx <= LastBarIndexPainted; idx++)
            {
                if (idx - Displacement < 0 || idx - Displacement >= BarsArray[0].Count || (!ChartControl.ShowBarsRequired && idx - Displacement < BarsRequired))
                    continue;
                double valH = MHigh.Get(idx);
                double valL = MLow.Get(idx);
                double valC = MClose.Get(idx);
                int x = ChartControl.GetXByBarIdx(BarsArray[0], idx);
                int y2 = ChartControl.GetYByValue(this, valH);
                int y3 = ChartControl.GetYByValue(this, valL);
                int y4 = ChartControl.GetYByValue(this, valC);

                graphics.DrawLine(m_barPen, x, y2, x, y3);
				graphics.DrawLine(m_barPen, x, y4, x + tickWidth, y4);
            }
        }

    }
}

#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 KayHLCBars[] cacheKayHLCBars = null;

        private static KayHLCBars checkKayHLCBars = new KayHLCBars();

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public KayHLCBars KayHLCBars()
        {
            return KayHLCBars(Input);
        }

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public KayHLCBars KayHLCBars(Data.IDataSeries input)
        {
            if (cacheKayHLCBars != null)
                for (int idx = 0; idx < cacheKayHLCBars.Length; idx++)
                    if (cacheKayHLCBars[idx].EqualsInput(input))
                        return cacheKayHLCBars[idx];

            lock (checkKayHLCBars)
            {
                if (cacheKayHLCBars != null)
                    for (int idx = 0; idx < cacheKayHLCBars.Length; idx++)
                        if (cacheKayHLCBars[idx].EqualsInput(input))
                            return cacheKayHLCBars[idx];

                KayHLCBars indicator = new KayHLCBars();
                indicator.BarsRequired = BarsRequired;
                indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
                indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
                indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
                indicator.Input = input;
                Indicators.Add(indicator);
                indicator.SetUp();

                KayHLCBars[] tmp = new KayHLCBars[cacheKayHLCBars == null ? 1 : cacheKayHLCBars.Length + 1];
                if (cacheKayHLCBars != null)
                    cacheKayHLCBars.CopyTo(tmp, 0);
                tmp[tmp.Length - 1] = indicator;
                cacheKayHLCBars = 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>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        [Gui.Design.WizardCondition("Indicator")]
        public Indicator.KayHLCBars KayHLCBars()
        {
            return _indicator.KayHLCBars(Input);
        }

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public Indicator.KayHLCBars KayHLCBars(Data.IDataSeries input)
        {
            return _indicator.KayHLCBars(input);
        }
    }
}

// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
    public partial class Strategy : StrategyBase
    {
        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        [Gui.Design.WizardCondition("Indicator")]
        public Indicator.KayHLCBars KayHLCBars()
        {
            return _indicator.KayHLCBars(Input);
        }

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public Indicator.KayHLCBars KayHLCBars(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.KayHLCBars(input);
        }
    }
}
#endregion

Reply With Quote

Can you help answer these questions
from other members on NexusFi?
What broker to use for trading palladium futures
Commodities
REcommedations for programming help
Sierra Chart
About a successful futures trader who didnt know anythin …
Psychology and Money Management
MC PL editor upgrade
MultiCharts
ZombieSqueeze
Platforms and Indicators
 
  #22 (permalink)
 
cory's Avatar
 cory 
virginia
 
Experience: Intermediate
Platform: ninja
Trading: NQ
Posts: 6,098 since Jun 2009
Thanks Given: 877
Thanks Received: 8,090


danjuma View Post
Hello cory,

Thank you very much for your response/assistance. I have followed your suggestion, however , it's doing doing what I want. Below is the amended code following your suggestion, is there something I have done wrong?

Many thanks
Dan

what do you see, all red?, all gray? all blue?

Reply With Quote
  #23 (permalink)
 danjuma 
London, UK
 
Experience: Beginner
Platform: NinjaTrader, IB TWS
Broker: IB, Kinetic
Trading: Stocks, Forex
Posts: 98 since Nov 2011
Thanks Given: 47
Thanks Received: 16



cory View Post
what do you see, all red?, all gray? all blue?

Sorry for not getting back in time (in UK and was bed time ). I see all red. Thanks

Reply With Quote
  #24 (permalink)
 
cory's Avatar
 cory 
virginia
 
Experience: Intermediate
Platform: ninja
Trading: NQ
Posts: 6,098 since Jun 2009
Thanks Given: 877
Thanks Received: 8,090

I see, please go back to the original and add these;

---------------------------------------------------------------------------------
protected override void OnBarUpdate()
{

MClose.Set(Close[0]);
MHigh.Set(High[0]);
MLow.Set(Low[0]);


MOpen.Set(Open[0]); // add************

}
----------------------------------------------------------------------------------
{
if (idx - Displacement < 0 || idx - Displacement >= BarsArray[0].Count || (!ChartControl.ShowBarsRequired && idx - Displacement < BarsRequired))
continue;
double valH = MHigh.Get(idx);
double valL = MLow.Get(idx);
double valC = MClose.Get(idx);

double valO = MOpen.Get(idx); // add*************

int x = ChartControl.GetXByBarIdx(BarsArray[0], idx);
int y2 = ChartControl.GetYByValue(this, valH);
int y3 = ChartControl.GetYByValue(this, valL);
int y4 = ChartControl.GetYByValue(this, valC);


// add begin**************

if(valC>valO)
m_barColor = Color.Blue;
else
if(valC<valO)
m_barColor = Color.Red;
else
m_barColor = Color.Gray;

m_barPen = new Pen(m_barColor, GetBarWidth());

// add end****************

graphics.DrawLine(m_barPen, x, y2, x, y3);
graphics.DrawLine(m_barPen, x, y4, x + tickWidth, y4);
}
...

-------------------------------------------------------------------------------------------------------------------

Reply With Quote
  #25 (permalink)
 danjuma 
London, UK
 
Experience: Beginner
Platform: NinjaTrader, IB TWS
Broker: IB, Kinetic
Trading: Stocks, Forex
Posts: 98 since Nov 2011
Thanks Given: 47
Thanks Received: 16

Firstly cory, thank you very much for taking time out to help with this. I have followed your suggestion above ( I did change the text 'Blue' to 'Green', to get green bars). It seems to work, except that for some reason, one of the bars still came out gray. I have attached an image below, as well as a copy of my code.





 
Code
//
// Copyright (C) 2006, NinjaTrader LLC <www.ninjatrader.com>.
// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release.
//
// Modified by MrJoe
//   14.may.2011 - first release
//   15.may.2011 - automatic resize of the closing tick line 
//

#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>
    /// HLC Bars for VSA.
    /// </summary>
    [Description("HLC Bars for VSA")]
    public class KayHLCBars : Indicator
    {
        #region Variables
        private Color           savePenColor         = Color.Transparent;
        private Color           savePen2Color        = Color.Transparent;
        private Color           saveDownColor        = Color.Empty;
        private Color           saveUpColor          = Color.Empty;
        private Color           m_barColor           = Color.Gray;
        private Pen				m_barPen		     = null;
		private int             m_barWidth           = 0;
        #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.Gray, PlotStyle.Line, "MOpen"));
            Add(new Plot(Color.Gray, PlotStyle.Line, "MHigh"));
            Add(new Plot(Color.Gray, PlotStyle.Line, "MLow"));
            Add(new Plot(Color.Gray, PlotStyle.Line, "MClose"));
			ZOrder				= 1;
            PaintPriceMarkers   = false;
            CalculateOnBarClose = false;
            PlotsConfigurable   = false;
            Overlay             = true;
        }

        /// <summary>
        /// Called on each bar update event (incoming tick)
        /// </summary>
        protected override void OnBarUpdate()
        {
			MClose.Set(Close[0]);
            MHigh.Set(High[0]);
            MLow.Set(Low[0]);
			
			MOpen.Set(Open[0]); //addition from cory
			
        }

        #region Properties


        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MOpen
        {
            get { return Values[0]; }
        }

        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MHigh
        {
            get { return Values[1]; }
        }

        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MLow
        {
            get { return Values[2]; }
        }

        [Browsable(false)]
        [XmlIgnore]
        public DataSeries MClose
        {
            get { return Values[3]; }
        }	
		
        [Description("Forced HLC bar width (0 = use Data Series settings).")]
        [Category("Settings")]
        [Gui.Design.DisplayNameAttribute("Bar width")]
        public int HLCBarWidth
        {
            get { return m_barWidth; }
            set { m_barWidth = value; }
        }

        [XmlIgnore]
        [Description("Color of bars.")]
        [Category("Settings")]
        [Gui.Design.DisplayNameAttribute("Color of bars")]
        public Color HLCBarColor
        {
            get { return m_barColor; }
            set { m_barColor = value; }
        }

        [Browsable(false)]
        public string HLCBarColorSerialize
        {
            get { return Gui.Design.SerializableColor.ToString(m_barColor); }
            set { m_barColor = Gui.Design.SerializableColor.FromString(value); }
        }


        #endregion

		private int GetBarWidth()
		{
			if ( m_barWidth != 0 ) {
				return m_barWidth;
			}
			else {
				return Bars.BarsData.ChartStyle.BarWidthUI;
			}
		}
		
        protected override void OnStartUp()
        {
            if (ChartControl == null || Bars == null)
                return;
            savePenColor                        = Bars.BarsData.ChartStyle.Pen.Color;
            savePen2Color                       = Bars.BarsData.ChartStyle.Pen2.Color;
            saveUpColor                         = Bars.BarsData.ChartStyle.UpColor;
            saveDownColor                       = Bars.BarsData.ChartStyle.DownColor;
            Bars.BarsData.ChartStyle.Pen.Color  = Color.Empty;
            Bars.BarsData.ChartStyle.Pen2.Color = Color.Empty;
            Bars.BarsData.ChartStyle.DownColor  = Color.Empty;
            Bars.BarsData.ChartStyle.UpColor    = Color.Empty;
            m_barPen                            = new Pen(m_barColor, GetBarWidth());
       }

        protected override void OnTermination()
        {
            if (ChartControl != null && Bars != null)
            {
                Bars.BarsData.ChartStyle.Pen.Color = savePenColor;
                Bars.BarsData.ChartStyle.Pen2.Color = savePen2Color;
                Bars.BarsData.ChartStyle.UpColor = saveUpColor;
                Bars.BarsData.ChartStyle.DownColor = saveDownColor;
            }

            if (m_barPen != null) m_barPen.Dispose();
       }

        public override void Plot(Graphics graphics, Rectangle bounds, double min, double max)
        {
			if (Bars == null || ChartControl == null)
                return;

			if ( GetBarWidth() != m_barPen.Width ) {
				m_barPen.Dispose();
				m_barPen = new Pen(m_barColor, GetBarWidth());
			}
			
			int tickWidth = Math.Max(3, 2 + 3 * (GetBarWidth() - 1));
			
            for (int idx = FirstBarIndexPainted; idx <= LastBarIndexPainted; idx++)
            {
                if (idx - Displacement < 0 || idx - Displacement >= BarsArray[0].Count || (!ChartControl.ShowBarsRequired && idx - Displacement < BarsRequired))
                    continue;
                double valH = MHigh.Get(idx);
                double valL = MLow.Get(idx);
                double valC = MClose.Get(idx);
				
				double valO = MOpen.Get(idx); //addition  from cory
				
				
				int x = ChartControl.GetXByBarIdx(BarsArray[0], idx);
                int y2 = ChartControl.GetYByValue(this, valH);
                int y3 = ChartControl.GetYByValue(this, valL);
                int y4 = ChartControl.GetYByValue(this, valC);
				
				
				
				//addition from cory - start
				if(valC>valO)
                m_barColor = Color.Green;
                else
                if(valC<valO)
                m_barColor = Color.Red;
                else
                m_barColor = Color.Gray;

                m_barPen = new Pen(m_barColor, GetBarWidth());

				//addition from cory - end
				

                graphics.DrawLine(m_barPen, x, y2, x, y3);
				graphics.DrawLine(m_barPen, x, y4, x + tickWidth, y4);
            }
        }

    }
}

#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 KayHLCBars[] cacheKayHLCBars = null;

        private static KayHLCBars checkKayHLCBars = new KayHLCBars();

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public KayHLCBars KayHLCBars()
        {
            return KayHLCBars(Input);
        }

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public KayHLCBars KayHLCBars(Data.IDataSeries input)
        {
            if (cacheKayHLCBars != null)
                for (int idx = 0; idx < cacheKayHLCBars.Length; idx++)
                    if (cacheKayHLCBars[idx].EqualsInput(input))
                        return cacheKayHLCBars[idx];

            lock (checkKayHLCBars)
            {
                if (cacheKayHLCBars != null)
                    for (int idx = 0; idx < cacheKayHLCBars.Length; idx++)
                        if (cacheKayHLCBars[idx].EqualsInput(input))
                            return cacheKayHLCBars[idx];

                KayHLCBars indicator = new KayHLCBars();
                indicator.BarsRequired = BarsRequired;
                indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
                indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
                indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
                indicator.Input = input;
                Indicators.Add(indicator);
                indicator.SetUp();

                KayHLCBars[] tmp = new KayHLCBars[cacheKayHLCBars == null ? 1 : cacheKayHLCBars.Length + 1];
                if (cacheKayHLCBars != null)
                    cacheKayHLCBars.CopyTo(tmp, 0);
                tmp[tmp.Length - 1] = indicator;
                cacheKayHLCBars = 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>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        [Gui.Design.WizardCondition("Indicator")]
        public Indicator.KayHLCBars KayHLCBars()
        {
            return _indicator.KayHLCBars(Input);
        }

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public Indicator.KayHLCBars KayHLCBars(Data.IDataSeries input)
        {
            return _indicator.KayHLCBars(input);
        }
    }
}

// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
    public partial class Strategy : StrategyBase
    {
        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        [Gui.Design.WizardCondition("Indicator")]
        public Indicator.KayHLCBars KayHLCBars()
        {
            return _indicator.KayHLCBars(Input);
        }

        /// <summary>
        /// HLC Bars for VSA
        /// </summary>
        /// <returns></returns>
        public Indicator.KayHLCBars KayHLCBars(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.KayHLCBars(input);
        }
    }
}
#endregion

Attached Thumbnails
Click image for larger version

Name:	HLC.jpg
Views:	282
Size:	197.7 KB
ID:	82996  
Reply With Quote
  #26 (permalink)
 
cory's Avatar
 cory 
virginia
 
Experience: Intermediate
Platform: ninja
Trading: NQ
Posts: 6,098 since Jun 2009
Thanks Given: 877
Thanks Received: 8,090


danjuma View Post
Firstly cory, thank you very much for taking time out to help with this. I have followed your suggestion above ( I did change the text 'Blue' to 'Green', to get green bars). It seems to work, except that for some reason, one of the bars still came out gray. I have attached an image below, as well as a copy of my code.

it comes from this line ;
......
else
m_barColor = Color.Gray;
.........


Note: Gray means Open = Close, if you don't like Gray just change it to any color you want.

Reply With Quote
  #27 (permalink)
 danjuma 
London, UK
 
Experience: Beginner
Platform: NinjaTrader, IB TWS
Broker: IB, Kinetic
Trading: Stocks, Forex
Posts: 98 since Nov 2011
Thanks Given: 47
Thanks Received: 16


cory View Post
it comes from this line ;
......
else
m_barColor = Color.Gray;
.........


Note: Gray means Open = Close, if you don't like Gray just change it to any color you want.

Ok, understood. Thank you very much for your assistance; much appreciated.

Reply With Quote
  #28 (permalink)
 arcade 
Beaumont Texas
 
Experience: Intermediate
Platform: Sierra Chart
Broker: AMP
Trading: futures
Posts: 14 since Jul 2012
Thanks Given: 9
Thanks Received: 5

I can't get this to work in NT7.
*******************************************
you need to down load ensign for that indicator first
1) import ensign zip
2) import flimbo zip
3) change your chart to HL type

Attached Thumbnails
Click image for larger version Name: YM 12-10 9_27_2010 (1 Min).jpg Views: 231 Size: 61.6 KB ID: 20964
Attached Files
File Type: zip NinjaScript.Ensign.cs.zip (10.4 KB, 68 views)
File Type: zip FLIMBO_HLC.zip (13.6 KB, 56 views)
*******************************************
I downloaded both files and imported via File/Utilities/Import and rebooted.
The Flimbo_HLC shows up as an indicator however the cs file does not show as a Strategy or an indicator.

When I look for the .cs file:

It is located in the folder: NinjaTrader7/bin/custom
Should it be in the folder: NinjaTrader7/bin/custom/Strategy

It is named: NinjaScript.Ensign.02.04.09.cs.cs
Should it be named: NinjaScript.Ensign.02.04.09.cs
There is an additional file named: NinjaScript.Ensign.02.04.09.cs.dll

Thanks for your help.
Arcade

Follow me on Twitter Visit my NexusFi Trade Journal Reply With Quote
  #29 (permalink)
 arcade 
Beaumont Texas
 
Experience: Intermediate
Platform: Sierra Chart
Broker: AMP
Trading: futures
Posts: 14 since Jul 2012
Thanks Given: 9
Thanks Received: 5

I can't get this to work in NT7.
*******************************************
you need to down load ensign for that indicator first
1) import ensign zip
2) import flimbo zip
3) change your chart to HL type

Attached Thumbnails
Click image for larger version Name: YM 12-10 9_27_2010 (1 Min).jpg Views: 231 Size: 61.6 KB ID: 20964
Attached Files
File Type: zip NinjaScript.Ensign.cs.zip (10.4 KB, 68 views)
File Type: zip FLIMBO_HLC.zip (13.6 KB, 56 views)
*******************************************
I downloaded both files and imported via File/Utilities/Import and rebooted.
The Flimbo_HLC shows up as an indicator however the cs file does not show as a Strategy or an indicator.

When I look for the .cs file:

It is located in the folder: NinjaTrader7/bin/custom
Should it be in the folder: NinjaTrader7/bin/custom/Strategy

It is named: NinjaScript.Ensign.02.04.09.cs.cs
Should it be named: NinjaScript.Ensign.02.04.09.cs
There is an additional file named: NinjaScript.Ensign.02.04.09.cs.dll

Thanks for your help.
Arcade

Follow me on Twitter Visit my NexusFi Trade Journal Reply With Quote
  #30 (permalink)
 pawnbroker 
Cheltenham
 
Experience: Advanced
Platform: InvestorRT, NinjaTrader
Trading: ES
Posts: 54 since Jan 2012
Thanks Given: 8
Thanks Received: 107


I have written an add on for NinjaTrader 7 that adds a new High, Low, Close chart style.

You can emulate HLC bars with indicators, but this does not work properly with paint bar studies because such studies colour bars and not other indicators.

This new chart style adds a new bar type and that will work correctly with indicators that colour bars.

Link to download.

Screen shot showing the new HLC chart style, coloured by Better ProAm.


Reply With Quote
Thanked by:




Last Updated on January 13, 2013


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts