几个Pine函数现已支持动态长度参数

Sep 9, 2020

Pine编辑器现在可以在以下函数中使用动态计算长度:

alma()
change()

highest()
highestbars()
linreg()
lowest()
lowestbars()
mom()
sma()
sum()
vwma()
wma()

系列长度将使基于可变周期的计算更容易建立自适应Pine指标。范例如下,我们如何使用波动率来缩短或延长粗线的ALMA周期,并将其与细线所示的静态ALMA进行比较:

//@version=4
study("Adaptive ALMA", "AALMA", true)
i_minLen    = input(10, minval = 1)
i_maxLen    = input(60, minval = 1)
i_adaptPct  = input(3., minval = 0, maxval = 100) / 100.0

startingLen = avg(i_minLen, i_maxLen)
var float dynamicLen = startingLen
highVolatility = atr(10) > atr(40)
if highVolatility
    dynamicLen := max(i_minLen, dynamicLen * (1 - i_adaptPct))
else
    dynamicLen := min(i_maxLen, dynamicLen * (1 + i_adaptPct))
dynamicAlma = alma(close, int(dynamicLen),  0.85, 6)
staticAlma  = alma(close, int(startingLen), 0.85, 6)

maColor(_ma) => close > _ma ? highVolatility ? #40FF00ff : #40FF0060 : highVolatility ? #FF0080ff : #FF008060
plot(dynamicAlma, "Dynamic Alma", maColor(dynamicAlma), 3)
plot(staticAlma,  "Static Alma",  maColor(staticAlma),  1)
// Follow the calculated Length in the Data Window.
plotchar(dynamicLen, "dynamicLength", "")

虽然使用浮点数动态计算长度可能会很方便,但请记得在函数调用它们之前,将其强制转换为 “int” (如同本范例)。

同时请记得,这些函数需要在每根K线上求值,所以应该在 `for` loops之外使用,并且不能在每根K线上执行 `if` blocks。

我们希望大家要求的新功能对您有帮助,请继续给我们反馈以进行改善。我们为您打造TradingView,并希望听听您对我们平台上这些广泛要求更新的看法。

 


 

还没有关注我们的中文微信公众号?快来扫二维码吧!

 

 

Look first Then leap

TradingView专门为您而打造,请确保您充分利用我们出色的功能
开启图表