Pine Script技术问询:如何定位指定最低价的最新K线
Pine Script 定位指定最低价的最新K线解决方案
核心思路是用持久化变量跟踪最新符合条件的K线索引,避免标记所有符合条件的K线。下面是具体修正步骤和代码示例:
1. 定义用户指定的目标最低价
先通过输入框让用户设置要定位的最低价:
// 用户输入目标最低价 targetLow = input.float(title="目标最低价", defval=0.0, tooltip="设置你要定位的最低价数值")
2. 修正pointXBar的定义
使用var关键字初始化变量,确保它不会在每根K线都重置,只在符合条件时更新为当前K线的索引:
// 初始化持久化变量,保存最新符合条件的K线索引 var int pointXBar = na // 当当前K线最低价等于目标价时,更新索引为当前K线的bar_index if low == targetLow pointXBar := bar_index
var的作用:让变量只在脚本首次加载时初始化一次,后续K线不会重置为初始值,保证能保留最新的符合条件的索引。- 只有当当前K线满足最低价条件时,才更新
pointXBar,否则它会一直保留上一次的有效值。
3. 只标记最新的符合条件K线
用bar_index == pointXBar判断当前K线是否是我们要找的最新目标K线,再用于barcolor和plotshape:
// 给最新目标K线设置颜色 barcolor(bar_index == pointXBar ? color.red : na) // 在最新目标K线下方绘制标记 plotshape(bar_index == pointXBar ? low : na, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
补充说明
如果你的条件不是“最低价等于固定值”,而是“当前K线是某段时间内的最低价”,逻辑同样适用:只需要把low == targetLow替换成你的判断条件(比如low == ta.lowest(low, 20)),然后更新pointXBar即可。
内容的提问来源于stack exchange,提问作者Rale
相关产品推荐
相关产品推荐

