简介

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 线,它就停下。

一次只有一个区间在变长。区间从不重叠。

AAPL 的日线图,上面有三个区间。右边是一个金色方框,框住横向移动的 K 线。中间是一个短的、向下倾斜的绿色通道,一条细虚线从它的底部向右延伸。左边是一个向上倾斜的红色通道。AAPL 的日线图,上面有三个区间。右边是一个金色方框,框住横向移动的 K 线。中间是一个短的、向下倾斜的绿色通道,一条细虚线从它的底部向右延伸。左边是一个向上倾斜的红色通道。
AAPL,日 K 线,加上 Phoenix Range Detector。1 — 最新的区间,一个金色的 STATIC 方框。它还在变长。2 — 一个倾斜的区间,标签是 DYNAMIC。有一根 K 线收在它上方,所以它变成了绿色。短虚线把它的边再延长两根 K 线。3 — 从它底部引出的细虚线。它一直向右延伸,直到有 K 线收在它下方。左边,一个向上倾斜的通道变成了红色,因为有一根 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 分钟。下面的数字是编的。

  1. 假设 ATR 是 0.50,并且一直不变。
  2. 在 10 根 K 线里,AAPL 在 100.00 和 100.80 之间横向移动。这个范围高 0.80。
  3. 上限是 2 × 0.50 = 1.00。这个范围没有超出上限,所以出现一个金色的 STATIC 方框。
  4. 更多 K 线收在里面。方框向右变长。
  5. 然后一根 K 线收在 100.90。方框的顶部是 100.80。
  6. 突破价位是 100.80 + 0.15 × 0.50 = 100.875。收盘价在它上方。
  7. 区间结束,方框变成绿色。它在突破前的那根 K 线处结束。
  8. 一条绿色虚线从方框底部的 100.00 向右延伸。
  9. 这条线在第一次收盘低于 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 时取 0
  • start = (Σy − slope × Σx) ÷ n
  • fit(x) = start + slope × x

下面每个测试里的 ATR,都是被判断的那根 K 线的 ATR。

AAPL 的日线图,一个浅蓝色的倾斜通道围着 16 根 K 线。每根 K 线的中间有一个点。上边碰到一根 K 线的最高价,下边碰到最后一根 K 线的最低价。AAPL 的日线图,一个浅蓝色的倾斜通道围着 16 根 K 线。每根 K 线的中间有一个点。上边碰到一根 K 线的最高价,下边碰到最后一根 K 线的最低价。
AAPL,日 K 线,加上 Phoenix Range Detector,这个区间还在变长。每个点是一根 K 线的 中点,在它的最高价和最低价正中间。通道的两条边和 拟合线 平行,拟合线就是最贴合这些点的那条直线。1 — 上边穿过高出拟合线最多的那个最高价。2 — 下边穿过低于拟合线最多的那个最低价。顶部那条细的红色虚线,是一个更早区间的天花板。

区间的开始

没有区间在变长时,在每根已收盘的 K 线上:

  1. 这根 K 线之前必须至少有 10 根 K 线。
  2. 窗口是这根 K 线和它之前的 9 根:一共 10 根 K 线。窗口必须在上一个区间的最后一根 K 线之后开始。
  3. 在窗口上算出拟合线、静态高度和动态高度。
  4. 静态高度 ≤ 2.0 × ATR 时,静态合格。动态高度 ≤ 2.0 × ATR 时,动态合格。
  5. 只要有一个合格,区间就从窗口的第一根 K 线开始。
  6. 当动态合格,并且静态不合格、或者窗口不平坦且动态高度 ≤ 0.85 × static height 时,它是 动态 区间。否则它是 静态 区间。

一个区间结束后,下一个窗口最早可以从结束它的那根 K 线开始。所以下一个区间最早可以在结束后第 9 根 K 线出现。

区间的增长或结束

