如何遍历字符串判断是否包含‘1’?及订单ID字符串处理逻辑实现
解决方案
1. 实现orderIds字符串拼接
先完成订单ID的逗号分隔拼接逻辑,在Pine Script中按标准语法实现如下:
// 初始化空字符串 orderIds = "" // 遍历所有开仓订单,拼接entry_id for idx = 0 to strategy.opentrades - 1 // 最后一个订单后不加逗号 orderIds := orderIds + strategy.opentrades.entry_id(idx) + (idx == strategy.opentrades - 1 ? "" : ", ")
注:Pine Script中字符串变量更新需用
:=,原代码的+=写法在部分版本中不兼容,建议使用标准赋值方式。
2. 判断字符串是否含'1'并设置buy1
高效实现(用内置函数)
直接调用Pine Script的str.contains()函数即可快速判断,无需手动遍历:
buy1 = false // 检查orderIds中是否包含字符'1',满足条件则设为true if str.contains(orderIds, "1") buy1 := true
手动遍历实现(按需选用)
如果需要手动遍历字符串每个字符判断,可参考以下代码:
buy1 = false strLength = str.length(orderIds) // 逐个遍历字符串字符 for i = 0 to strLength - 1 currentChar = str.substr(orderIds, i, 1) if currentChar == "1" buy1 := true break // 找到目标字符后直接退出循环,提升效率
内容的提问来源于stack exchange,提问作者MENTORJJ
相关产品推荐
相关产品推荐

