Schaff Trend Cycle(STC):MACD 两次经过随机指标

Schaff Trend Cycle(STC)是把 MACD(EMA 23 减 EMA 50)两次送入 10 周期随机指标,每次都用一半系数平滑。它在 0–100 之间运行,在趋势腿中形成平台期,并在波段处快速转向:向上穿过 25 买入,向下穿过 75 卖出。它比 MACD 更快,但会在震荡区间中产生假转向,需要趋势过滤器和价位,并且不适合看背离。
STC 是那种看起来像在“作弊”的指标:整个上涨腿都平在 100,然后在顶部之后几根 K线给出干净转向。它并没有作弊;它是 MACD 的随机指标,再对这个随机指标做一次随机指标,而让转向干净的同一套机制,也会让它在区间中不断转向。本页讲解这条计算链、默认设置及改变设置的影响、平台期与转向的读法、配合趋势过滤器和价位的交易方式、一个 NAS100 早盘中执行两次转向并跳过一次转向的案例,以及它与 MACD、TSI 和 Stochastic RSI 的对比。计算器会对粘贴的收盘价运行完整链条。
经得起公开验证的指标。
一个引擎,四款精准工具:Gold(XAU)Scalper、机构级 Gravity Zone、Zeno 动量振荡指标,以及面向股票的 Zeno Stocks。
Schaff Trend Cycle 衡量什么?
Schaff Trend Cycle 是把 MACD 两次送入随机指标。Doug Schaff 在 1990 年代末的想法是:趋势包含周期——大致重复长度的加速和暂停——把随机指标应用在动量上,而不是价格上,就能找到这些周期,并且比 MACD 本身更快转向。取 MACD 线(EMA 23 减 EMA 50),计算它的 10 周期随机指标,并把结果按一半系数平滑;然后再对这个结果计算 10 周期随机指标,并再次平滑。输出在 0 到 100 之间运行,在趋势中会贴近极值变平,并在波段处快速转向。
它的行为很有辨识度:STC 不像 RSI 那样平滑振荡。它会在 0 或 100 停留一段时间,然后用几根 K线穿过中部。这就是双重随机指标在发挥作用——MACD 中的周期被放大,而平坦段就是趋势腿。信号是转向:STC 上行离开 25 是买入,下行离开 75 是卖出。
它不是什么:无论营销怎么说,它都不是领先指标。STC 比 MACD 更快,是因为随机指标阶段会夸大 MACD 斜率中的小变化;同样的放大机制也解释了为什么它会在区间中假转向。它也没有成交量,没有价位概念;它只说明动量周期何时转向,不说明价格应该在哪里停下。
Schaff Trend Cycle 的公式是什么?

| 步骤 | 公式 | 默认值 |
|---|---|---|
| 1. MACD | EMA(close, fast) − EMA(close, slow) | fast 23,slow 50 |
| 2. 第一次随机指标 | (MACD − n 周期内最低 MACD) ÷ (最高 − 最低) × 100 | n = 10 |
| 3. 第一次平滑 | prior + factor × (step 2 − prior) | factor 0.5 |
| 4. 第二次随机指标 | 把同一公式应用到 step 3,并使用 n 周期 | n = 10 |
| 5. 第二次平滑 → STC | prior + factor × (step 4 − prior) | 0.5 |
| 水平线 | 25(向上转向 = 买入)和 75(向下转向 = 卖出) | 惯例 |
0.5 平滑因子是在每个阶段应用的半速 EMA,这也是 STC 可用的原因:未经平滑的 MACD 双重随机指标会变成方波。23/50 EMA 组合有意比 MACD 的 12/26 更慢——Schaff 希望底层动量较慢,让随机指标阶段提供速度,而不是让 MACD 提供速度。
| 用途 | 快线 | 慢线 | 周期 | 因子 | 备注 |
|---|---|---|---|---|---|
| 默认(Schaff) | 23 | 50 | 10 | 0.5 | 日线和 4H;TradingView 的默认值 |
| 波段 | 23 | 50 | 10 | 0.5 | 保持不变 |
| 盘中 15M | 23 | 50 | 10 | 0.5 | 相同——周期长度以 K线根数计,因此会自适应;增加一个交易时段过滤器 |
| 更慢、转向更少 | 30 | 65 | 14 | 0.5 | 用于市场状态,而不是进出场时机 |
| 加密货币 4H | 23 | 50 | 12 | 0.4 | 为 24 小时噪声略微增加平滑 |
如何读取 Schaff Trend Cycle?

