You need to enable JavaScript to run this app. Pine Script是否具备可用于交易代码处理的字符串替换/替代函数?
优惠活动
大模型
产品
解决方案
定价
更多

Pine Script是否具备可用于交易代码处理的字符串替换/替代函数?

Pine Script 实现交易代码字符替换适配Quandl数据源的方法

场景说明

当前用于通过Quandl获取每日做空成交量的脚本,直接拼接syminfo.ticker生成数据源标识时,存在优先股、分级股(如BRK.A、BRK.B)取数失败的问题。原因是这类带层级标识的交易代码在Quandl侧的格式,会把代码中的字面句点替换为斜杠或下划线,和TradingView提供的原生交易代码格式不匹配。

原有实现代码:

quandl_ticker = "QUANDL:FINRA/FNSQ_" + syminfo.ticker
quandl_dly_sh_vol = security(quandl_ticker, "D", close )

期望的实现逻辑是把这类代码中的句点替换为下划线,例如将BRK.B转换为BRK_B,适配Quandl的格式要求。

对应实现方案

Pine Script 原生提供字符串替换函数,可以直接实现上述转换需求,无需自行编写遍历匹配逻辑。

  • 可使用的核心替换函数:str.replace_all()
    • 功能:遍历输入的目标字符串,将所有匹配到的指定旧字符串,全部替换为自定义的新字符串
    • 基础语法:str.replace_all(需要处理的原字符串, 待替换的旧字符/字符串, 替换后的新字符/字符串)

修改后的可运行代码

在原有拼接逻辑前增加一步交易代码的格式处理即可:

// 替换交易代码中的所有句点为下划线,适配Quandl格式
formatted_ticker = str.replace_all(syminfo.ticker, ".", "_")
quandl_ticker = "QUANDL:FINRA/FNSQ_" + formatted_ticker
quandl_dly_sh_vol = security(quandl_ticker, "D", close )

补充说明:该函数为Pine Script v5及以上版本的内置标准函数;若使用v4版本,可通过多次调用str.replace()实现同等效果,推荐优先升级脚本到v5版本,str.replace_all()可以一次性覆盖所有带句点的特殊交易代码场景,适配性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 07:36:05