TradingView Pine Script能否通过设置动态调整study的overlay属性
结论
动态调整overlay属性的需求不可行,修改设置不生效是Pine Script的固有机制限制导致的。
原因说明
study()函数的overlay参数被明确限定为const bool类型,这里的const要求参数值必须在脚本编译阶段就固定下来,不能依赖运行时才会计算生成的变量(包括input()方法生成的用户配置项)。
Pine Script的执行顺序是:先完成全脚本编译、确定包括展示窗格属性在内的全局配置,再逐根K线执行运行时代码。你代码中基于输入值动态计算得到的study_overlay_bool属于运行时变量,不会影响编译阶段已经确定的overlay配置,因此修改输入项不会触发窗格切换。
替代方案
目前有两种可选方式满足用户自定义展示位置的需求:
- 编写两个逻辑完全一致的脚本,分别将
overlay参数写死为true和false,让用户按需添加对应版本 - 保留固定的
overlay默认值,在脚本说明中告知用户可以手动调整位置:按住指标标题栏拖动到主图区域即可变为叠加模式,拖动到主图之外的区域即可变为独立窗格模式
内容的提问来源于stack exchange,提问作者delux
相关产品推荐
相关产品推荐

