如何为表格单元格添加双条件背景色设置(>20绿/<-20红)
解决方案
你需要用嵌套三元运算符实现多条件判断,同时注意把原代码里的close替换为需求中的finalvalue(你的判断逻辑是基于最终值而非收盘价)。修改后的代码如下:
table.cell(panel, 5, 0, str.tostring(finalvalue), bgcolor=finalvalue > 20 ? color.green : finalvalue < -20 ? color.red : color.transparent)
逻辑说明:
- 优先判断
finalvalue > 20:成立则背景色设为color.green - 若不成立,进入第二层判断
finalvalue < -20:成立则背景色设为color.red - 两个条件都不满足时(即
-20 ≤ finalvalue ≤ 20),背景色设为color.transparent(透明,你也可以换成其他默认颜色比如color.gray)
如果追求更强的可读性,也可以先将背景色赋值给变量,再传入参数:
var bgcolorValue = color.transparent bgcolorValue := finalvalue > 20 ? color.green : finalvalue < -20 ? color.red : color.transparent table.cell(panel, 5, 0, str.tostring(finalvalue), bgcolor=bgcolorValue)
这种写法逻辑更清晰,后期维护也更方便。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

