【问题标题】:TradingView [PINE]: Can I change study overlay dynamically via the settings?TradingView [PINE]:我可以通过设置动态更改研究覆盖吗?
【发布时间】:2021-09-30 07:43:47
【问题描述】:

在定义TradingView study 时,我们有以下支持的设置

study(title, shorttitle, overlay, format, precision, scale, max_bars_back, max_lines_count, max_labels_count, resolution, resolution_gaps, max_boxes_count) → void

我对@9​​87654323@ 属性感兴趣的地方

overlay (const bool) - default is false.
- if true, the study will be added as an overlay for the main series. 
- if false, it would be added on a separate chart pane. 

我感兴趣的是,这个属性可以动态设置吗?

例如,在指标设置中,我可以添加一个输入字段,用户应该可以从中选择当前指标显示在主系列叠加层中,或者显示在单独的图表窗格中。

study_overlay = input(defval = "true", title = "Study Overlay", options = ["true", "false"])

当用户要在那里更改所选选项时,指示器应根据所选选项更改正在使用的窗格。

这可行吗?我尝试了类似的东西

study_overlay_string = input(defval = "true", title = "Study Overlay", options = ["true", "false"])
study_overlay_bool = true
if study_overlay_string == "false"
    study_overlay_bool = false
study("My Script", overlay = study_overlay_bool)

可以将这项研究添加到图表中,但更改设置时,没有任何反应!

【问题讨论】:

    标签: pine-script tradingview-api


    【解决方案1】:

    不,overlay 参数属于const bool 类型,因此您不能使用输入向其传递值。所有基于输入的变量都有input 类型的形式;输入比const窄,不能转换成const

    您的脚本有效,因为您在if 块中使用= 而不是:=。您无需为全局范围study_overlay_bool 变量分配值,而是创建一个具有相同名称的单独局部范围变量(注意应出现在控制台中的编译器警告)。如果你在那里使用:=,你会得到预期的类型错误。

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 2022-09-29
      • 2010-11-01
      • 2010-10-03
      相关资源
      最近更新 更多