带有两个指标的 pine 脚本,一个覆盖在图表上,另一个单独覆盖?
Posted
技术标签:
【中文标题】带有两个指标的 pine 脚本,一个覆盖在图表上,另一个单独覆盖?【英文标题】:pine script with two indicators one overlaid on the chart and another on its own? 【发布时间】:2020-05-14 07:17:51 【问题描述】:我正在尝试编写一个带有两个指标的 pine 脚本,一个覆盖在图表 (EMA) 上,另一个单独覆盖?(Stoch)我似乎找不到任何关于如何将这些(视觉上)分开但将它们保留在内部的信息1个松树脚本,即能够根据这些做出交易决策。
【问题讨论】:
【参考方案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()
应该与主图表重叠。为此,您应该执行以下步骤:
关闭研究中的额外情节以使比例恢复正常:
将下一个脚本应用于图表:
//@version=4
study("NonOverlayIndicator", overlay=true)
src = input(defval=close, type=input.source)
plot(src)
从第一个脚本中选择第二个脚本输入源所需的情节:
瞧——你得到了不同松树的地块:
但是,如果您想拆分图表,因为您允许申请的研究数量有限制(例如,免费帐户为 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”选择器中似乎没有显示。令人沮丧。以上是关于带有两个指标的 pine 脚本,一个覆盖在图表上,另一个单独覆盖?的主要内容,如果未能解决你的问题,请参考以下文章