Pine Script双参数条件颜色格式化问题及表格文本颜色设置求助
问题修复与用法说明
一、修复背景色格式化的报错问题
你的代码报错核心是条件判断里存在多余的闭合括号,同时存在行索引越界、逻辑冗余的问题,修复如下:
- 原代码中
if cumdelta[29]<0 and cumdelta[29]<cvdAverage[29]*1.05)多了闭合括号,两处同条件判断都有这个问题 table.new初始化时rows=1,但后续调用了row=2(Pine Script行/列索引从0开始),会导致索引越界,需把rows改为3- 优化条件判断逻辑,用
else if避免重复判断
修复后的完整代码:
//Delta Table Table_Def = table.new(position = position.bottom_right, columns = 30, rows = 3, frame_color = color.black, frame_width = 1, border_color = color.black, border_width = 1) table.cell(Table_Def, column = 0, row = 2, text = "CumDelta", text_color = color.black, text_size = size.auto, text_halign = text.align_left) // 修复条件判断的括号与逻辑 bgColor = if cumdelta[29] > 0 and cumdelta[29] > cvdAverage[29] * 1.05 color.new(color.lime, 0) else if cumdelta[29] > 0 and cumdelta[29] > cvdAverage[29] * 1.025 color.new(color.lime, 50) else if cumdelta[29] < 0 and cumdelta[29] < cvdAverage[29] * 1.05 color.new(color.fuchsia, 0) else if cumdelta[29] < 0 and cumdelta[29] < cvdAverage[29] * 1.025 color.new(color.fuchsia, 50) else color.new(color.gray, 50) table.cell(Table_Def, column = 1, row = 2, text = str.tostring(cumdelta[29]), text_color = color.black, bgcolor = bgColor, text_size = size.auto, text_halign = text.align_right)
二、table.cell_set_text()的颜色格式化方法
table.cell_set_text()仅负责修改单元格的文本内容,无法直接设置颜色。要调整文本色或背景色,需搭配table.cell_set_style()函数:
示例代码:
// 创建表格 myTable = table.new(position.bottom_right, 2, 2) // 初始化单元格 table.cell(myTable, 0, 0, text = "初始文本") // 修改文本内容 table.cell_set_text(myTable, 0, 0, "更新后的文本") // 设置文本颜色和背景色 table.cell_set_style(myTable, 0, 0, text_color = color.white, bgcolor = color.blue)
关键说明:
table.cell_set_style()可单独设置text_color、bgcolor,也可同时配置文本对齐、字号等其他样式- 需动态更新颜色时,可把颜色逻辑封装成变量,在需要时调用
table.cell_set_style()完成更新
内容的提问来源于stack exchange,提问作者Vishnubhatla venkata subrahman
相关产品推荐
相关产品推荐

