TradingView [PINE]:我可以通过设置动态更改研究覆盖吗?
TradingView [PINE]: Can I change study overlay dynamically via the settings?
定义 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
我感兴趣的地方 overlay
属性
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)
可以将此研究添加到图表中,但是更改设置时没有任何反应!
不,overlay
参数属于 const bool
类型,因此您不能使用输入向其传递值。所有基于输入的变量都具有 input
类型形式;输入比 const
更窄,无法转换为 const
.
您的脚本之所以有效,是因为您在 if
块中使用 =
而不是 :=
。您不是为全局范围 study_overlay_bool
变量赋值,而是创建一个单独的同名局部范围变量(注意应该出现在控制台中的编译器警告)。如果你在那里使用 :=
,你会得到预期的类型错误。
定义 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
我感兴趣的地方 overlay
属性
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)
可以将此研究添加到图表中,但是更改设置时没有任何反应!
不,overlay
参数属于 const bool
类型,因此您不能使用输入向其传递值。所有基于输入的变量都具有 input
类型形式;输入比 const
更窄,无法转换为 const
.
您的脚本之所以有效,是因为您在 if
块中使用 =
而不是 :=
。您不是为全局范围 study_overlay_bool
变量赋值,而是创建一个单独的同名局部范围变量(注意应该出现在控制台中的编译器警告)。如果你在那里使用 :=
,你会得到预期的类型错误。