平台期。STC 在 100 表示上涨趋势腿;在 0 表示下跌趋势腿。它可以在那里停留 20 根 K线,而这个水平本身并不说明这一腿还能走多远。不要因为 100 就卖出,也不要因为 0 就买入。
转向。STC 在低位平台期后向上穿过 25,是 Schaff 的买入;在高位平台期后向下穿过 75,是卖出。这些信号会在价格波段之后几根 K线出现——比 MACD 交叉更快,但比波段本身更慢。
穿行。在 25 和 75 之间,STC 正在移动,上一条信号仍然有效。一次转向如果在到达远端水平前启动又反转,就是失败周期;在趋势中意味着浅回调,在区间中意味着噪声。
它缺少什么。STC 上的背离不可靠,因为双重随机指标会破坏幅度信息——价格创新高而 STC 高点降低,只说明 MACD 的变化率更低,而趋势后期通常都会这样。请改用 TSI 或 MACD 看背离,把 STC 用于判断转向。
如何顺势交易 STC 转向?
- 在别处设定趋势。用 200 EMA、高时间周期(HTF)结构或日线 K线。STC 会在下跌趋势中不断向上转向;那只是反弹,做这些信号正是指标亏钱的地方。
- 等待平台期,再等待转向。在上涨趋势中,STC 会在回调时跌到低位平台期,然后向上穿过 25。在下跌趋势中,镜像为穿过 75。
- 要求有价位。转向应当与价格到达订单块、公允价值缺口(FVG)、VWAP 或上一处波段位置同时出现。STC 自身没有价位。
- 在 STC 穿过 25(或 75)的收盘时入场。止损放在价位下方,而不是放在某个 STC 读数下方。
- 持有穿过平台期。STC 在 100 不是出场。出场是向下穿过 75 的转向,或结构破坏——以先出现者为准。
- 跳过失败周期。一次转向如果停在 40 又回落,说明回调还在继续;等待下一次完整转向。
STC 计算器
粘贴收盘价,工具会运行完整链条——23/50 MACD、第一次随机指标及其平滑、第二次随机指标及其平滑——并报告 STC、最后一根 K线是否穿过 25 或 75 转向,以及平台期状态。预载样本包含一段上涨趋势、一段下跌趋势,以及下一轮上行周期的开始。
STC 与 MACD、TSI 和随机指标相比如何?
| 指标 | 构建自 | 范围 | 转向 | STC 的区别 |
|---|---|---|---|---|
| STC | 23/50 MACD 的双重随机指标 | 0–100,带平台期 | 快速、数量少 | — |
| MACD | EMA 12 − EMA 26,signal 9 | 无固定边界 | 更慢 | STC 是把 MACD 的周期提取并锐化;它转向更早,并用平台期代替趋势延伸 |
| TSI | 动量的双重 EMA,已标准化 | ±100 | 中等 | TSI 保留幅度(背离有效);STC 丢弃幅度(转向更干净) |
| Stochastic | 收盘价在价格区间中的位置 | 0–100 | 快速、数量多 | 随机指标应用于价格;STC 把它应用于动量,所以它会形成平台期,而不是钉在极值附近 |
| Stochastic RSI | RSI 在自身区间中的位置 | 0–100 | 非常快、数量多 | 同一家族——都是指标之上的振荡指标——但 StochRSI 默认是单阶段且未平滑;STC 是双阶段且已平滑 |
STC 和 Stochastic RSI 是近亲:两者都把随机指标叠加在另一个指标之上。STC 的第二阶段和它的平滑,解释了为什么它只产生少量干净转向,而 StochRSI 会产生大量交叉。代价是 STC 完全放弃了背离。
参考数据
| 项目 | 数值 |
|---|---|
| 起源 | Doug Schaff,1990 年代末;经由 FX-Strategy 及后续出版物传播 |
| 公式 | Stochastic(smoothed Stochastic(MACD 23/50, 10), 10),每个阶段用 0.5 平滑 |
| 范围 | 0–100;趋势腿中会在极值处形成平台期 |
| 信号 | 向上穿过 25(买入),向下穿过 75(卖出) |
| 不是信号 | 水平本身;STC 在 100 是趋势腿,不是超买 |
| 弱点 | 区间中假转向;没有幅度,因此背离不可靠;没有价位,没有成交量 |
| 搭配 | 趋势过滤器(200 EMA、结构)和价位(订单块、FVG、波段) |
| TradingView | 内置 “Schaff Trend Cycle”(23, 50, 10, 0.5) |
实战案例:NAS100 15 分钟,两次转向和一次跳过
NAS100 CFD,15 分钟图,纽约早盘,STC 使用默认值。日线和 1 小时结构向上;15 分钟图上的 200 EMA 远低于价格。09:45,开盘推动后 STC 位于 99 的高位平台期。价格用 5 根 K线从 18,712 回调到 18,641,STC 跌到 3——低位平台期——此时价格落在 09:35 K线留下的 15 分钟公允价值缺口(FVG)上,区间为 18,630–18,652。10:15,该 K线收于 18,663,STC 打印 31,穿过 25。在 18,663 做多,止损放在缺口下方 18,622,风险 41 点。目标为开盘高点 18,712,进一步目标为隔夜高点 18,748。
10:45,STC 到达高位平台期,价格在 18,724;开盘高点已经被拿下。随后 6 根 K线中,STC 位于 97–100,而价格磨到 18,751——平台期就是这一腿,在 18,724 因为 100 而卖出,会错过最后 27 点。12:15,价格收于 18,733,STC 向下穿过 75。以 41 点风险赚 70 点出场,1.7R。隔夜高点在 11:45 已被触及;如果按目标出场,会拿到 85 点。
被跳过的转向:13:30,在午间震荡中,STC 在价格 18,690 时向上穿过 25——区间中部,没有缺口,没有波段,位于 VWAP 上方 10 点。没有价位,就不交易。价格在一小时内到 18,705,又回到 18,672。同一个指标,同一个信号;差别在于第一次信号下方有公允价值缺口。
Schaff Trend Cycle 在哪里会失效?
区间。双重随机指标会放大 MACD 中的每一次小摆动。在区间中,STC 每隔几根 K线就穿过 25 和 75 转向,而且每次转向看起来都和真正信号一样。趋势过滤器和价位不是可选项。
背离。从结构上就不可靠;随机指标阶段会移除幅度。请用 TSI 或 MACD 看背离。
趋势后期。STC 无法分辨新上涨趋势中的第一次向上转向和第六次。到第六次时,回调会更浅,平台期更短;请通过结构判断您处在行情的哪个位置。
快速反转。STC 需要 MACD 先改变斜率,随机指标阶段才能反应。V 形反转会让 STC 在错误平台期停留数根 K线。
参数拟合。23/50/10/0.5 这一组就是这个指标。某个回测如果在一个品种上更偏好 17/38/7,它找到的是噪声。
交易者使用 STC 时会犯什么错误?
- 卖出 100、买入 0。平台期是趋势腿;转向才是信号。
- 逆着高时间周期趋势做转向。在下跌趋势中,STC 买入只是反弹。
- 没有价位就交易转向。无处可依的转向就是抛硬币。
- 读取 STC 背离。公式会丢弃幅度;没有可读背离。
- STC 到达平台期就出场。应在向下穿过 75 的转向或结构信号上出场。
- 通过改参数减少假转向。过滤器是结构,不是设置。
STC 与免费指标
TradingView 内置的 Schaff Trend Cycle 是准确的。指标库提供 STC 缺少的两样东西:Fair Value Gaps + Inversion 和 Order Blocks with Volume 脚本给出转向应落到的价位,Adaptive Trend Sentinel 给出决定哪些转向可做的市场状态。MACD Matrix 显示 4 个时间周期的底层动量。高级引擎 Zeno 会打印带止损和目标位的买卖信号;上方案例中的第一笔交易,就是 STC 向上穿过 25 时,在公允价值缺口处出现的 Zeno 买入信号。
这是一个具备快速转向、但不记忆幅度的动量周期检测器。把平台期读作趋势腿,把穿过 25 和 75 的转向读作信号;只在顺着高时间周期趋势并且有价位时交易它们;持有穿过平台期,并在反向转向或结构处出场。保留 23/50/10/0.5,用 TSI 或 MACD 看背离,并跳过任何发生在空位上的转向。
◆ 互动检查
您知道 STC 提取的是什么吗?
交易者关于 Schaff Trend Cycle 常问的问题
这是 Doug Schaff 创建的振荡指标,先取 MACD(EMA 23 减 EMA 50),对其运行 10 周期随机指标,并把结果按一半系数平滑,然后再运行第二次 10 周期随机指标并再次平滑。它在 0 到 100 之间移动,在趋势腿中贴近极值形成平台期,并在波段处快速转向。
MACD = EMA(close, 23) − EMA(close, 50)。第一阶段:对 MACD 做 10 根 K线随机指标,然后每个值 = prior + 0.5 × (new − prior)。第二阶段:把同样的随机指标和平滑应用到第一阶段。结果就是 STC。
Schaff 的默认值——fast 23、slow 50、cycle 10、factor 0.5——适用于任何时间周期,因为周期长度以 K线根数计,会自适应。若要更慢的市场状态读数,可用 30/65/14。在 4 小时加密货币图上,0.4 的 factor 会增加一点平滑。为了减少假转向而拟合数字,找到的是噪声;解决假转向的方法是趋势过滤器和价位。
用 200 EMA 或高时间周期结构设定趋势。在上涨趋势中,等待 STC 在回调时跌到低位平台期,并在价格位于某个价位——订单块、公允价值缺口(FVG)、VWAP 或波段——时向上穿过 25。就在该收盘入场,止损放在价位下方,持有穿过高位平台期,并在向下穿过 75 的转向或结构破坏时出场。
不是。它比 MACD 交叉更早转向,因为随机指标阶段会放大 MACD 斜率的变化,但它仍然需要 MACD 先弯折,而这发生在价格波段之后。它是一个快速滞后指标。
STC 是通过两段随机指标提取出的 MACD 周期。MACD 会趋势延伸,也能看背离;STC 会平台化并转向。STC 给出更早、更干净的转向,也在区间中给出更多假转向;MACD 保留幅度,因此背离可读。它们是同一动量的两种视角。
效果很差。双重随机指标会放大每一次小摆动,因此 STC 每隔几根 K线就穿过 25 和 75 转向。只有同时落在价位上、并与高时间周期趋势一致的转向才值得做;在真正区间中,符合条件的很少。
在 15 分钟到日线的 BTCUSDT 和 ETHUSDT 图表上,只要搭配趋势过滤器和价位,是可以的。4 小时图上 0.4 的平滑因子有助于处理 24 小时噪声。在流动性薄的山寨币上,MACD 本身就是噪声,STC 会把它放大。
不会。每个阶段都使用已完成收盘价和先前值计算;K线收盘后不会再变化。
TradingView 内置版本是准确的。指标库提供价位(Fair Value Gaps + Inversion、Order Blocks with Volume)、市场状态(Adaptive Trend Sentinel)和多时间周期动量读取(MACD Matrix)。Zeno 这个高级引擎会打印带止损和目标位的信号。
参考资料与相关指南
接下来阅读
- MACD 指标:完整指南
- True Strength Index
- Stochastic Oscillator
- Stochastic RSI
- WaveTrend Oscillator 完整指南
- Fair Value Gaps:完整指南
- 动量交易策略
- 订单块:完整指南
- MACD Matrix(免费指标)
- Fair Value Gaps + Inversion(免费指标)
- Adaptive Trend Sentinel(免费指标)
- Zeno — 高级引擎
主要来源
- Trading Technologies: Schaff Trend Cycle (indicator documentation)
- Schaff, "The Schaff Trend Cycle", FX-Strategy / Stocks & Commodities coverage
- Appel, Technical Analysis: Power Tools for Active Investors (2005) — the MACD it is built on
- Lane, "Lane's Stochastics", Technical Analysis of Stocks & Commodities (1984) — the stochastic stages