0

The function BarsSince() will return number of bars (time periods) that have passed since ARRAY was true (or 1) for the 1st occurrence of the condition true. https://www.amibroker.com/guide/afl/barssince.html

For example, I have an array like this;

arr_test = [1 0 0 0 1 0 0 1 0 0 1 0 0];

BarsSince(arr_test) will return 3 as that is the first occurrence of 1.

What if I want to find out the number of bars that have passed for the nth occurrence of the true condition? As illustration, I would like to have a function such that BarsSince_N(arr_test, n=2) will return 6.

Thank you.

I am using Amibroker ver6.30.5

user3848207
  • 3,737
  • 17
  • 59
  • 104

1 Answers1

1

You might want to look at Valuewhen.

So, then you can do something like:

bi = ValueWhen(arr_test > 0, BarIndex(), "nth occurence - 0 is the latest");
bars_since = LastValue(Close) - bi;

Here, I'm just using LastValue to get the last barnumber of the entire price series. This is untested, but you should get the idea.

Sethmo011
  • 575
  • 7
  • 20