首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在tradingview代码中有这个错误,有人能帮我吗?

我在tradingview代码中有这个错误,有人能帮我吗?
EN

Stack Overflow用户
提问于 2022-06-29 01:48:11
回答 1查看 101关注 0票数 0

区块报价

我在努力但我不能修好它。它是tradingview名称上的一个指示器: HAMI /L指示器,我已经将它转换为v5脚本。

但还是会犯这个错误

第22行:函数'Sma‘应在每次计算中调用,以保持一致性。建议从三元运算符或范围中提取调用。

同一个人能告诉我修复它的正确方法吗?

先谢谢你

区块报价

代码语言:javascript
复制
//@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
EN

回答 1

Stack Overflow用户

发布于 2022-06-29 06:38:28

将行更新到下面,然后计算每一步。

(p == 1?0: 1)*Sma(src * src,p) - math.pow(Sma(src,p),2)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72794911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档