With the following code there is some weird coloring.
Can you help me mod the code so that the variables private int longcolour and private int shortcolour can be colors I choose? like red blue etc etc, ideally to choose from a colour picker..
Thanks
#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> /// Trendathon /// </summary> [Description("Trendathon")] public class Trendathon : Indicator { #region Variables // Wizard generated variables private Color UpCol = Color.Blue; // Default setting for LongColour private Color DnCol = Color.Green; // Default setting for ShortColour private int barWidth = 1; // Default setting for BarWidth // User defined variables (add any user defined variables below) private DataSeries haClose; private DataSeries haOpen; private DataSeries icolor; #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() { Overlay = true; haClose = new DataSeries(this); haOpen = new DataSeries(this); icolor = new DataSeries(this); } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { double CompBars = 6 ; Color UpCol = Color.FromArgb(15,90,180); Color DnCol = Color.FromArgb(255,50,50); //Color icolor = Color.FromArgb(255,50,50); /*If LongColour = 0 then upcol = RGB(15,90,180) Else UpCol = LongColour; If ShortColour = 0 then dncol = RGB(255,50,50) Else DnCol = ShortColour;*/ if (CurrentBar == 1) { haOpen[0] = Open[0]; haClose[0] = (Open[0] + High[0] + Low[0] + Close[0])/4; } if (CurrentBar > 1) { haClose[0] = (Open[0] + High[0] + Low[0] + Close[0])/4; haOpen[0] = (haOpen[1] + haClose[1])/2; if (haClose[0] > haOpen[0]) icolor[0] = 1; else icolor[0] = 2; ///////////////////////////////////////// if (icolor[0] == 1) { BarColor = UpCol; } if (icolor[0] == 2) { BarColor = DnCol; } //////////////////////////////////////// for (int x = 1; x <= CompBars; x++) { if ((haOpen[0] <= Math.Max(haOpen[x],haClose[x])) && (haOpen[0] >= Math.Min(haOpen[x],haClose[x])) && (haClose[0] <= Math.Max(haOpen[x],haClose[x])) && (haClose[0] >= Math.Min(haOpen[x],haClose[x]))) icolor[0] = icolor[x]; } if (icolor[0] == 1) { BarColor = UpCol; CandleOutlineColor = UpCol; } if (icolor[0] == 2) { BarColor = DnCol; CandleOutlineColor = DnCol; } } } #region Properties [XmlIgnore()] [Description("Color for painted region")] [GridCategory("Parameters")] public Color Upcol { get { return Upcol; } set { Upcol = value; } } // Serialize our Color object [Browsable(false)] public string BorderColorSerialize { get { return NinjaTrader.Gui.Design.SerializableColor.ToString(UpCol); } set { UpCol = NinjaTrader.Gui.Design.SerializableColor.FromString(value); } } [XmlIgnore()] [Description("Color for painted region")] [GridCategory("Parameters")] public Color Dncol { get { return DnCol; } set { DnCol = value; } } [Browsable(false)] public string FillColorSerialize { get { return NinjaTrader.Gui.Design.SerializableColor.ToString(DnCol); } set { DnCol = NinjaTrader.Gui.Design.SerializableColor.FromString(value); } } [Description("")] [GridCategory("Parameters")] public int BarWidth { get { return barWidth; } set { barWidth = Math.Max(1, value); } } #endregion } }
Comment