我希望使用 pinescript 来计算两个不同时间范围(3m 和 15 m)内的 Ehler 瞬时趋势线。 3m 是图表时间范围。我的代码库是由一位非常多产的 pinescript 编码器 LazyBear 使用的。代码的链接是https://www.tradingview.com/script/DaHLcICg-Ehlers-Instantaneous-Trend-LazyBear/
由于代码较旧,我稍微修改了代码,我希望绘制两组 EIT 带,一组在当前时间范围内计算,另一组在 15 分钟时间范围内计算。
The code for calculation of Ehlers instantaneous Trendline:
// Ehlers Instantaneous Trendline function
eit(src, alpha) =>
var float it =0.0
it := (alpha - ((alpha * alpha) / 4.0)) * src +
(0.5 * alpha * alpha) * src[1] -
(alpha - 0.75 * alpha * alpha) * src[2] +
2 * (1 - alpha) * nz(it[1], ((src + 2 * src[1] + src[2]) / 4.0)) -
(1 - alpha) * (1 - alpha) * nz(it[2], ((src + 2 * src[1] + src[2]) / 4.0))
it
And code for the input parameters, bands(areas between the EIT and the trigger line):
// Input parameters
src = input(ohlc4, title="Source")
src2 = request.security(syminfo.tickerid, "15", ohlc4)
alpha1 = input.float(0.01, title="Alpha1", step=0.01)
alpha2 = input.float(0.01, title="Alpha1 - 15m TF", step=0.01)
//Zones setup -3m
show_zone1 = input.bool(true, title="Show Zone-1 color fill?")
transparency1 = input.int(65, title="fill transparency", minval=0, maxval=100)
fill_color_1_dn = input(color.rgb(255, 0, 0, 30), title="Fill Color 1-down")
fill_color_1_up = input(color.rgb(0, 255, 0, 30), title="Fill Color 1-up")
//Zones setup for TF-15 min
show_zone15_1 = input.bool(false, title="Show Zone-151 (15m) color fill?")
transparency15_1 = input.int(20, title="fill transparency", minval=0, maxval=100)
fill_color_151_dn = input(color.rgb(255, 0, 0, 30), title="Fill Color 151-down")
fill_color_151_up = input(color.rgb(0, 255, 0, 30), title="Fill Color 151-up")
and the calculations for the EIT and Trigger values:
// Input parameters
src = input(ohlc4, title="Source")
src2 = request.security(syminfo.tickerid, "15", ohlc4)
alpha1 = input.float(0.01, title="Alpha1", step=0.01)
alpha2 = input.float(0.01, title="Alpha1 - 15m TF", step=0.01)
//Zones setup -3m
show_zone1 = input.bool(true, title="Show Zone-1 color fill?")
transparency1 = input.int(65, title="fill transparency", minval=0, maxval=100)
fill_color_1_dn = input(color.rgb(255, 0, 0, 30), title="Fill Color 1-down")
fill_color_1_up = input(color.rgb(0, 255, 0, 30), title="Fill Color 1-up")
//Zones setup for TF-15 min
show_zone15_1 = input.bool(false, title="Show Zone-151 (15m) color fill?")
transparency15_1 = input.int(20, title="fill transparency", minval=0, maxval=100)
fill_color_151_dn = input(color.rgb(255, 0, 0, 30), title="Fill Color 151-down")
fill_color_151_up = input(color.rgb(0, 255, 0, 30), title="Fill Color 151-up")
我正在获取这些值并将它们绘制在图表中,但是绘制时,这些值彼此重叠。我创建了一个表来查看即将到来的值,我惊讶地发现即将到来的值集几乎相同。这不可能,因为我检查了 15m 时间范围内的值的显示,并且这些值有所不同。
我知道这些值可能存在一些差异,但这里并非如此。 src2 的值(使用 request.security(syminfo.tickerid, "15", ohlc4) 计算)显然没有按我的预期工作。
我的问题是: 我现在应该做什么来更正代码,使值是近似的,并且值和绘图之间存在一些协调? 感谢您阅读我的问题。