【问题标题】:Loop mistake on Pine ScriptPine 脚本上的循环错误
【发布时间】:2022-01-20 08:28:36
【问题描述】:

我正在尝试使用 for 循环进行计算黄金交叉,但代码不起作用(实际上,即使我真的不知道它是否正确编写)。有 2 个金十字,但上面写着 0。我求你帮助我,我是编码新手,我会失去理智。

indicator("Cross count", overlay = true)
v1 = input.int(8, "Short WMA", minval=1)
v2 = input.int(21, "Long WMA", minval=1)
v3 = input.int(500, "Look Back Input", minval=10, step=10)

cp = 0
var label lbl = label.new(na, na, " ", style = label.style_label_left)
wmaS= ta.wma(close, v1)
wmaL = ta.wma(close, v2)

for i = 0 to v3
 if ta.crossover(wmaS,wmaL)
  cp := cp + 1
cp

plot(wmaS, color=color.purple)
plot(wmaL, color=color.orange)
label.set_xy(lbl, bar_index, high)
label.set_text(lbl, str.tostring(cp, "Golden Cross = "))`

【问题讨论】:

  • “代码不起作用”到底是怎么回事?有什么问题,您的期望是什么?

标签: loops for-loop pine-script pinescript-v5


【解决方案1】:

这部分没有意义:

for i = 0 to v3
    if ta.crossover(wmaS,wmaL)
        cp := cp + 1
cp

您创建了一个循环,但在循环内部,您检查相同的条件。因此,默认情况下,您只需检查 current 条是否连续 500 次交叉。如果要迭代,应该使用[i]操作符查看过去的交叉状态:

crossoverCond = ta.crossover(wmaS,wmaL)
for i = 0 to v3
    if crossoverCond[i]
        cp := cp + 1
    cp

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多