【问题标题】:pine script with two indicators one overlaid on the chart and another on its own?带有两个指标的 pine 脚本,一个覆盖在图表上,另一个单独覆盖?
【发布时间】:2020-05-14 07:17:51
【问题描述】:

我正在尝试编写一个带有两个指标的 pine 脚本,一个覆盖在图表 (EMA) 上,另一个单独覆盖?(Stoch)我似乎找不到任何关于如何将这些(视觉上)分开但将它们保留在内部的信息1个松树脚本,即能够根据这些做出交易决策。

【问题讨论】:

    标签: moving-average pine-script indicator stochastic


    【解决方案1】:

    这是不可能的。脚本在图表上以overlay=true 模式运行,在这种情况下,它无法将绘图指向其他地方,或者在overlay=false(默认值)时在单独的窗格中运行。

    当脚本在窗格中运行时,它可以使用barcolor() 更改图表条的颜色,但这是它可以修改图表的唯一方法。

    可以重新调整信号的比例,使一个脚本生成的多个有界(例如,0-100、-1 到 +1)信号一个接一个地出现,但这在覆盖模式下通常是不可能的,因为垂直刻度随图表上的条形而变化。叠加脚本使用其自己的比例的唯一方法是使用无比例,但这会阻止指标的绘图相对于价格绘图,因此图表的条形图也是如此。

    【讨论】:

    • 感谢 PineCoders-LucF 的快速回复。
    【解决方案2】:

    不幸的是,Luc 之前的回答是正确的。每个脚本都可以创建覆盖在默认价格图表上的图,或者显示在不同的窗格中,但不能同时显示两者。但是有一个解决方法。

    假设您在脚本中进行了一些重要的计算,并且希望将其放在不同的窗格中。例如。下一个代码:

    //@version=4
    study(title="Stochastic", shorttitle="Stoch", format=format.price, precision=2)
    periodK = input(14, title="K", minval=1)
    periodD = input(3, title="D", minval=1)
    smoothK = input(3, title="Smooth", minval=1)
    k = sma(stoch(close, high, low, periodK), smoothK)
    d = sma(k, periodD)
    plot(k, title="%K", color=color.blue)
    plot(d, title="%D", color=color.orange)
    h0 = hline(80)
    h1 = hline(20)
    fill(h0, h1, color=color.purple, transp=75)
    
    // This next plot would work best in a separate pane
    someNonTrivialCalculatedSeries = close
    plot(ema(someNonTrivialCalculatedSeries, 25), title="Exporting Plot")
    

    因为它们有不同的尺度,其中一个很可能会打破另一个指标的尺度。 所以你想在不同的松树中显示Stoch,而ema() 应该与主图表重叠。为此,您应该执行以下步骤:

    1. 关闭研究中的额外情节以使比例恢复正常:

    2. 将下一个脚本应用于图表:

      //@version=4
      study("NonOverlayIndicator", overlay=true)
      src = input(defval=close, type=input.source)
      plot(src)
      
    3. 从第一个脚本中选择第二个脚本输入源所需的情节:

    瞧——你得到了不同松树的地块:

    但是,如果您想拆分图表,因为您允许申请的研究数量有限制(例如,免费帐户为 3 个)- 这对您没有帮助。

    【讨论】:

    • 很好的答案对我帮助很大,非常感谢米歇尔。需要改进的小细节是叠加层应该是错误的。
    • 谢谢!真的很有帮助的答案。由于someone else has already published a script called "Line Chart Source" 与您提到的第二个类似,您可以将其应用于您的图表并选择来源。但是,是的,它还占用了一个额外的学习时间。
    • 第一个脚本中的变量没有在第二个脚本输入源选择中列出,我能知道如何让它们显示在那里吗?
    【解决方案3】:

    Michael 提供了很好的解决方法。 不幸的是,这似乎只能为一个图传递数据。 我想将 3 个不同图的数据传递给股价图。 如果我尝试这个,对于“input.source”,我只能选择标准源:“open, high, low, close ...”。我无法从其他指标中选择数据。 如果我删除地块 2 和 3,它会像迈克尔描述的那样工作。 任何人都有解决方法的解决方法..? ;-)

    【讨论】:

    • 这似乎是一个记录在案的限制:“策略一次只能使用一个外部输入。” tradingview.com/blog/en/…
    • 需要创建两个指标,一个适合图表,另一个适合面板。
    • 可以,如下图所示。问题是您只能将一个图从非覆盖指示器“传递”到覆盖指示器。
    • 是的,我也看到了这个限制。如果脚本 A 有多个绘图,那么脚本 B 的“input.source”选择器中似乎没有显示。令人沮丧。