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

如何使用Pinescript处理字符串数组并创建布尔输入变量

PineScript 需求解决方案

1. 字符串数组清理(移除指定子串)

针对需要移除'NSE:'、'CNX'、'NIFTY'生成目标数组的需求,str.split()更适合固定分隔符拆分场景,这里用**链式str.replace()**直接移除多规则子串更高效。

实现代码

// 定义单字符串清理函数
cleanTicker(str) =>
    str.replace(str, "NSE:", "")  // 移除前缀NSE:
        .replace("CNX", "")       // 移除中间子串CNX
        .replace("NIFTY", "")     // 移除后缀NIFTY

// 原数组
si_title_arr = array.from('NSE:CNXAUTO', 'NSE:BANKNIFTY', 'NSE:CNXENERGY')
// 生成清理后的新数组
cleaned_ticker_arr = array.new_string()
for i = 0 to array.size(si_title_arr) - 1
    original_str = array.get(si_title_arr, i)
    array.push(cleaned_ticker_arr, cleanTicker(original_str))

执行后cleaned_ticker_arr的元素为:['AUTO', 'BANK', 'ENERGY'],完全符合需求。

2. 创建布尔输入变量

使用PineScript内置的input.bool()函数创建交互式布尔输入,替代直接赋值false的写法,用户可在图表设置面板手动切换开关状态。

实现代码

// 创建布尔输入变量,支持在图表设置中调整
i_show_tickerid = input.bool(title="显示原始Ticker ID", defval=false, group="显示设置")

完整整合代码(结合现有逻辑)

// 创建布尔输入变量
i_show_tickerid = input.bool(title="显示原始Ticker ID", defval=false, group="显示设置")

// 初始化原数组与透明度数组(需确保transp_arr已定义)
si_title_arr = array.from('NSE:CNXAUTO', 'NSE:BANKNIFTY', 'NSE:CNXENERGY')
transp_arr = array.from(90, 90, 90)
tc = table.new(position.top_right, columns=4, rows=3) // 初始化表格

// 字符串清理函数
cleanTicker(str) =>
    str.replace(str, "NSE:", "")
        .replace("CNX", "")
        .replace("NIFTY", "")

// 生成清理后的数组
cleaned_ticker_arr = array.new_string()
for i = 0 to array.size(si_title_arr) - 1
    array.push(cleaned_ticker_arr, cleanTicker(array.get(si_title_arr, i)))

// 表格渲染逻辑
if barstate.islast
    for i = 0 to array.size(si_title_arr) - 1
        // 根据输入变量切换显示内容
        text_i = i_show_tickerid ? array.get(si_title_arr, i) : array.get(cleaned_ticker_arr, i)
        transp_i = array.get(transp_arr, i)
        table.cell(table_id=tc, column=i + 1, row=2, text=text_i, text_color=#808080, bgcolor=color.new(#808080, transp_i))

内容的提问来源于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.07.06 04:46:30