我在Amibroker有这个长期的任务说明 .
num_times_above = iif(Ref(CLOSE, -0)>Ref(CLOSE, -4) , 1, 0)
+ iif(Ref(CLOSE, -1)>Ref(CLOSE, -4), 1, 0)
+ iif(Ref(CLOSE, -2)>Ref(CLOSE, -4), 1, 0)
+ iif(Ref(CLOSE, -3)>Ref(CLOSE, -4), 1, 0)
+ iif(Ref(CLOSE, -4)>Ref(CLOSE, -4), 1, 0)
;
我想将这个长语句转换为接受参数n的泛型函数 .
function get_num_times_above(n)
{
//code
}
顶部的代码适用于 n == 4
的情况 . 由于Amibroker中使用的数组格式,我陷入了这个看似简单的问题 .
如果 n == 3
,等效代码将是;
num_times_above = iif(Ref(CLOSE, -0)>Ref(CLOSE, -3) , 1, 0)
+ iif(Ref(CLOSE, -1)>Ref(CLOSE, -3), 1, 0)
+ iif(Ref(CLOSE, -2)>Ref(CLOSE, -3), 1, 0)
+ iif(Ref(CLOSE, -3)>Ref(CLOSE, -3), 1, 0)
;
我正在使用Amibroker ver6.28
1 回答
试试这个 .
感谢fxshrat,他在这里提供了答案 .
https://forum.amibroker.com/t/how-to-make-convert-this-long-assignment-statement-into-a-function/7181/2