如何将绘图语句放入if语句中

时间:2019-09-25 21:52:14

标签: pine-script

我想在价格上绘制股权曲线,以将策略与简单的买入并持有进行比较。为了使图更有用,资产曲线可以从初始资产开始,或者与图表上的第一个价格一致,或者完全不取决于手工输入而产生资产曲线。

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

  • 第xx行:在本地范围内不能使用“绘图”。

  • 第xx行:在本地范围内不能使用“绘图”。

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)

2 个答案:

答案 0 :(得分:2)

无法从if个块进行绘制。另外,尽管使用close[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)

答案 1 :(得分:1)

plot(Trailingsl, title = "SuperTrend", color = linecolor ,  linewidth = 2, transp = showSuperTrend ? 0 : 100)

解决方法:

transp = showSuperTrend ? 0 : 100