繁体   English   中英

如何规范化pinescript中的值

[英]how to normalize values in pinescript

我正在尝试将几个指标合并在一起,问题是其中一些具有不同的比例,所以虽然一个振荡器的范围可能从 0 到 100,但另一个可能有一个可变范围,有时可能很小,比如从 -5 到 + 5. 当然,将这些绘制在一起将使几乎不可能看到。

我怎样才能扩大规模,使其在不同的股票/数据集中保持一致? 我试图将绘制的指标值乘以一个常数,该常数在一定程度上起作用,但在某些情况下取决于数据,这可能会变得太大且超出范围。 理想情况下,我希望在某个值范围内保持绘图一致。 任何输入将不胜感激!

您可以使用规范化功能

normalize(_src, _min, _max) =>
// Normalizes series with unknown min/max using historical min/max.
// _src      : series to rescale.
// _min, _min: min/max values of rescaled series.
var _historicMin =  10e10
var _historicMax = -10e10
_historicMin := min(nz(_src, _historicMin), _historicMin)
_historicMax := max(nz(_src, _historicMax), _historicMax)
_min + (_max - _min) * (_src - _historicMin) / max(_historicMax - _historicMin, 10e-10)

// ————— Normalized volume in the same region as the rescaled RSI.
plot(normalize(volume, -100, 100), "Normalized volume", color.black)
hline( 100)
hline(-100)

要使系列标准化,您需要一段时间内的范围才能适合您的面板。 为方便起见,我使用了 500 个柱周期。 即使范围从负数变为正数,它也有效。 我习惯将结果与一百相关联,因此它看起来像 RSI 和许多其他指标一样的百分比。

// For a series x
xMax = ta.highest(x, 500)
xMin = ta.lowest(x, 500)
range = xMax - xMin
y = 100 * x / range
plot (y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM