获取第 n 次出现的 BarsSince() 而不是第 1 次出现
Get BarsSince() for nth occurrence instead of 1st occurrence
函数 BarsSince() 将 return 自 ARRAY 第一次出现为真(或 1)以来经过的柱数(时间段)。
https://www.amibroker.com/guide/afl/barssince.html
比如我有这样一个数组;
arr_test = [1 0 0 0 1 0 0 1 0 0 1 0 0];
BarsSince(arr_test) 将 return 3 因为这是 1 的第一次出现。
如果我想找出第 n 次出现 true 条件时经过的柱数怎么办?作为说明,我想有这样的功能
BarsSince_N(arr_test, n=2)
将 return 6.
谢谢。
我正在使用 Amibroker ver6.30.5
您可能想看看 Valuewhen。
那么,你可以这样做:
bi = ValueWhen(arr_test > 0, BarIndex(), "nth occurence - 0 is the latest");
bars_since = LastValue(Close) - bi;
在这里,我只是使用 LastValue 来获取整个价格系列的最后一个 barnumber。这是未经测试的,但你应该明白了。
函数 BarsSince() 将 return 自 ARRAY 第一次出现为真(或 1)以来经过的柱数(时间段)。 https://www.amibroker.com/guide/afl/barssince.html
比如我有这样一个数组;
arr_test = [1 0 0 0 1 0 0 1 0 0 1 0 0];
BarsSince(arr_test) 将 return 3 因为这是 1 的第一次出现。
如果我想找出第 n 次出现 true 条件时经过的柱数怎么办?作为说明,我想有这样的功能
BarsSince_N(arr_test, n=2)
将 return 6.
谢谢。
我正在使用 Amibroker ver6.30.5
您可能想看看 Valuewhen。
那么,你可以这样做:
bi = ValueWhen(arr_test > 0, BarIndex(), "nth occurence - 0 is the latest");
bars_since = LastValue(Close) - bi;
在这里,我只是使用 LastValue 来获取整个价格系列的最后一个 barnumber。这是未经测试的,但你应该明白了。