付费 / Tradingview
天行健-ICT交易模型
TradingView Pine Script v6 主图工具,融合 BPR 平衡价格区间、当前周期支撑阻力、RBS/SBR 角色互换和高周期 SNR。
快速规格
- 平台
- Tradingview
- 分类
- Indicator
- 版本
- v6.0
天行健-ICT交易模型图文教程
天行健-ICT交易模型是一个运行在 TradingView 主图上的 Pine Script v6 工具,核心由两套逻辑组成:
- BPR(Balanced Price Range,平衡价格区间):把时间窗口内先后出现、方向相反的 FVG 重叠部分标成价格区域。
- SNR(当前周期支撑阻力):用收盘价枢轴、SMA 过滤和角色互换记录支撑/阻力。
它还可以叠加 D1、H4 等高周期 SNR,并在右上角显示 V、A、RBS、SBR 和高周期说明。
BPR、支撑、阻力和角色互换都是需要验证的价格区域,不是必然反转或确定性买卖信号。任何执行前都应结合趋势、流动性、新闻、点差和自己的失效位。
一、完整盘面
图 1:XAUUSD(黄金现货/美元)5 分钟、FXCM 数据源。青绿色水平线与浅色区域是当前周期支撑,橙色或红色区域是阻力/BPR 相关标记,右上角是 SNR 说明面板。
建议按以下顺序阅读:
价格趋势 → BPR 区域 → 当前周期 SNR → 角色互换 → 高周期 SNR → 收盘确认
二、图表元素速查
| 图表元素 | 含义 | 使用方式 |
|---|---|---|
| 绿色/青绿色 BPR | 看涨 BPR 或支撑相关区域 | 回踩时观察承接和收盘反应,不把区域中线当成精确入场价。 |
| 红色 BPR | 看跌 BPR 或阻力相关区域 | 反弹时观察压制和收盘反应,不把颜色直接等同于做空。 |
V 支撑 | 当前周期收盘价枢轴低点 | 回踩时观察承接;收盘跌破后进入 SBR 角色互换逻辑。 |
A 阻力 | 当前周期收盘价枢轴高点 | 反弹时观察压制;收盘突破后进入 RBS 角色互换逻辑。 |
RBS | Resistance Breaks Support,阻力突破后转支撑 | 等价格回踩该线并守住,再判断是否形成支撑。 |
SBR | Support Becomes Resistance,支撑跌破后转阻力 | 等价格反抽该线并受阻,再判断是否形成阻力。 |
| 灰色 SMA | 当前周期均线过滤线 | 默认只接受 SMA 下方的支撑枢轴和 SMA 上方的阻力枢轴。 |
| D1/H4 虚线 | 高周期支撑/阻力 | 用作更高一级的价格位置参考,默认关闭。 |
三、BPR:反向 FVG 的重叠区
1. FVG 配对
源码先识别三根 K 线结构形成的缺口:
low[2] > high:价格向下位移后留下的反向缺口。low > high[2]:价格向上位移后留下的反向缺口。
当相反方向的缺口在 bars_since 根 K 线内先后出现,并且价格区间相互重叠,脚本计算重叠上下边界:
重叠下沿 = 两个缺口下边界中的较高值
重叠上沿 = 两个缺口上边界中的较低值
只有“重叠上沿 > 重叠下沿”且高度达到 BPR 最小高度 时,才会形成有效 BPR。
2. 多头与空头 BPR
- 多头 BPR:先出现下行缺口,随后在回看窗口内出现上行缺口,两者重叠形成区域。
- 空头 BPR:先出现上行缺口,随后出现下行缺口,两者重叠形成区域。
BPR 体现的是价格不平衡被重新重叠后的区域,不是自动判断趋势方向。区域所在的价格位置,比“多头/空头”文字本身更重要。
3. 干净 BPR 与失效
开启“只显示干净 BPR”后,两个缺口配对完成前,价格不能提前侵入最终重叠区。它会减少被中途穿越的区域,但也会减少显示数量。
- 多头 BPR 在价格最低点跌破区域下沿时失效。
- 空头 BPR 在价格最高点突破区域上沿时失效。
- “删除失效或被替换的 BPR”关闭时,历史失效区域可以保留在图上;开启时只保留当前有效区域。
- 新 BPR 在源码使用上一根确认结果
bull_bpr_result[1] / bear_bpr_result[1]后绘制,实时柱上的显示可能在收盘前变化。
四、当前周期 SNR
1. 枢轴确认
当前周期支撑阻力使用:
ta.pivotlow(close, depth, depth)
ta.pivothigh(close, depth, depth)
这意味着一个枢轴需要左右各 depth 根 K 线确认。默认 depth = 3,所以信号不会在局部高点/低点刚出现时立即固定;这是确认延迟,不是提前预测。
2. SMA 过滤
默认 SMA 周期为 21:
- 只有低于对应历史 SMA 的收盘价支撑枢轴才被接受。
- 只有高于对应历史 SMA 的收盘价阻力枢轴才被接受。
开启“显示 SMA 过滤线”后,灰色均线可以帮助检查为什么某些局部高低点没有被标记。关闭过滤线只隐藏绘图,不会自动关闭过滤条件;需要在“SNR|均线过滤”中按需调整。
3. 线与区域
每个 SNR 由三部分组成:
- 一条位于枢轴收盘价的水平线。
- 可选的浅色区域,覆盖枢轴收盘价到该根 K 线影线极值。
- 可选的价格与性质标签。
默认每一侧最多保留 5 个活动级别。增加数量有助于复盘,但会让图表更拥挤。
五、支撑阻力的角色互换
脚本每根 K 线检查收盘价是否穿越活动 SNR:
- 阻力线被收盘价向上突破:从活动阻力移入 RBS 历史线,颜色切换为支撑色。
- 支撑线被收盘价向下跌破:从活动支撑移入 SBR 历史线,颜色切换为阻力色。
角色互换线默认使用虚线,也可以选择点线或实线。RBS/SBR 不是新的入场信号,最可靠的读法是等待价格回到原突破位:
- 突破后回踩 RBS,收盘重新站上,观察支撑是否成立。
- 跌破后反抽 SBR,收盘重新受阻,观察阻力是否成立。
- 如果价格直接穿过互换线,不要把它当成有效回测。
源码的右上说明面板将这两行显示为 RNS、SNR,这是面板文案与实际角色名称的差异;脚本绘制的历史标签使用 RBS、SBR,教程按实际角色含义解释。
六、高周期 SNR
开启“显示高周期 SNR”后,脚本通过 request.security() 调用所选周期的枢轴函数。默认高周期为 D,也可以选择其他 TradingView 支持的周期。
- 高周期支撑使用蓝色虚线。
- 高周期阻力使用红色虚线。
max_htf控制每一侧最多保留数量。- “显示高周期标签”默认关闭,避免主图文字过多。
高周期级别适合定义位置和目标,不适合单独决定当前周期方向。高周期枢轴同样需要右侧 K 线确认,实时阶段应以已确认的高周期收盘结果为准。
七、右上角说明面板
面板用于快速查阅颜色和角色含义:
| 面板标记 | 源码实际用途 |
|---|---|
V 支撑 | 当前周期支撑枢轴,回踩关注承接。 |
A 阻力 | 当前周期阻力枢轴,反弹关注压制。 |
RNS(面板文字) | 面板想表达“阻力突破后转为支撑”,绘图历史标签为 RBS。 |
SNR(面板文字) | 面板想表达“支撑跌破后转为阻力”,绘图历史标签为 SBR。 |
D1 / H4 等 | 虚线对应所选高周期支撑或阻力。 |
关闭“显示 SNR 中文说明面板”只会隐藏说明表,不会关闭 BPR、SNR 或高周期线。
八、XAUUSD 5 分钟截图案例
从图 1 和图 2 可以这样复盘:
- 价格从左侧低位逐步抬高,先判断整体背景偏上行,再观察回踩支撑,而不是在每个 BPR 上反向交易。
- 图中约 4,628、4,629、4,635、4,640 一带出现青绿色水平线和浅色支撑区域,它们是当前周期收盘枢轴经过 SMA 过滤后的结果。
- 4,650 附近出现 BPR/阻力标签时,先观察价格是否在区域内收盘受阻;若上破并收盘站稳,原阻力才进入 RBS 观察流程。
- 左侧红色 BPR 记录了此前的失衡重叠区。历史区域可以帮助复盘,不代表当前仍然有效。
- 右侧价格冲高后回到 4,651 附近时,下一步应等待收盘确认和回踩反应,不能只根据一根冲高 K 线追单。
九、参数设置建议
| 场景 | BPR 回看 bars_since | BPR 过滤 | 枢轴 depth | 活动 SNR | 高周期 |
|---|---|---|---|---|---|
| XAUUSD 5 分钟 | 10 | 高度 0-0.5 | 3 | 各 5 条 | 关闭或 D1 观察 |
| XAUUSD 15-30 分钟 | 10-20 | 高度 0.5-1.0 | 3-5 | 各 4-5 条 | D1 开启 |
| 1 小时以上波段 | 20-40 | 按品种最小波动设置 | 5-10 | 各 3-4 条 | D1/W1 开启 |
建议的调参顺序:
- 先确定
depth,让枢轴数量与交易周期匹配。 - 再调整 SMA 周期,减少与当前趋势方向相反的级别。
- 最后调整 BPR 回看根数和最小高度,控制区域密度。
- 熟悉当前周期后,再开启高周期 SNR 和角色互换历史线。
十、从观察到执行的流程
多头观察
- 价格位于较高周期支撑或有效 BPR 附近。
- 当前周期出现 V 支撑,且价格没有有效收盘跌破。
- 价格回踩支撑区后出现收盘反应,或阻力突破后回踩 RBS 守住。
- 上方目标空间足够覆盖失效距离,再根据账户风险计算仓位。
空头观察
- 价格位于较高周期阻力或空头 BPR 附近。
- 当前周期出现 A 阻力,且价格没有有效收盘突破。
- 价格反弹受阻,或支撑跌破后反抽 SBR 受阻。
- 下方目标空间足够覆盖失效距离,再决定是否执行。
十一、提醒与确认机制
脚本只为新多头 BPR 和新空头 BPR 提供 alertcondition():
新多头 BPR新空头 BPR
SNR 新建、角色互换和高周期线没有单独的 alertcondition()。如果要设置提醒,可以使用 BPR 条件配合价格提醒,或在 TradingView 中按脚本绘图事件设置通用提醒。
所有 BPR 和 SNR 都应以收盘确认:
- 枢轴需要右侧
depth根 K 线完成。 - BPR 使用前一根的配对结果绘制。
- SNR 角色互换以收盘价突破/跌破判断。
- 高周期 SNR 需要等待所选周期枢轴确认。
十二、常见问题
为什么局部高点没有生成阻力?
它必须先满足 depth 的枢轴确认,再满足阻力收盘价位于 SMA 上方的过滤条件。任一条件不满足都不会加入活动阻力数组。
为什么 BPR 区域很少?
相反方向 FVG 必须在 bars_since 窗口内出现并重叠;开启“只显示干净 BPR”或提高最小高度后,数量会进一步减少。
为什么支撑线变成了阻力线?
价格已经收盘跌破该支撑,脚本将它移动到 SBR 历史线。若价格再次向上收盘突破,SBR 会被删除。
为什么高周期线会改变?
高周期枢轴需要右侧 K 线确认,新的高周期结构出现后,脚本会更新保留的级别。复盘时应区分“当时已知的级别”和“事后完整历史图”。
十三、来源与风险提示
脚本注释注明:BPR 概念/代码来源于 tradeforopp,SNR 原始脚本来源于 Malaysian SnR Kai[DoN],当前版本进行了合并和中文本地化。使用、修改或再发布时请遵守原作者说明与 Mozilla Public License 2.0。
本教程仅说明指标计算与读图方法,不构成投资建议或收益承诺。BPR、支撑阻力和角色互换都可能失效;新闻、跳空、滑点、点差和流动性会改变实际执行结果。请先用历史回放和模拟盘验证,并始终预先定义最大亏损与失效位置。
