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

如何在Pine Script中获取固定的最后K线开盘价并用于阻力位筛选?

修正Pine Script阻力位绘制逻辑:基于固定最后K线开盘价判断

你当前的代码存在两个核心问题:

  • 仅在最后一根K线时才给lastcloseprice赋值,导致之前的K线在判断时该变量为na,无法正确筛选符合条件的阻力位
  • 变量名和赋值不符需求:你需要用最后一根K线的开盘价,但代码里赋值的是收盘价

以下是修正后的代码,完全满足「所有阻力位均高于固定最后一根K线开盘价,且所有K线判断都使用该固定值」的需求:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © amjupvc1234

//@version=5
indicator("ResistancePlotter", overlay=true, max_boxes_count = 50)

// 存储固定的最后一根已完成K线的开盘价,var确保值全程不变
var float lastBarOpen = na
if barstate.islast
    lastBarOpen := open[1]  // 获取最后一根已走完K线的开盘价作为固定值

RSI = ta.rsi(close, 14)

// 修正条件:前阳后阴、RSI维持在50以上,且当前K线开盘价高于固定的最后K线开盘价
Condition = open[1] < close[1] and close < open and RSI[1] > 50 and RSI > 50 and open > lastBarOpen

if Condition
    // 取当前K线和前一根K线中的最高价作为阻力位上边界
    boxHigh = math.max(high[1], high)
    boxLow = open
    // 绘制向右延伸的阻力箱体
    box.new(bar_index[1], boxLow, bar_index, boxHigh, #e479bd, 1, line.style_solid, extend.right, xloc.bar_index, color.new(color.red, 90))

关键修改说明

  • 固定价格存储:用var声明lastBarOpen,确保在图表加载后,该值会被设置为最后一根已完成K线的开盘价,并且后续不会随K线更新而改变,完全符合「固定值」的要求
  • 条件判断修正:将原代码中的lastcloseprice替换为lastBarOpen,确保所有K线的判断都基于同一个固定的开盘价
  • 阻力位边界优化:用math.max(high[1], high)取两根K线的最高价作为箱体上边界,避免因单根K线高低波动导致阻力位不准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:17:14