You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pine V5类型问题:TradingView图表显示RSI数值plotshape传参报错咨询

错误原因

plotshape函数的text参数仅支持固定不变的常量字符串类型,你传入的vt_rsi_str是随每根K线RSI值动态变化的序列字符串,不符合参数类型要求,因此触发报错。

解决方案

改用支持动态文本的label.new函数实现需求,该函数可以在每根符合条件的K线上生成自定义内容的标签,完美适配动态显示RSI数值的场景。

修改后的代码示例:

//@version=5
indicator("K线标注RSI值", overlay=true)
vt_rsi = ta.rsi(close,14)
// 此处保留你原有的vt_rsi_up触发逻辑,可根据自身需求调整触发条件
vt_rsi_up = ta.rising(vt_rsi, 1)

if vt_rsi_up
    // 在符合条件的K线上方生成带RSI数值的箭头标签
    label.new(
        bar_index, high, 
        text = str.tostring(vt_rsi, "#"), // #代表显示整数,要保留小数可写为#.##
        color = #1848cc,
        textcolor = color.white,
        style = label.style_label_up, // 自带向上箭头效果,匹配你原来的shape.arrowup样式
        location = location.abovebar,
        size = size.small
    )
可选优化

如果觉得K线上标签太多太密,可以加标签清理逻辑,只保留最近N个标签,示例如下:

//@version=5
indicator("K线标注RSI值", overlay=true)
var label[] rsi_labels = array.new_label()
vt_rsi = ta.rsi(close,14)
vt_rsi_up = ta.rising(vt_rsi, 1)
max_label_count = 10 // 最多保留最近10个标签

if vt_rsi_up
    new_label = label.new(bar_index, high, text = str.tostring(vt_rsi, "#"), color = #1848cc, textcolor = color.white, style = label.style_label_up, location = location.abovebar, size = size.small)
    array.push(rsi_labels, new_label)
    // 超出最大数量时删除最早的标签
    if array.size(rsi_labels) > max_label_count
        label.delete(array.shift(rsi_labels))

内容的提问来源于stack exchange,提问作者Doug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:27:00