如何在Pine Script表格中根据条件绘制上下箭头?
在Pine Script表格中根据条件显示箭头的正确方法
你原来的问题核心是用错了工具:plotshape是用来在K线图表上绘制图形的,根本没法直接嵌入表格单元格。表格里要实现条件箭头,得用Unicode箭头符号配合table.cell来完成,下面是具体的修正方案:
核心思路
Pine Script的表格单元格支持显示Unicode字符,我们可以直接调用向上/向下箭头的Unicode符号,再根据条件动态选择符号和文本颜色,把它们嵌入到单元格的文本内容里。
修正后的完整代码
//@version=5 indicator("表格箭头示例", overlay=true) // 自定义带箭头的单元格填充函数 f_fillCellWithArrow(_table, _column, _row, _title, _value, _isBullish, _bgcolor) => // 根据布尔值选择箭头符号 _arrow = _isBullish ? "↑" : "↓" // 组合标题、箭头和数值文本 _cellText = _title + "\n" + _arrow + " " + str.tostring(_value) // 填充单元格,同时根据条件切换文本颜色 table.cell(_table, _column, _row, _cellText, bgcolor=_bgcolor, text_color=_isBullish ? color.green : color.red) // 模拟你的业务变量(可替换为自己的逻辑) drawTable = input.bool(true, "显示表格") tf1bull = input.bool(true, "TF1看涨信号") lbrTF1 = input.float(1.23, "LBR数值") // 初始化表格 var divTable = table.new(position.top_right, 2, 2) var bgcolor = color.new(color.black, 0) if drawTable if barstate.islastconfirmedhistory // 调用带箭头的填充函数生成单元格内容 f_fillCellWithArrow(divTable, 0, 1, "TF1信号", lbrTF1, tf1bull, bgcolor)
关键说明
- 箭头符号自定义:除了
↑/↓,你还可以用更醒目的Unicode符号,比如🟢↑或🔴↓,直接替换代码里的_arrow值即可。 - 语法修正:你原来的代码存在两处语法错误——
if tf1bull == true后缺少大括号、plotshape的参数写法完全不符合Pine Script规则,现在的代码直接用表格函数完成所有逻辑,无需再调用plotshape。 - 布局调整:如果想让箭头单独占一行,只需修改文本拼接逻辑,比如:
_cellText = _title + "\n" + _arrow + "\n" + str.tostring(_value)
内容的提问来源于stack exchange,提问作者John Smith
相关产品推荐
相关产品推荐

