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

求助:Pine Script实现连续内部K线识别及差异化标记

解决方案:延伸内部K线的识别与标记

要实现你要的效果,核心是追踪基准K线的高低点范围,后续K线只要没跳出这个范围,就持续标记为内部K线。Pine Script里不能用常规循环,得用var变量来持久化存储基准值,以下是完整实现代码:

//@version=5
indicator("Extended Inside Bars", overlay=true)

// 定义原始K线类型
high_bar    = high >= high[1] and low >= low[1]
low_bar     = high <= high[1] and low <= low[1]
inside_bar  = high < high[1] and low > low[1]
outside_bar = high > high[1] and low < low[1]

// 用var变量持久化存储基准K线的高低点(仅初始化一次)
var float base_high = na
var float base_low = na

// 更新基准K线:当出现非内部K线时,把当前K线设为新基准
if not inside_bar
    base_high := high
    base_low := low

// 判定延伸内部K线:当前K线未突破基准K线的高低点
extended_inside = high < base_high and low > base_low

// 给K线上色:原始内部K线用黄色,延伸内部K线用橙色,其他用默认色
barcolor(inside_bar ? color.yellow : extended_inside ? color.orange : na)

// 可选:标记基准K线(比如用红色背景)
barcolor(not inside_bar and not extended_inside ? color.new(color.red, 80) : na)

关键逻辑说明:

  • var关键字:确保base_high和base_low只在脚本启动时初始化一次,后续K线会保留之前的数值,不会每次都重置。
  • 基准更新条件:只有当当前K线不是原始内部K线时,才更新基准——这意味着基准K线就是你说的“大K线”(比如示例里的大红K线)。
  • 延伸内部K线判定:只要当前K线的高点低于基准高点、低点高于基准低点,就标记为延伸内部K线;一旦有K线突破这个范围,基准会被新的非内部K线更新,结束当前的延伸序列。

你可以根据需求调整颜色,或者添加其他可视化标记(比如箭头、文字)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:10:26