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

Trading View三色摆动关系指标:内部K线匹配前K线颜色实现问询

TradingView三色K线指标:内部K线继承前K线颜色解决方案

你的核心问题是错误地尝试用barcolor()函数判断前一根K线的颜色——barcolor()是用来设置颜色的输出函数,不能作为条件判断的依据。正确的做法是先将每根K线的颜色规则存储为变量,再让内部K线直接继承前一根的颜色变量。

修正后的完整代码

//@version=5
indicator("3 Colour Bar Chart", overlay=true)

// 1. 定义非内部K线的颜色规则(替换为你已完成的高低/外部K线逻辑)
// 示例:这里模拟你的红绿蓝三色逻辑,可根据实际需求修改
baseBarColor = close > open ? color.green : 
               close < open ? color.red : 
               color.blue

// 2. 判断当前是否为内部K线
isInside = high < high[1] and low > low[1]

// 3. 确定当前K线颜色:内部K线继承前一根颜色,否则用基础颜色
currentBarColor = isInside ? baseBarColor[1] : baseBarColor

// 4. 应用K线颜色
barcolor(currentBarColor)

关键逻辑说明

  • 颜色变量存储:把非内部K线的颜色逻辑封装到baseBarColor变量中,这部分直接替换成你已经完成的高低K线、外部K线的颜色判断代码即可。
  • 内部K线判断:isInside是标准的内部K线判定条件(当前K线高低都在前一根范围内)。
  • 颜色继承:通过baseBarColor[1]直接引用前一根K线的颜色变量,实现内部K线与前一根同色的需求。

扩展复杂颜色逻辑示例

如果你的非内部K线颜色区分更细致(比如外部突破K线),可以调整baseBarColor的定义:

// 示例:区分向上/向下外部K线的颜色逻辑
isOutsideUp = high > high[1] and low > low[1]  // 向上突破外部K线
isOutsideDown = high < high[1] and low < low[1] // 向下突破外部K线
isNeutral = close == open                      // 十字星类K线

baseBarColor = isOutsideUp ? color.green : 
               isOutsideDown ? color.red : 
               isNeutral ? color.blue : 
               na

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:53:09