首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将plot语句放入if语句中

如何将plot语句放入if语句中
EN

Stack Overflow用户
提问于 2019-09-25 21:52:14
回答 3查看 10.4K关注 0票数 6

我想画出股票的价格曲线,比较策略与简单的购买和持有。为了使图表有用,权益曲线可以从初始股本开始,或者与图上的第一个价格一致,或者完全不需要依赖人工输入的权益曲线。

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

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

代码语言:javascript
运行
复制
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)
EN

回答 3

Stack Overflow用户

发布于 2021-03-02 16:33:09

代码语言:javascript
运行
复制
plot(Trailingsl, title = "SuperTrend", color = linecolor ,  linewidth = 2, transp = showSuperTrend ? 0 : 100)

解决办法:

代码语言:javascript
运行
复制
transp = showSuperTrend ? 0 : 100
票数 3
EN

Stack Overflow用户

发布于 2019-09-25 23:05:51

无法从if块绘图。此外,虽然使用close[bar_index]在语法上是正确的,但它会引发运行时错误,因为过去引用很远,因此这段代码在firstClose变量中保存了第一个栏的关闭:

代码语言:javascript
运行
复制
//@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
EN

Stack Overflow用户

发布于 2022-10-22 10:20:11

我找到了更好的解决办法然后躲起来。

隐藏的缺点是tradingview仍然将数据池显示为指示值。

我的解决方案是按照正常的方式进行所有计算,但就在绘图之前添加:

代码语言:javascript
运行
复制
if CONDITION
   yourvar := na
plot(yourvar)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58107008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档