如何在Pine Script中截取字符串?Webhook交易对格式处理
在Pine Script中生成带下划线分隔交易对的Webhook消息
需求:
- 向Webhook发送的消息需包含下划线分隔的交易对格式(例如
BTC_USDT) - 交易对来源为
syminfo.ticker,格式是无分隔符的字符串(例如BTCUSDT) - 已知所有告警的第二个交易币种固定(例如USDT,字符数为4),需通过截取字符串拆分出前后两部分,再拼接成目标格式
实现方法
在Pine Script中,可通过str.substr()函数截取字符串,结合拼接生成目标格式:
// 设定固定计价币种的字符数,比如USDT对应4 quoteAssetLength = 4 // 截取基础币种部分:从开头到倒数第quoteAssetLength个字符前 baseAsset = str.substr(syminfo.ticker, 0, str.length(syminfo.ticker) - quoteAssetLength) // 截取计价币种部分:从倒数第quoteAssetLength个字符到结尾 quoteAsset = str.substr(syminfo.ticker, str.length(syminfo.ticker) - quoteAssetLength) // 拼接成下划线分隔的交易对 formattedPair = baseAsset + "_" + quoteAsset // 构造Webhook消息体 msg0 = str.format('"pair": "{0}"', formattedPair) msg = "{" + msg0 + "}" // 触发告警发送Webhook alert(msg, freq)
代码说明
str.length(syminfo.ticker):获取原始无分隔符交易对的总字符长度str.substr(目标字符串, 起始位置, 截取长度):- 截取基础币种时,起始位置设为0,截取长度为总长度减去固定计价币种的字符数
- 截取计价币种时,起始位置设为总长度减去固定字符数,函数会自动截取到字符串末尾
- 最后将两部分用下划线拼接,代入消息模板即可生成符合要求的Webhook内容
内容的提问来源于stack exchange,提问作者42piratas
相关产品推荐
相关产品推荐

