求Pine Script代码:实现数值降序排序并展示前5个及变量名至表格
Pine Script 实现数值降序排序并展示前5名表格
下面是满足需求的Pine Script代码,它会将指定数值按降序排序,并用表格展示前5个数值及其对应变量名称:
//@version=5 indicator("Top 5 Sorted Values Table", overlay=false) // 定义示例变量(可替换为你自己的指标/数值) rsi_val = ta.rsi(close, 14) macd_val = ta.macd(close, 12, 26, 9).macd atr_val = ta.atr(14) cci_val = ta.cci(close, 20) roc_val = ta.roc(close, 12) bollinger_val = (close - ta.sma(close, 20)) / ta.stdev(close, 20) // 创建存储名称和数值的数组 var val_array = array.new<tuple>() array.clear(val_array) array.push(val_array, tuple("RSI", rsi_val)) array.push(val_array, tuple("MACD", macd_val)) array.push(val_array, tuple("ATR", atr_val)) array.push(val_array, tuple("CCI", cci_val)) array.push(val_array, tuple("ROC", roc_val)) array.push(val_array, tuple("Bollinger", bollinger_val)) // 按数值降序排序数组 array.sort(val_array, (a, b) => tuple.get(b, 1) - tuple.get(a, 1)) // 创建表格并设置样式 var table top_table = table.new(position.top_right, 2, 6, border_width=1, border_color=color.gray) // 填充表头 table.cell(top_table, 0, 0, "指标名称", text_color=color.white, bg_color=color.blue) table.cell(top_table, 1, 0, "数值", text_color=color.white, bg_color=color.blue) // 填充前5个排序后的内容 for i = 0 to math.min(4, array.size(val_array)-1) current_item = array.get(val_array, i) name = tuple.get(current_item, 0) value = tuple.get(current_item, 1) table.cell(top_table, 0, i+1, str.tostring(name), text_color=color.white) table.cell(top_table, 1, i+1, str.tostring(value, "#.##"), text_color=color.white)
代码说明:
- 可直接替换示例中的
rsi_val、macd_val等变量为你需要排序的自定义数值 - 用
tuple存储变量名称和对应数值,排序时通过比较元组的第二个元素(数值)实现降序逻辑 - 表格固定在图表右上角,表头用蓝色背景区分,数值保留两位小数展示
- 若参与排序的数值不足5个,会自动展示全部现有数值
内容的提问来源于stack exchange,提问作者taha
相关产品推荐
相关产品推荐

