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,并希望听听您对我们平台上这些广泛要求更新的看法。
还没有关注我们的中文微信公众号?快来扫二维码吧!