NinjaTrader_Josh
05-24-2007, 07:08 PM
For one of my indicators I am trying to access information from previous bars, but can't find a readily available way to do so. In strategies I could just go Close[5] but from what I can tell only Close[0] works in indicators. Currently I am just passing the value along a 5-variable daisy chain so I can have access to Close[5]. There has to be a better way of doing this. Any suggestions?
I think I am using the data series thing wrong. Here is my awkward code
protected override void Initialize()
{
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[1]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[2]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[3]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[4]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[5]"));
}
protected override void OnBarUpdate()
{
PriorRegCh.Set(currentRegCh);
PriorRegCh2.Set(RegCh1);
PriorRegCh3.Set(RegCh2);
PriorRegCh4.Set(RegCh3);
PriorRegCh5.Set(RegCh4);
currentRegCh = RegressionChannel(60, 2).Middle[0];
RegCh1 = PriorRegCh[0];
RegCh2 = PriorRegCh2[0];
RegCh3 = PriorRegCh3[0];
RegCh4 = PriorRegCh4[0];
#region Properties
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh
{
get { return Values[0]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh2
{
get { return Values[1]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh3
{
get { return Values[2]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh4
{
get { return Values[3]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh5
{
get { return Values[4]; }
}
For some reason I ended up with many plots for my Regression Channel. I was only aiming for one, but it seemed to want a plot for every dataseries I had. What I did was copy the way the PriorDayOHLC indicator stored values. It seems very inefficient.
I think I am using the data series thing wrong. Here is my awkward code
protected override void Initialize()
{
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[1]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[2]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[3]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[4]"));
Add(new Plot(Color.Empty, PlotStyle.Hash, "RegCh[5]"));
}
protected override void OnBarUpdate()
{
PriorRegCh.Set(currentRegCh);
PriorRegCh2.Set(RegCh1);
PriorRegCh3.Set(RegCh2);
PriorRegCh4.Set(RegCh3);
PriorRegCh5.Set(RegCh4);
currentRegCh = RegressionChannel(60, 2).Middle[0];
RegCh1 = PriorRegCh[0];
RegCh2 = PriorRegCh2[0];
RegCh3 = PriorRegCh3[0];
RegCh4 = PriorRegCh4[0];
#region Properties
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh
{
get { return Values[0]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh2
{
get { return Values[1]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh3
{
get { return Values[2]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh4
{
get { return Values[3]; }
}
[Browsable(false)]
[XmlIgnore()]
public DataSeries PriorRegCh5
{
get { return Values[4]; }
}
For some reason I ended up with many plots for my Regression Channel. I was only aiming for one, but it seemed to want a plot for every dataseries I had. What I did was copy the way the PriorDayOHLC indicator stored values. It seems very inefficient.