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

获取最后N根K线枢轴点:回溯1000根K线无绘图问题求助

排查Pine Script枢轴点标注无显示问题

原代码核心问题

  • 循环变量i完全未使用:for i = 0 to 1000只是机械重复1001次相同逻辑,根本没遍历最后1000根K线的不同位置
  • 枢轴点位置固定:_possiblePivotHigh = _series[_rightBars]始终盯着同一个偏移位置的K线,未随循环移动检查点
  • 自定义数组逻辑错误:构建数组的顺序和最大值索引计算不匹配,导致枢轴点判断条件永远不成立

修正后的代码

//@version=5
indicator("最后N根K线枢轴高点标注", overlay=true)

// 可配置参数
left_bars = input.int(10, "左侧对比K线数")
right_bars = input.int(10, "右侧对比K线数")
lookback_num = input.int(1000, "回溯K线总数")

if barstate.islast
    // 遍历最后lookback_num根内的所有可能枢轴点位置
    for i = 0 to lookback_num - left_bars - right_bars
        // 定位当前要检查的目标K线偏移量
        target_bar_offset = right_bars + i
        // 用内置函数判断该位置是否为枢轴高点
        pivot_high_val = ta.pivothigh(left_bars, right_bars)[target_bar_offset]
        
        if not na(pivot_high_val)
            // 获取枢轴点的价格和K线索引
            pivot_price = high[target_bar_offset]
            pivot_bar_idx = bar_index[target_bar_offset]
            // 绘制标注标签
            label.new(pivot_bar_idx, pivot_price, str.tostring(pivot_price, "#.####"), 
                      color=color.new(color.red, 0), style=label.style_label_down, size=size.small)

修正说明

  1. 替换自定义逻辑为内置函数:直接用ta.pivothigh()判断枢轴点,避免自己写数组遍历的索引错误,效率也更高
  2. 正确遍历目标K线:通过target_bar_offset = right_bars + i让循环逐步移动检查位置,覆盖回溯范围内的所有可能枢轴点
  3. 简化变量逻辑:删除冗余的数组构建和索引计算,代码更易读且不易出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:47:39