如何去除Bybit永续合约代码末尾的.P后缀?
交易策略注释中合约代码去除.P后缀的实现方案
直接用Pine Script的字符串处理函数封装通用清理逻辑,所有点位复用该逻辑即可,无需硬编码:
定义清理ticker的自定义函数
两种实现方式可选,按需使用:- 针对固定
.P后缀的简单替换:// 去除.P后缀的函数 cleanTicker(tickerStr) => str.replace(tickerStr, ".P", "") - 通用处理任意点后缀(找到最后一个点截断):
// 通用去除点后缀的函数 cleanTicker(tickerStr) => dotIndex = str.find(tickerStr, ".") dotIndex != -1 ? str.substring(tickerStr, 0, dotIndex) : tickerStr
- 针对固定
在注释中统一复用函数
所有开仓、止盈、止损的注释都调用这个函数生成标准化合约代码,示例:// 生成统一格式的注释 generateComment(action, qty) => ticker = cleanTicker(syminfo.ticker) str.format("{0} {1} q={2}", action, ticker, str.tostring(qty)) // 开仓调用示例 strategy.entry("Long", strategy.long, comment=generateComment("Buy", 100)) // 止盈调用示例 strategy.exit("Take Profit", "Long", limit=close*1.05, comment=generateComment("Take Profit", 100))
这样所有点位的注释都会自动去除.P后缀,告警消息中调用{{strategy.order.comment}}就能拿到符合Bybit要求的合约代码格式。
内容的提问来源于stack exchange,提问作者Durrr
相关产品推荐
相关产品推荐