在之后的每根已收盘 K 线上,n = 从区间第一根 K 线到这一根的 K 线数量:

  1. 把这根 K 线算进去,重新算出拟合线。现在静态高度也包括这根 K 线的最高价和最低价。
  2. 上限是 2.0 × ATR × 1.20,也就是 2.4 × ATR。
  3. 静态高度 ≤ 上限时,静态合格。动态高度 ≤ 上限时,动态合格。
  4. 向上突破:收盘价 > 之前的顶部 + 0.15 × ATR。向下突破:收盘价 < 之前的底部 − 0.15 × ATR。之前的 指上一根 K 线之后区间的样子:方框的顶部和底部,或者通道在上一根 K 线处的边。
  5. 影线宽容,只在区间是静态时:没有突破、并且静态高度 ≤ 上限 + 0.60 × ATR(也就是 3.0 × ATR)时,方框仍然合格。影线可以伸出去,把方框撑大;只有收盘价在外面,才会突破它。
  6. 当区间已经有 150 根 K 线(n > 150),或者发生了向上或向下突破,或者静态(算上影线宽容)和动态都不合格时,区间 结束。
  7. 否则,这根 K 线加入区间。方框把它的最高价和最低价包进来,拟合线也会更新。
  8. 类型会重新决定:当动态合格,并且静态(算上影线宽容)不合格、或者区间不平坦且动态高度 ≤ 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 线不属于它。然后:

  1. 重新着色,只在突破之后。方框的边框和填充、通道的边和填充、25% 和 75% 线以及标签,在向上突破后变成青绿色 #26A69A,在向下突破后变成红色 #EF5350。它们保持原来的透明度(填充 92%,四分之一线 40%,标签 15%)。50% 线仍然是红色。标签上的词不变。
  2. 延伸,只对动态区间。两条 2 像素的虚线,沿着同样的斜率,把上边和下边从区间里的最后一根 K 线延长到 2 根 K 线之后。它们用最终的颜色:绿色、红色,或者在区间只是到头时用浅蓝色。一条 1 像素的红色点线用同样的方式延长 50% 线。延伸在结束区间的那根 K 线之后一根 K 线处结束。
  3. 价位线:天花板和地板可能会继续向右延伸(见下面)。

天花板是区间在最后一根 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 range10起始窗口里的 K 线数
Max bars in range150区间最长可以有多长
ATR length14ATR 用的 K 线数
Max range height (× ATR)2.0新区间的高度上限
Expansion tolerance1.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 than0.85只有通道紧到这个程度,才会取代方框
Static color金色 #D4AF37方框
Dynamic color浅蓝色 #4FC3F7通道
Fill transparency92方框和通道的填充
Equilibrium (50%)开50% 线
Quarter levels (25% / 75%)开25% 和 75% 线
EQ color红色 #EF535050% 线
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 width1价位线的宽度

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 画出的区间、线、标签和颜色,和用默认设置的原始脚本一样。不同的地方:

  1. 没有设置。 每个输入项都固定为原始脚本的默认值。
  2. 没有移动平均线。 不画原始脚本里三条可选的移动平均线。它们在那里默认是关的。
  3. 没有警报。 原始脚本有两个警报,一个在区间形成时,一个在区间结束或突破时。KAGAMI 里没有它们。
  4. 总是用已收盘的 K 线。 在 TradingView 里,Evaluate on bar close only 可以关掉。在 KAGAMI 里,它总是开着。
  5. 历史数据。 KAGAMI 最多读取最新的 2,000 根 K 线。TradingView 常常有更多。最早的区间可能不一样。
  6. K 线数据。 KAGAMI 用自己的市场数据。一根 K 线上的小差别,就可能改变找到哪些区间。
  7. 最小变动价位。 KAGAMI 用自己的规则(见“计算方法”一节)。它只在平坦测试中起作用。
  8. 对象上限。 TradingView 说它的 500 上限是大约的。KAGAMI 每种准确地保留最新的 500 个。
  9. 外观。 KAGAMI 用图表自己的画图工具:一个矩形、几条趋势线、一个用来填充的通道形状,以及一个用作标签的气泡。大小和字体看起来稍有不同。您不能选中、移动或编辑这些图形,它们也不会被保存。
  10. 未来的点。 通道的延伸可能会超过最新的已收盘 K 线一根 K 线。KAGAMI 按钟表时间,把这个点放在一个 K 线时长之后。TradingView 数的是 K 线。

特殊情况

  • 已收盘的 K 线少于 3 根: 什么都不画。
  • 前 13 根 K 线 没有 ATR,所以不能开始区间。第一个区间最早可以出现在第 14 根 K 线上。
  • 完全不动的价格: ATR 是 0。可能出现一个高度为零的方框,之后的任何波动都会结束它。
  • 一次一个区间。 区间之间从不共用 K 线。
  • 很长的平静时段: 即使价格一直很平静,区间也会在 150 根 K 线时结束。下一个区间可以在 9 根 K 线之后开始。
  • 大的跳空 会让真实波幅变大,所以 ATR 也会变大。这会放宽接下来几根 K 线的限制。
  • 缺少的 K 线: 规则数的是 K 线,所以数据里的空缺会被直接跳过。