区块报价
我在努力但我不能修好它。它是tradingview名称上的一个指示器: HAMI /L指示器,我已经将它转换为v5脚本。
但还是会犯这个错误
第22行:函数'Sma‘应在每次计算中调用,以保持一致性。建议从三元运算符或范围中提取调用。
同一个人能告诉我修复它的正确方法吗?
先谢谢你
区块报价
//@version=5
indicator('HAMI Pivot H/L ', overlay=true, max_bars_back=5000)
//Basic
length = input.int(30, group='Basic Settings', tooltip='Pivot length. Use higher values for having lines connected to more significant pivots')
lookback = input.int(3, minval=1, group='Basic Settings', tooltip='Number of lines connecting a pivot high/low to display')
Slope = input.float(1., minval=-1, maxval=1, step=0.1, group='Basic Settings', tooltip='Allows to multiply the linear regression slope by a number within -1 and 1')
//Style
ph_col = input.color(#2157f3, 'Pivot High Lines Color', group='Line Colors')
pl_col = input.color(#ff1100, 'Pivot Low Lines Color', group='Line Colors')
//──────────────────────────────────────────────────────────────────────────────
Sma(src, p) =>
a = ta.cum(src)
(a - a[math.max(p, 0)]) / math.max(p, 0)
Variance(src, p) =>
p == 1 ? 0 : Sma(src * src, p) - math.pow(Sma(src, p), 2)
Covariance(x, y, p) =>
Sma(x * y, p) - Sma(x, p) * Sma(y, p)
//──────────────────────────────────────────────────────────────────────────────
n = bar_index
ph = ta.pivothigh(length, length)
pl = ta.pivotlow(length, length)
//──────────────────────────────────────────────────────────────────────────────
varip ph_array = array.new_float(0)
varip pl_array = array.new_float(0)
varip ph_n_array = array.new_int(0)
varip pl_n_array = array.new_int(0)
if ph
array.insert(ph_array, 0, ph)
array.insert(ph_n_array, 0, n)
if pl
array.insert(pl_array, 0, pl)
array.insert(pl_n_array, 0, n)
//──────────────────────────────────────────────────────────────────────────────
val_ph = ta.valuewhen(ph, n - length, lookback - 1)
val_pl = ta.valuewhen(pl, n - length, lookback - 1)
val = math.min(val_ph, val_pl)
k = n - val > 0 ? n - val : 2
slope = Covariance(close, n, k) / Variance(n, k) * Slope
var line ph_l = na
var line pl_l = na
if barstate.islast
for i = 0 to lookback - 1 by 1
ph_y2 = array.get(ph_array, i)
ph_x1 = array.get(ph_n_array, i) - length
pl_y2 = array.get(pl_array, i)
pl_x1 = array.get(pl_n_array, i) - length
ph_l := line.new(ph_x1, ph_y2, ph_x1 + 1, ph_y2 + slope, extend=extend.right, color=ph_col)
pl_l := line.new(pl_x1, pl_y2, pl_x1 + 1, pl_y2 + slope, extend=extend.right, color=pl_col)
pl_l发布于 2022-06-29 06:38:28
将行更新到下面,然后计算每一步。
(p == 1?0: 1)*Sma(src * src,p) - math.pow(Sma(src,p),2)
https://stackoverflow.com/questions/72794911
复制相似问题