关于TradingView Custom Screener指标调用screenerFunc()报错的求助
问题原因
你遇到的报错是因为CustomScreener对screenerFunc()的返回值有固定格式要求:该函数必须返回元组结构,而你当前直接返回了单个series[bool]类型的形态触发布尔值,不符合参数解构要求。
解决步骤
1. 调整screenerFunc()返回结构
按要求修改函数写法,至少返回2个元素的元组:
- 第一个元素:布尔值,代表当前标的是否符合你的自定义形态筛选条件
- 第二个元素:字符串,为标签展示内容,可直接嵌入标的代码
示例代码如下:
// 此处替换为你自己整合的多形态触发逻辑,返回布尔值即可 customPatternMatch = 你的形态触发条件表达式 screenerFunc() => isMatch = customPatternMatch // 符合条件时展示标的代码+提示,不符合时返回空 displayText = isMatch ? str.tostring(syminfo.ticker) + " 匹配自定义形态" : na // 必须返回元组结构,和后续参数配置对应 [isMatch, displayText]
2. 匹配指标参数配置
打开CustomScreener的设置面板,将「返回值数量」选项设置为2,和你返回的元组元素数量完全对应,避免再次出现结构不匹配错误。
3. 筛选展示设置
在指标的「展示规则」中,勾选「仅展示符合筛选条件的标的」,即可在指标面板的标签栏直接看到所有符合你自定义形态的标的名称,不需要逐个打开K线查看。
注意事项
- 不要在
screenerFunc()内部使用跨品种调用、未来函数类逻辑,会导致筛选结果不稳定 - 自定义形态的触发逻辑必须输出稳定的布尔序列,不要返回na、数值等其他类型的结果
内容的提问来源于stack exchange,提问作者VICKY
相关产品推荐
相关产品推荐

