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