Phoenix Range Detector
找出价格停留在很窄范围里的时段,把它们画成方框或倾斜的通道。
简介
Phoenix Range Detector 会在图表上找出平静的时段。在这些时段里,价格停留在一个很窄的范围里。它把每个时段画成一个方框,或一个倾斜的通道。
要添加它,请在 KAGAMI 里点击图表顶部的 指标(Indicators)。它在 KAGAMI 分组里,名字是 Phoenix Range Detector。在图表上,它的名字显示为 Phoenix RD。
这个指标还没有出现在每个账户的指标列表里。
KAGAMI 在自己的服务器上算出这些图形。它遵循原始脚本的规则。原始脚本是为 TradingView 写的。
您在图表上看到什么
一根 K 线(也叫蜡烛)是图表上的一小段时间,比如 15 分钟。区间 就是一连串停留在很窄范围里的 K 线。
- 金色方框 是一个平的区间。价格在里面横向移动。
- 浅蓝色通道 是一个倾斜的区间。它有两条蓝色的实线边,中间是淡淡的蓝色填充。
- 一条红色虚线 从中间穿过。它标出一半的位置。
- 两条点线 标出四分之一的位置:从下往上四分之一和四分之三处。
- 一个小标签 在顶部的右端。方框的标签写着 STATIC,通道的标签写着 DYNAMIC。
每有一根 K 线收盘,最新的区间就会变长。它的右边缘跟着图表一起移动。
区间结束时,会有这些变化:
- 有 K 线收在它上方:它变成 绿色。
- 有 K 线收在它下方:它变成 红色。
- 它只是到头了,因为太长或太宽:它保持原来的颜色。
- 通道会多出几段短虚线。它们把通道再延长两根 K 线。
- 一条细虚线 从区间的顶部或底部向右延伸。当有 K 线收盘穿过它,或者过了 100 根 K 线,它就停下。
一次只有一个区间在变长。区间从不重叠。
交易者通常怎么看它
- 很多交易者把横向移动的时段叫作 区间 或 盘整。
- 很多交易者把区间的顶部和底部看作之前走势停下来的价格。
- 有些交易者看区间变成什么颜色。它显示区间结束时,K 线收在了哪一边。
- 有些交易者在区间结束后看那条虚线。他们看价格会不会回到这条线。
- 有些交易者用中间的那条线。它显示价格是在上半部分还是下半部分。
指标只能描述过去的价格。它无法预知未来。
设置
这个指标没有可以更改的设置。它总是用同样的固定数值:
- 新区间包含 10 根 K 线。一个区间最多持续 150 根 K 线。
- 新区间最多可以有 2 倍 ATR 那么高。
- ATR 的意思是 平均真实波幅。它是最近 14 根 K 线里,一根 K 线波动的平均大小。
- 正在变长的区间可以稍微变宽,最多到 2.4 倍 ATR。
- 当一根 K 线收在边缘之外、超过 0.15 倍 ATR 时,区间结束。
- 颜色:方框是金色,通道是浅蓝色,区间结束时是绿色和红色。
什么时候它会误导您
- 它是事后才找到区间的。 只有 10 根 K 线都收在里面之后,区间才会出现。所以它是从 10 根 K 线之前开始的。
- 最新的区间还会变。 在它结束之前,每次收盘,它的顶部、底部、斜率和类型都可能变。
- 颜色不是趋势。 绿色或红色只说明一根 K 线收在了哪里。价格可能很快又回到里面。
- 大 K 线会放宽规则。 所有的限制都跟着 ATR 走。K 线很大时,很宽的范围也仍然算窄。
- 很小的 K 线会收紧规则。 市场非常平静时,一点小波动就可能结束一个区间。
- 跳空也算波动。 K 线之间的跳空,比如股票隔夜的跳空,可能结束一个区间。
- 正在形成的 K 线会被忽略。 还在形成中的 K 线,在收盘之前不算数。
- 旧的图形可能不一样。 在最左边,图形可能和 TradingView 对不上。KAGAMI 读取的过去 K 线可能更少。
图表是用来学习的,不是建议。请阅读我们的风险免责声明。
一个例子
以 15 分钟图表上的 NASDAQ:AAPL 为例。每根 K 线是 15 分钟。下面的数字是编的。
- 假设 ATR 是 0.50,并且一直不变。
- 在 10 根 K 线里,AAPL 在 100.00 和 100.80 之间横向移动。这个范围高 0.80。
- 上限是 2 × 0.50 = 1.00。这个范围没有超出上限,所以出现一个金色的 STATIC 方框。
- 更多 K 线收在里面。方框向右变长。
- 然后一根 K 线收在 100.90。方框的顶部是 100.80。
- 突破价位是 100.80 + 0.15 × 0.50 = 100.875。收盘价在它上方。
- 区间结束,方框变成绿色。它在突破前的那根 K 线处结束。
- 一条绿色虚线从方框底部的 100.00 向右延伸。
- 这条线在第一次收盘低于 99.925 时停下,或者在 100 根 K 线之后停下。
技术细节
这部分写给想了解准确规则的读者。每条规则都只用已收盘的 K 线,一次一根,从 KAGAMI 读取的最早一根 K 线到最新的一根。
计算方法
规则用到的词:
- 一根 K 线的 真实波幅(true range)=
high − low、|high − previous close|和|low − previous close|中最大的那个。在最开始的第一根 K 线上,它是high − low。 - ATR = 14 根 K 线真实波幅的 Wilder 平均值。第一个 ATR 是前 14 个真实波幅的简单平均值。之后,
ATR = (true range + 13 × previous ATR) ÷ 14。前 13 根 K 线没有 ATR。 - 一根 K 线的 中点 =
(high + low) ÷ 2。 - 拟合线 = 穿过区间内各根 K 线中点的最小二乘直线(公式见下面)。
- 上偏移(upper offset)= 区间内各根 K 线中最大的
high − fit(x)。下偏移(lower offset)= 最小的low − fit(x)(通常小于零)。通道的两条边是fit(x) + upper offset和fit(x) + lower offset,所以它们会碰到这条线周围真正的最高价和最低价。 - 静态高度 = 区间内各根 K 线的最高价 − 最低价。
- 动态高度 = 上偏移 − 下偏移。
- 漂移 =
|slope| × (n − 1),也就是拟合线在整个区间里升高或降低了多少。 - 平坦:漂移 ≤
0.35 × the larger of (static height, tick size)。 - 最小变动价位(tick size)= 最小的价格步长。KAGAMI 对美国股票用 0.01(最后一个收盘价低于 1 时用 0.0001),对其他所有市场用图表价格精度的一个单位。它只在平坦测试中起作用。
拟合线:从区间的第一根 K 线开始,把区间的 K 线编号为 x = 0, 1, 2 …,y = 这根 K 线的中点,n = K 线的数量。然后:
slope = (n × Σxy − Σx × Σy) ÷ (n × Σx² − (Σx)²),当这个分数的分母为 0 时取 0start = (Σy − slope × Σx) ÷ nfit(x) = start + slope × x
下面每个测试里的 ATR,都是被判断的那根 K 线的 ATR。
区间的开始
没有区间在变长时,在每根已收盘的 K 线上:
- 这根 K 线之前必须至少有 10 根 K 线。
- 窗口是这根 K 线和它之前的 9 根:一共 10 根 K 线。窗口必须在上一个区间的最后一根 K 线之后开始。
- 在窗口上算出拟合线、静态高度和动态高度。
- 静态高度 ≤
2.0 × ATR时,静态合格。动态高度 ≤2.0 × ATR时,动态合格。 - 只要有一个合格,区间就从窗口的第一根 K 线开始。
- 当动态合格,并且静态不合格、或者窗口不平坦且动态高度 ≤
0.85 × static height时,它是 动态 区间。否则它是 静态 区间。
一个区间结束后,下一个窗口最早可以从结束它的那根 K 线开始。所以下一个区间最早可以在结束后第 9 根 K 线出现。
区间的增长或结束
在之后的每根已收盘 K 线上,n = 从区间第一根 K 线到这一根的 K 线数量:
- 把这根 K 线算进去,重新算出拟合线。现在静态高度也包括这根 K 线的最高价和最低价。
- 上限是
2.0 × ATR × 1.20,也就是2.4 × ATR。 - 静态高度 ≤ 上限时,静态合格。动态高度 ≤ 上限时,动态合格。
- 向上突破:收盘价 > 之前的顶部 +
0.15 × ATR。向下突破:收盘价 < 之前的底部 −0.15 × ATR。之前的 指上一根 K 线之后区间的样子:方框的顶部和底部,或者通道在上一根 K 线处的边。 - 影线宽容,只在区间是静态时:没有突破、并且静态高度 ≤ 上限 +
0.60 × ATR(也就是3.0 × ATR)时,方框仍然合格。影线可以伸出去,把方框撑大;只有收盘价在外面,才会突破它。 - 当区间已经有 150 根 K 线(
n> 150),或者发生了向上或向下突破,或者静态(算上影线宽容)和动态都不合格时,区间 结束。 - 否则,这根 K 线加入区间。方框把它的最高价和最低价包进来,拟合线也会更新。
- 类型会重新决定:当动态合格,并且静态(算上影线宽容)不合格、或者区间不平坦且动态高度 ≤
0.85 × static height时,是 动态。否则是 静态。
所以,一个正在变长的区间可以在 STATIC 和 DYNAMIC 之间切换,颜色也会跟着变。
画出了什么
区间变长时,每根已收盘的 K 线都会重画它,从它的第一根 K 线画到最新的已收盘 K 线。
| 部分 | 静态区间 | 动态区间 |
|---|---|---|
| 主体 | 一个从最高价到最低价的方框;边框金色 #D4AF37,实线,2 像素;金色填充,透明度 92% | 两条实线,浅蓝色 #4FC3F7,2 像素,位于 fit + upper offset 和 fit + lower offset;中间是浅蓝色填充,透明度 92% |
| 50% 线 | 虚线,1 像素,红色 #EF5350,位于 (top + bottom) ÷ 2 | 虚线,1 像素,红色 #EF5350,位于 fit + (upper offset + lower offset) ÷ 2 |
| 25% 和 75% 线 | 点线,1 像素,金色,透明度 40%,在从底部到顶部四分之一和四分之三处 | 点线,1 像素,浅蓝色,透明度 40%,在通道同样的四分之一位置 |
| 标签 | STATIC,在最新的 K 线上,位于方框顶部 | DYNAMIC,在最新的 K 线上,位于上边两个端点中较高的那个 |
标签向下指着它的位置。它用区间的颜色填充,透明度 15%,白色 #FFFFFF 字,小号。在向下倾斜的通道上,标签浮在通道右端的上方,高度和通道的左端一样。
区间结束时
结束的区间保留上一根 K 线时的图形。它的右边缘是区间里的最后一根 K 线;结束它的那根 K 线不属于它。然后:
- 重新着色,只在突破之后。方框的边框和填充、通道的边和填充、25% 和 75% 线以及标签,在向上突破后变成青绿色
#26A69A,在向下突破后变成红色#EF5350。它们保持原来的透明度(填充 92%,四分之一线 40%,标签 15%)。50% 线仍然是红色。标签上的词不变。 - 延伸,只对动态区间。两条 2 像素的虚线,沿着同样的斜率,把上边和下边从区间里的最后一根 K 线延长到 2 根 K 线之后。它们用最终的颜色:绿色、红色,或者在区间只是到头时用浅蓝色。一条 1 像素的红色点线用同样的方式延长 50% 线。延伸在结束区间的那根 K 线之后一根 K 线处结束。
- 价位线:天花板和地板可能会继续向右延伸(见下面)。
天花板是区间在最后一根 K 线处的顶部;对通道来说,是上边在那里的值。地板是底部,算法一样。
- 如果结束区间的 K 线没有收在
ceiling + 0.15 × ATR上方,天花板就继续延伸。如果它没有收在floor − 0.15 × ATR下方,地板就继续延伸。 - 所以向上突破后只有地板延伸,向下突破后只有天花板延伸,区间只是到头时两者都延伸。
- 价位线是一条水平的虚线,1 像素,用最终的颜色,透明度 20%。对通道来说,它也是水平的。
- 在之后的每根已收盘 K 线上,它都会延伸到那根 K 线。它会停在第一根收在
ceiling + 0.15 × ATR上方(天花板)或floor − 0.15 × ATR下方(地板)的 K 线上,或者停在区间最后一根 K 线之后第 100 根 K 线处。 - 停下的价位线留在图表上它停下的地方。
保留多少图形
每个结束的区间都留在图表上。KAGAMI 保留原始脚本的上限:500 个方框、500 条线和 500 个标签。某一种超过 500 个时,这一种里最早的那个会被删除,不管它属于哪个区间。通道的任何一条边被删除时,它的填充也会被删除。
线最先用完。一个静态区间最多留下 5 条线;一个动态区间最多留下 10 条。所以在很长的历史数据上,左边最早的区间会先失去它们的线。一个方框可能还留着,但已经没有了它的 50% 线。
输入项
KAGAMI 不为这个指标显示输入项。它总是用原始脚本的默认值:
| 原始脚本里的设置 | KAGAMI 使用的值 | 作用 |
|---|---|---|
| Min bars in range | 10 | 起始窗口里的 K 线数 |
| Max bars in range | 150 | 区间最长可以有多长 |
| ATR length | 14 | ATR 用的 K 线数 |
| Max range height (× ATR) | 2.0 | 新区间的高度上限 |
| Expansion tolerance | 1.20 | 正在变长的区间,上限是 2.0 × 1.20 × ATR |
| Breakout buffer (× ATR) | 0.15 | 收盘价要越过边缘多远才算突破 |
| Evaluate on bar close only | 开 | 只用已收盘的 K 线 |
| Static: break only on candle CLOSE | 开 | 打开影线宽容 |
| Static: wick tolerance (× ATR) | 0.60 | 影线可以给方框增加的额外高度 |
| Static — horizontal boxes | 开 | 允许方框 |
| Dynamic — sloped channels | 开 | 允许通道 |
| Flat threshold (drift ÷ height) | 0.35 | 低于这个值,区间就算平坦 |
| Dynamic wins if tighter than | 0.85 | 只有通道紧到这个程度,才会取代方框 |
| Static color | 金色 #D4AF37 | 方框 |
| Dynamic color | 浅蓝色 #4FC3F7 | 通道 |
| Fill transparency | 92 | 方框和通道的填充 |
| Equilibrium (50%) | 开 | 50% 线 |
| Quarter levels (25% / 75%) | 开 | 25% 和 75% 线 |
| EQ color | 红色 #EF5350 | 50% 线 |
| Info label | 开 | STATIC / DYNAMIC 标签 |
| Recolor on confirmed break | 开 | 突破后变成绿色或红色 |
| Bullish break | 青绿色 #26A69A | 向上突破之后 |
| Bearish break | 红色 #EF5350 | 向下突破之后 |
| Dynamic: dashed projection after break (bars) | 2 | 通道延伸的长度 |
| Extend floor & ceiling until broken | 开 | 继续延伸的价位线 |
| Dynamic levels follow the channel slope | 关 | 价位线是水平的 |
| Max extension (bars) | 100 | 价位线最长能延伸多远 |
| Level line width | 1 | 价位线的宽度 |
KAGAMI 不提供:
- 更改上面的任何一个值;
- 原始脚本的 Moving Averages 分组(MA type、Source、Line width,以及 20、50 和 200 根 K 线的三条移动平均线)。原始脚本里它们默认是关的。KAGAMI 不画它们。
数值什么时候会变
- KAGAMI 只判断已收盘的 K 线。正在形成的 K 线从不算数,所以 K 线形成期间,什么都不会动。
- 每有一根新的已收盘 K 线,页面就向 KAGAMI 的服务器请求图形,另外每 60 秒也请求一次。在很短的时间周期上,最多每 2 秒一次。
- 正在变长的区间每次收盘都会变。它的右边缘、顶部、底部、斜率、类型和颜色都可能变。它的第一根 K 线不变。
- 结束的区间是固定的。只有它的价位线会继续延伸,直到停下;另外,500 的上限可能会删除它最早的部分。
- KAGAMI 最多读取最新的 2,000 根 K 线,并从其中最早的一根开始执行规则。新 K 线来了,这个起点就会往前移。所以最左边最早的区间可能会变化或消失。
时间周期
- 在每个时间周期上,规则都一样。它们数的是 K 线,不是小时。ATR 来自图表自己的 K 线。
- 秒级时间周期(1 秒、5 秒、10 秒、15 秒和 30 秒)只有加密货币才有。股票和外汇从 1 分钟开始。
- 美国股票的 K 线覆盖交易时间(纽约时间 09:30–16:00)。规则不知道交易时段。一个区间可能跨过一个晚上或一个周末,开盘时的跳空和其他波动一样算数。
- 在 1 秒图表上,图形最多每 2 秒刷新一次。
和原始 Pine 脚本的区别
KAGAMI 画出的区间、线、标签和颜色,和用默认设置的原始脚本一样。不同的地方:
- 没有设置。 每个输入项都固定为原始脚本的默认值。
- 没有移动平均线。 不画原始脚本里三条可选的移动平均线。它们在那里默认是关的。
- 没有警报。 原始脚本有两个警报,一个在区间形成时,一个在区间结束或突破时。KAGAMI 里没有它们。
- 总是用已收盘的 K 线。 在 TradingView 里,Evaluate on bar close only 可以关掉。在 KAGAMI 里,它总是开着。
- 历史数据。 KAGAMI 最多读取最新的 2,000 根 K 线。TradingView 常常有更多。最早的区间可能不一样。
- K 线数据。 KAGAMI 用自己的市场数据。一根 K 线上的小差别,就可能改变找到哪些区间。
- 最小变动价位。 KAGAMI 用自己的规则(见“计算方法”一节)。它只在平坦测试中起作用。
- 对象上限。 TradingView 说它的 500 上限是大约的。KAGAMI 每种准确地保留最新的 500 个。
- 外观。 KAGAMI 用图表自己的画图工具:一个矩形、几条趋势线、一个用来填充的通道形状,以及一个用作标签的气泡。大小和字体看起来稍有不同。您不能选中、移动或编辑这些图形,它们也不会被保存。
- 未来的点。 通道的延伸可能会超过最新的已收盘 K 线一根 K 线。KAGAMI 按钟表时间,把这个点放在一个 K 线时长之后。TradingView 数的是 K 线。
特殊情况
- 已收盘的 K 线少于 3 根: 什么都不画。
- 前 13 根 K 线 没有 ATR,所以不能开始区间。第一个区间最早可以出现在第 14 根 K 线上。
- 完全不动的价格: ATR 是 0。可能出现一个高度为零的方框,之后的任何波动都会结束它。
- 一次一个区间。 区间之间从不共用 K 线。
- 很长的平静时段: 即使价格一直很平静,区间也会在 150 根 K 线时结束。下一个区间可以在 9 根 K 线之后开始。
- 大的跳空 会让真实波幅变大,所以 ATR 也会变大。这会放宽接下来几根 K 线的限制。
- 缺少的 K 线: 规则数的是 K 线,所以数据里的空缺会被直接跳过。