You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在可变数量K线中确定高低价及对应K线编号?函数使用疑问

解决可变K线范围的高低价及相关函数用法问题

一、highestall() / lowestall() 函数用法

这两个函数用于遍历当前图表已加载的全部K线,直接返回全局范围内的最高/最低价,无需额外参数(部分平台支持可选参数,但核心逻辑是覆盖全量K线)。示例代码:

// 获取全图表历史最高价
globalHigh = highestall(high)
// 获取全图表历史最低价
globalLow = lowestall(low)

如果需要限定到“从上市到当前K线”这类全局区间,直接调用即可,它们会自动处理所有已存在的K线数据。

二、getvalue() 函数用法

getvalue() 是提取指定索引位置单根K线数据的工具,语法为 getvalue(source, offset):

  • source:目标数据源(如high、close、volume)
  • offset:偏移K线数(0代表当前K线,1代表前一根,以此类推)

示例代码:

// 获取前3根K线的收盘价
prev3Close = getvalue(close, 3)
// 获取当前K线的开盘价(等价于直接写open)
currentOpen = getvalue(open, 0)

它的适用场景是你明确需要某一根特定K线的数值,而非范围类统计。

三、可变K线范围的最高价/最低价及对应K线编号

针对旧版highest()不支持变量参数的问题,可通过循环遍历+手动比较实现;新版Pine Script则有更简洁的方案:

1. 通用循环实现(兼容旧版)

假设lookbackLength是你动态计算的K线范围长度(比如金叉以来的K线数):

// 示例:定义可变范围——最近一次5日均线上穿20日均线以来的K线数
lookbackLength = ta.barssince(ta.crossover(ta.sma(close,5), ta.sma(close,20))) + 1

// 初始化变量存储结果
var float rangeHigh = na
var int highBarIndex = na
var float rangeLow = na
var int lowBarIndex = na

// 范围变化时重新计算
if lookbackLength != lookbackLength[1]
    rangeHigh = low // 初始化起点
    rangeLow = high
    highBarIndex = bar_index
    lowBarIndex = bar_index
    // 遍历范围内所有K线
    for i = 0 to lookbackLength - 1
        currentHigh = getvalue(high, i)
        currentLow = getvalue(low, i)
        // 更新最高价及对应K线编号
        if currentHigh > rangeHigh
            rangeHigh = currentHigh
            highBarIndex = bar_index - i
        // 更新最低价及对应K线编号
        if currentLow < rangeLow
            rangeLow = currentLow
            lowBarIndex = bar_index - i

2. 新版Pine Script简化方案

Pine Script v5及以上版本中,ta.highest()已支持变量参数,搭配ta.valuewhen()可直接获取对应K线编号:

lookbackLength = 15 // 可变长度,可根据条件动态调整
rangeHigh = ta.highest(high, lookbackLength)
rangeLow = ta.lowest(low, lookbackLength)

// 获取最高价对应的最新K线编号
highBarIndex = ta.valuewhen(high == rangeHigh, bar_index, 0)
// 获取最低价对应的最新K线编号
lowBarIndex = ta.valuewhen(low == rangeLow, bar_index, 0)

ta.valuewhen()的第三个参数0表示取最近一次满足条件的K线编号,若要取更早的可调整为1、2等。


内容的提问来源于stack exchange,提问作者BeetleBum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:50:49