Hello everyone,
I'd greatly appreciate any help you could give me with this - I need to find the day's ATR (using easylanguage), but I need to do it on the 5-minute chart.
As background (and in case anyone has any other ideas on how to solve it), my problem is that I have a daily FX strategy, but my broker (Interactive Brokers) shuts down for 15 minutes at 5pm Eastern time. This means I need to transform my strategy to work on a 5-minute chart, so it can enter trades at 16:55.
(if you are trading FX, does your broker also shut down at 5pm?)
Thanks a lot
Andreas
How to program the daily ATR on a 5-minute chart?
Re: How to program the daily ATR on a 5-minute chart?
Function : TrueHighD
Function: TrueLowD
Function: TrueRangeD
Function: AverageTrueRangeD
Indicator: AverageTrueRange Daily(intraday)
May this is one/some approach to implement it, but it gives slightly different numbers.
Regards.
Ben
Code: Select all
input: daysBack(numericSimple);
var: HighThatDay(0);
var: CloseBeforeThatDay(0);
CloseBeforeThatDay = CloseD(daysBack+1);
HighThatDay = HighD(daysBack);
if CloseBeforeThatDay > HighThatDay then TrueHighD = CloseBeforeThatDay else
TrueHighD = HighThatDay;
Code: Select all
input: daysBack(numericSimple);
var: LowThatDay(0);
var: CloseBeforeThatDay(0);
CloseBeforeThatDay = CloseD(daysBack+1);
LowThatDay = LowD(daysBack);
if CloseBeforeThatDay < LowThatDay then TrueLowD = CloseBeforeThatDay else
TrueLowD = LowThatDay;
Code: Select all
input: daysBack(numericSimple);
TrueRangeD = TrueHighD(daysBack) - TrueLowD(daysBack);
Code: Select all
inputs: Length(numericsimple);
var: dayHi(0);
var: dayLo(0);
if Length = 0 or Length = 1 then AvgTrueRangeD = TrueRangeD(Length) else
begin
if date <> date[1] then AvgTrueRangeD = AvgTrueRangeD[1] - TrueRangeD(Length)/Length + TrueRangeD(0) / Length else
begin
dayHi = HighD(0);
dayLo = LowD(0);
if dayHi = dayHi[1] and dayLo = dayLo[1] then AvgTrueRangeD = AvgTrueRangeD[1] else
AvgTrueRangeD = AvgTrueRangeD[1] - TrueRangeD(0)[1] / Length + TrueRangeD(0) / Length;
end;
end;
Code: Select all
inputs: ATRDLength(5);
var: it(0);
it = AvgTrueRangeD(ATRDLength);
Plot1(it, "ATRD") ;
Regards.
Ben