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

如何在PineScript中比较数组并通过循环在表格展示结果?

在PineScript中实现数组循环判断并展示为表格

这个需求在PineScript中完全可行,下面是具体实现方案:

1. 循环实现判断逻辑

首先确保三个数组长度一致,通过array.size()获取数组长度后,用for循环遍历每个索引,对对应位置的元素执行判断逻辑,将结果存入新的字符串数组中。

核心逻辑:遍历每个索引i,若float_1_array[i] > 1且float_2_array[i] > 4,则取string_array[i]作为结果,否则取空字符串。

2. 用Table组件展示结果

PineScript的table函数可以创建自定义表格,用来展示原始数组数据和判断结果,让输出更直观。

完整代码示例

//@version=5
indicator("数组判断与表格展示", overlay=false)

// 定义输入数组
string_array = array.from("A", "B", "C", "D")
float_1_array = array.from(1.5, 2.5, 0.8, 3.2)
float_2_array = array.from(4.5, 5.5, 6.5, 3.8)

// 初始化结果数组
result_array = array.new_string()

// 循环执行判断逻辑
array_size = array.size(string_array)
for i = 0 to array_size - 1
    float1_val = array.get(float_1_array, i)
    float2_val = array.get(float_2_array, i)
    // 执行判断
    result = float1_val > 1 and float2_val > 4 ? array.get(string_array, i) : ""
    array.push(result_array, result)

// 创建并填充表格
var table result_table = table.new(position.top_right, 4, array_size + 1)

// 设置表头
table.cell(result_table, 0, 0, "序号")
table.cell(result_table, 1, 0, "字符串值")
table.cell(result_table, 2, 0, "Float1值")
table.cell(result_table, 3, 0, "判断结果")

// 填充表格内容
for i = 0 to array_size - 1
    table.cell(result_table, 0, i + 1, str.tostring(i + 1))
    table.cell(result_table, 1, i + 1, array.get(string_array, i))
    table.cell(result_table, 2, i + 1, str.tostring(array.get(float_1_array, i)))
    table.cell(result_table, 3, i + 1, array.get(result_array, i))

代码说明

  • 用var声明表格,避免每次脚本重绘都重新创建表格
  • 循环遍历数组时,通过array.get()获取对应索引的元素值
  • 判断逻辑使用PineScript的三元运算符condition ? val1 : val2实现,和你描述的逻辑完全匹配
  • 表格的列数设为4(序号、字符串值、Float1值、判断结果),行数为数组长度+1(包含表头)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:13:17