获取第n次而不是第1次出现的BarsSince()

时间:2019-05-21 06:22:28

标签: amibroker

函数BarsSince()将返回自第一次出现条件为true以来,ARRAY为true(或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)将返回3,因为这是第一次出现1。

如果我想找出第n次出现真实条件所经过的小节数怎么办?作为说明,我想具有这样一个功能 BarsSince_N(arr_test, n=2)将返回6。

谢谢。

我正在使用Amibroker ver6.30.5

1 个答案:

答案 0 :(得分:1)

您可能想看看Valuewhen

因此,您可以执行以下操作:

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

在这里,我只是使用LastValue来获取整个价格系列的最后一个条形码。这未经测试,但是您应该知道。