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

如何在满足多条件时为K线柱着色?含SH、SL与RSI条件

解决方案

以下是实现你需求的Pine Script代码,包含详细注释:

//@version=5
indicator("摆动高低点RSI蜡烛着色", overlay=true)

// 按你提供的定义计算摆动高点(SH)和摆动低点(SL)
SH = open[5] < close[5] and open[4] < close[4] and open[3] < close[3] and open[2] > close[2] and open[1] > close[1] and open[0] > close[0]
SL = open[5] > close[5] and open[4] > close[4] and open[3] > close[3] and open[2] < close[2] and open[1] < close[1] and open[0] < close[0]

// 计算RSI指标(可调整周期长度)
rsi周期 = 14
rsi数值 = ta.rsi(close, rsi周期)

// 定义超买超卖阈值(可根据需求调整)
超卖阈值 = 30
超买阈值 = 70

// 条件1:10-12根K线前出现SH,且当前RSI处于超卖
条件_SH = (SH[10] or SH[11] or SH[12]) and rsi数值 < 超卖阈值

// 条件2:10-12根K线前出现SL,且当前RSI处于超买
条件_SL = (SL[10] or SL[11] or SL[12]) and rsi数值 > 超买阈值

// 合并两个条件
着色条件 = 条件_SH or 条件_SL

// 根据条件为当前K线着色(这里用蓝色,可自行修改颜色)
barcolor(着色条件 ? color.new(color.blue, 0) : na)

代码说明

  1. 摆动高低点定义:直接使用你提供的SH和SL逻辑,判断当前K线是否符合"三连阳后三连阴"(SH)或"三连阴后三连阳"(SL)的形态。
  2. RSI计算:采用标准14周期RSI,你可以通过修改rsi周期参数调整。
  3. 超买超卖判断:默认使用30(超卖)和70(超买)的通用阈值,可根据交易品种调整。
  4. 时间范围检查:通过SH[10]、SH[11]、SH[12]判断10-12根K线前是否出现过SH形态(同理SL)。这里的"出现SH"指的是该形态的最后一根K线(三连阴的最后一根)位于10-12周期前。
  5. 蜡烛着色:当任一条件满足时,将当前K线染成蓝色(可替换为你喜欢的颜色,比如color.red、color.green等)。

注意事项

如果你的需求是摆动高低点的峰值位于10-12周期前(而非形态结束的K线),需要调整时间偏移:

  • 你的SH形态中,峰值是三连阳的最后一根K线(即SH定义中的open[3] < close[3]对应的K线),距离形态结束的K线有3个周期差。
  • 因此需要将条件中的偏移量减3,比如将SH[10]改为SH[7](10-3=7),对应的条件变为:
    条件_SH = (SH[7] or SH[8] or SH[9]) and rsi数值 < 超卖阈值
    条件_SL = (SL[7] or SL[8] or SL[9]) and rsi数值 > 超买阈值
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:31:17