在TradingView Pine Script中如何从tickerid“Binance:BTCUSDT”提取BTC文本?
Pine Script从tickerid提取指定交易对主币的实现方法
核心实现逻辑
目标字符串BINANCE:BTCUSDT的结构为交易所前缀:主币代码+计价币代码,我们可以通过两次字符串操作提取BTC:
- 按冒号拆分字符串,去掉交易所前缀,拿到完整交易对部分
BTCUSDT - 从交易对中去掉末尾的计价币
USDT,得到主币BTC
实现代码(Pine Script v5版本)
//@version=5 indicator("提取交易对主币示例", overlay=false) // 原始tickerid,可直接赋值为"BINANCE:BTCUSDT"测试,或用syminfo.tickerid获取当前标的id raw_ticker = "BINANCE:BTCUSDT" // 第一步:按冒号拆分,取索引为1的元素即交易对部分 ticker_part = str.split(raw_ticker, ":")[1] // 第二步:去掉末尾4位USDT,截取前3位得到BTC base_coin = str.substring(ticker_part, 0, str.length(ticker_part) - 4) // 输出验证结果 var label res_label = label.new(bar_index, high, "提取结果:" + base_coin, color = color.yellow) plot(close)
多计价币通用版本
如果需要适配USDC、BUSD、ETH等不同计价币的场景,可以用循环动态匹配计价币后缀:
quote_coins = ["USDT", "USDC", "BUSD", "BTC", "ETH"] ticker_part = str.split(raw_ticker, ":")[1] base_coin = "" for q in quote_coins if str.endswith(ticker_part, q) base_coin := str.substring(ticker_part, 0, str.length(ticker_part) - str.length(q)) break
注意事项
- 以上代码仅适用于Pine Script v5版本,v4版本需要替换对应字符串函数:
strsplit代替str.split、strlen代替str.length、strsub代替str.substring - 如果交易对带特殊后缀(比如永续合约的
_PERP),需要先去掉后缀再执行拆分逻辑
内容的提问来源于stack exchange,提问作者Almonds Mỹ phẩm
相关产品推荐
相关产品推荐

