同时在多个时间范围内使用Fisher转换

时间:2020-07-24 02:38:08

标签: pine-script

我已经取得了很好的进展,将几个指标合并在一起,可以同时在自定义时间范围内显示它们。它正在为某些指标工作。

但是,它不适用于Fisher。我收到“无法将可变变量用作安全函数的参数”的错误。

我尝试用

s5 = security(tickerid, tf3,  fish1)

费舍尔的代码是

len = input(9, minval=1, title="Length")    
high_ = highest(hl2, len)    
low_ = lowest(hl2, len)    
round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val    
value = 0.0    
value := round_(.66 * ((hl2 - low_) / max(high_ - low_, .001) - .5) + .67 * nz(value[1]))    
fish1 = 0.0    
fish1 := .5 * log((1 + value) / max(1 - value, .001)) + .5 * nz(fish1[1])    
fish2 = fish1[1]    

有人可以帮忙吗?我不知道哪里出了问题。

我期待有人帮助我解决这个问题,并会非常感激。

1 个答案:

答案 0 :(得分:0)

隐藏自定义函数中的fisher calc并将其传递给security函数

len = input(9, minval=1, title="Length")    

round_(val) => val > .99 ? .999 : val < -.99 ? -.999 : val 

f_fisher() =>
    high_ = highest(hl2, len)    
    low_ = lowest(hl2, len)    
    value = 0.0    
    value := round_(.66 * ((hl2 - low_) / max(high_ - low_, .001) - .5) + .67 * nz(value[1]))    
    fish1 = 0.0    
    fish1 := .5 * log((1 + value) / max(1 - value, .001)) + .5 * nz(fish1[1])    
    fish1

mtfFisher = security(syminfo.tickerid, "D", f_fisher())

plot(mtfFisher)