首页 > 解决方案 > TradingView Pine-Script:仅在输入为真时绘制一条线

问题描述

我只想在输入为真时绘制一些 EMA。但是当我使用 if 函数时,它会显示“不能在本地范围内使用‘绘图’。”

//@version=4
study(title = "Todos os indicadores", overlay = true)
showemas        = input(false,          title = "Show EMAs")

if showemas == true
    plot(ema(close, length1), color=#F44336, linewidth=2, title="EMA 1")
    plot(ema(close, length2), color=#4CAF50, linewidth=2, title="EMA 1")
    plot(ema(close, length3), color=#673AB7, linewidth=2, title="EMA 1")
    plot(ema(close, length4), color=#2196F3, linewidth=2, title="EMA 1")
    plot(ema(close, length5), color=color.white, linewidth=2, title="EMA 1")
    plot(sma(close, length6), color=color.orange, linewidth=2, title="EMA 1")

标签: if-statementplotpine-script

解决方案


您需要将条件放在plot()调用中:

plot(showemas ? ema(close, length1) : na, color=#F44336, linewidth=2, title="EMA 1")
plot(showemas ? ema(close, length2) : na, color=#4CAF50, linewidth=2, title="EMA 1")
plot(showemas ? ema(close, length3) : na, color=#673AB7, linewidth=2, title="EMA 1")
plot(showemas ? ema(close, length4) : na, color=#2196F3, linewidth=2, title="EMA 1")
plot(showemas ? ema(close, length5) : na, color=color.white, linewidth=2, title="EMA 1")
plot(showemas ? sma(close, length6) : na, color=color.orange, linewidth=2, title="EMA 1")

推荐阅读