Pine Script指标开发:连续小实体K线上色需求实现问询
TradingView连续小实体K线上色指标解决方案
问题核心
需要识别连续1-5根实体占自身高低点比例<50%的K线,且这些连续K线的前一根K线低点低于该连续段的最低低点,最终给这些符合条件的连续K线统一上色。
修正后的完整代码
//@version=5 indicator("连续小实体K线上色", overlay=true) // 单根K线符合小实体条件的判断 is_small_body = math.abs(open - close) < 0.5 * math.abs(high - low) // 追踪连续符合条件的K线数量 var int consecutive_count = 0 consecutive_count := is_small_body ? consecutive_count + 1 : 0 // 计算当前连续段的最低低点 var float consecutive_low = na consecutive_low := is_small_body ? ta.lowest(low, consecutive_count) : na // 判断前一根非符合条件K线的低点是否低于连续段最低低点 prev_bar_low = ta.valuewhen(not is_small_body, low, 0) valid_prev_low = consecutive_count >= 1 ? prev_bar_low < consecutive_low : false // 最终条件:连续数在1-5之间,且前一根K线低点符合要求 should_color = consecutive_count >= 1 and consecutive_count <= 5 and valid_prev_low // 给符合条件的连续K线上色 barcolor(should_color ? color.red : na)
代码逻辑说明
- 单根K线判断:
is_small_body直接计算实体占高低点的比例,判断是否小于50%。 - 连续计数追踪:用
consecutive_count变量,符合条件就加1,不符合就重置为0,精准记录当前连续符合条件的K线数量。 - 连续段最低低点:
consecutive_low在连续计数过程中,动态计算当前连续段的最低低点。 - 前一根K线判断:用
ta.valuewhen找到连续段开始前的最后一根非符合条件K线的低点,对比是否低于连续段的最低低点。 - 上色触发:当连续数在1-5区间,且前一根K线低点条件满足时,触发上色。
内容的提问来源于stack exchange,提问作者Kris
相关产品推荐
相关产品推荐

