如何将plot语句放在if语句中

Ben*_*ter 8 pine-script

我想在价格上绘制权益曲线,将该策略与简单的买入并持有进行比较。为了使图表有用,权益曲线可以从初始权益开始,或者与图表上的第一个价格一致,或者根本没有权益曲线,具体取决于手动输入。

使用下面的代码,我得到这个:

  • 第 xx 行:无法在本地范围内使用“plot”。

  • 第 xx 行:无法在本地范围内使用“plot”。

equitycurvetype = input(defval="No", title='Equity Curve Type', options=["No","Yes","Yes same start"])
if equitycurvetype == "Yes" 
    plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)  
if equitycurvetype == "Yes same start" 
    plot(strategy.equity * close[bar_index]/strategy.initial_capital, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
Run Code Online (Sandbox Code Playgroud)

Pin*_*ucF 2

无法从if块中绘图。另外,虽然 usingclose[bar_index]在语法上是正确的,但由于过去的远距离引用,它会抛出运行时错误,因此此代码将第一个柱的收盘价保存在firstClose变量中:

//@version=4
strategy("")
equitycurvetype = input(defval="No", title='Equity Curve Type', options=["No","Yes","Yes same start"])
// Save close of 1st bar in dataset using "var" to initialize only once.
var firstClose = close
float equity = na
if equitycurvetype == "Yes"
    equity := strategy.equity
else
    if equitycurvetype == "Yes same start"
        equity := strategy.equity * firstClose / strategy.initial_capital

plot(equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)
Run Code Online (Sandbox Code Playgroud)