View Full Version : Calculate High for every x minutes
NinjaTrader_Josh
07-19-2007, 08:39 AM
I am trying to have an indicator on a 5min chart that calculates the high for the past 3 minutes and plot it. Is this possible?
NinjaTrader_Ray
07-19-2007, 08:45 AM
We currently do not support multi-time frame indicators. However, you could possibly approximate this by running your indicator with CalculateOnBarClose = false and then storing the highest value seen every 3 min slice by just just using DateTime.Now etc...
NinjaTrader_Josh
07-19-2007, 12:02 PM
Drats. I was hoping for a function like the one esignal has.
highest(nLength, DataSeries)
Oh well. I will give the DateTime thing a shot right now. Thanks Ray.
NinjaTrader_Ray
07-19-2007, 12:40 PM
The approach MAX(IDataSeries series, int period) does work for strategies, just not in the Indicator class at this time.
NinjaTrader_Josh
07-19-2007, 08:08 PM
After much thought about how to implement DateTime.Now I don't think it is going to work. It can potentially work for incoming ticks, but for any historical data it simply can't be done to count 3 minutes because the DateTime.Now in accessing the historical data are all the same.
Here is what I came up with, but its just not cutting it.
if(Bars.FirstBarOfSession)
{
time = Time[0];
timecounter = time;
}
if (barcounter <= 1)
{
ticktimer = DateTime.Now;
}
else
{
prevticktimer = ticktimer;
ticktimer = DateTime.Now;
}
if(timecounter < time.AddMinutes(Period))
{
if(high<High[0])
high = High[0];
TimeSpan valuetoadd = ticktimer - prevticktimer;
timecounter = timecounter.AddSeconds(valuetoadd.Minutes*60 + valuetoadd.Seconds);
}
DynamicR = high;
Resistance.Set(DynamicR);
NinjaTrader_Ray
07-20-2007, 06:31 AM
Correct, for historical it can not be done.