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

PineScript技术问题:计算枢轴点趋势线与区间最远价格的距离

解决PineScript趋势线与区间最远价格点距离计算问题

你的代码存在几个关键问题,导致计算结果不正确:

  • 循环中直接使用low获取的是当前K线的最低价,而非循环索引i对应的K线最低价,应该用low[i]
  • 未对距离取绝对值,若价格位于趋势线上方,计算出的距离为负数,无法被判定为最大值
  • 未在每次计算新区间前重置L1H_maxDistance,会保留上一个区间的最大值

修正后的代码示例

// 确保在新的枢轴区间开始时重置最大值
if barstate.islast and not na(L1_lastPivotHighIndex1) and not na(L1_lastPivotHighIndex2)
    L1H_maxDistance := na
    // 遍历两个枢轴点之间的所有K线
    for i = L1_lastPivotHighIndex1 to L1_lastPivotHighIndex2
        // 跳过无效的K线索引
        if i < 0 or i > bar_index
            continue
        // 获取趋势线在当前索引K线的价格
        trendlineValue_L1H = line.get_price(L1_highLine, i)
        // 计算趋势线与当前K线最低价的绝对距离(若要找上方最远点则用high[i])
        distance_L1H = math.abs(trendlineValue_L1H - low[i])
        // 更新最大距离
        if na(L1H_maxDistance) or distance_L1H > L1H_maxDistance
            L1H_maxDistance := distance_L1H

额外说明

  1. 若你需要计算的是趋势线与区间内最高价的最远距离,只需将low[i]替换为high[i]
  2. 加入i < 0 or i > bar_index的判断,避免因无效索引导致的错误
  3. 放在barstate.islast中执行,仅在最后一根K线计算,避免重复计算消耗性能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:52:05