MACD、RSI 和布林带,怎样从指标变成能检查的交易规则?

MACD、RSI 与布林带:把指标写成规则

约 12 分钟1 个动手实验4 道小题

学完你能说清楚先定义指标和成交口径,再比较三种规则,不把指标当成预测保证。

01学完这一课,你能做到什么

假设你在图表上看到 金叉、 低于 30,或者价格跌破下轨。看到这些信号以后,你还不能马上下单,因为你还要知道:信号怎样定义?什么时候成交?已经持仓时怎么办?

学完这一课,你应该能:

  1. 写出 MACD、RSI 和布林带的计算与触发条件;
  2. 区分“指标可以计算”和“指标已经构成有效策略”;
  3. 处理收盘后才知道的信号、未完成委托和持仓状态;
  4. 从 2025 年窗口和更长窗口的异常表现出发,按数据、信号、成交和报告逐项排查;
  5. 用同一个标的、时间区间、资金、费用和成交假设比较三种规则。

这三个指标都只是观察工具。它们能帮你描述趋势、强弱或价格相对区间,但不能保证下一根 一定上涨或下跌。

02MACD:从均线差到交叉信号

假设一条快开始向上,慢均线还没有跟上。MACD 不直接比较两条均线的价格,而是先计算它们的差,再对这个差做平滑。

经典参数通常写成 12、26、9:前两个数字用于快、慢 EMA,最后一个数字用于差值的信号平滑。EMA 是指数移动平均,会让较近的数据权重更高。

DIF = EMA12(收盘价) − EMA26(收盘价)

假设 EMA12 是 105,EMA26 是 100,那么:【】DIF = 105 − 100 = 5【】。

DEA = EMA9(DIF)

如果最近 9 个 DIF 的平滑结果是 4,那么 DEA 就是 4。柱值通常与 【】DIF − DEA【】 成比例;有些软件会再乘以 2,有些不会。假设 DIF 为 5、DEA 为 4,不乘 2 时柱值为 【】5 − 4 = 1【】,乘 2 时显示为 2。过零方向不变,但绝对数值阈值不能混用。

MACD 常见规则可以这样写:空仓时,DIF 向上穿过 DEA,产生买入候选;持仓时,DIF 向下穿过 DEA,产生卖出候选。这里的“穿过”是比较前后两个时点的相对位置,不是只看某一根柱子是否大于 0。

直接比较两条均线;MACD 比较均线差及其平滑值。多一层平滑可能减少一部分短期波动,也会增加延迟,不能因此断言 MACD 一定优于双均线。12/26/9 是广泛使用的参数,不代表天然有效。你也可以比较 10/20 等参数,但参数选择和结果评价要分开。

写成程序时,至少要有四个部分:【】params【】 集中放参数;【】indicator【】 建立 MACD 和交叉指标;【】next【】 在每根新 K 线检查条件;负责避免已有未完成委托时重复提交。收盘后才知道的信号,不能无条件假设自己能以同一根收盘价成交。

MACD 的两步计算

DIF = EMA12(close) − EMA26(close);DEA = EMA9(DIF)

DIF=5、DEA=4 时,未乘 2 的柱值为 1。

MACD 规则进入回测
  1. 1输入按时间排序的同一复权口径收盘价
  2. 2计算DIF、DEA 和柱值
  3. 3判断空仓看向上穿,持仓看向下穿
  4. 4成交按真实可获得的信号时点执行

一句话记住先写清比较哪两条线,再谈金叉和死叉。

03先查数据,再解释 MACD 的结果

假设你把测试窗口设为 2025 年 1 月 1 日至 12 月 31 日,某次输出显示资金曲线约为 −4%,平均约为 1.79,不高,利润也偏弱。这样的数字只能作为一次运行结果,不能脱离数据、代码和完整日志直接当成可复现结论。

可以把 【】run_and_report【】 想成一个公共流程:读取行情、初始化、设置资金和费用、挂载策略、运行回放,再输出交易和资金报告。数据库里的行情可能包含日期、开盘价、最高价、最低价、收盘价和 volume(成交量);你仍然要检查实际字段和数据覆盖。前也要以实际数据库口径为准,不能只凭配置名称猜测。

如果把起始日期改到 2015 年后,资金曲线看起来不合理,按下面顺序排查:

  1. 数据库实际覆盖的首日和末日是什么,是否真的包含请求年份;
  2. 日期是否排序,是否有重复、缺失或非交易日误填;
  3. OHLC 和 volume 是否对应正确列,复权因子是否一致;
  4. 指标预热是否足够,首个信号是否落在有效区间;
  5. 逐笔信号、委托、成交、持仓和现金是否能逐项对上;
  6. 图表画的是资金、净值、收益率还是回撤,标签是否正确。

如果日志提到约 2015 年 11 月 11 日的一笔交易,就把这一天的原始行情、指标值、信号、订单和成交记录串起来检查。不要因为“这只股票长期应该上涨”就断定程序一定错,也不要因为使用成熟库就断定逻辑一定正确。证据来自记录和小样例的复算。

一句话记住异常曲线先找证据,不用直觉替程序下结论。

04RSI:把超买超卖当条件,不当预测保证

假设最近一段时间上涨幅度较大,下跌幅度较小。RSI 用一个 0 到 100 附近的数,描述上涨和下跌力量的相对关系。

常见公式是:

RSI = 100 − 100 ÷ (1 + RS)

其中,RS = 平均上涨幅度 ÷ 平均下跌幅度。假设平均上涨幅度为 2,平均下跌幅度为 1,那么 【】RS = 2 ÷ 1 = 2【】,【】RSI = 100 − 100 ÷ 3 ≈ 66.7【】。不同指标库可能使用不同平滑和初始化方式,所以参数相同,数值也可能略有差异。

基础示例使用 14 周期、低于 30 视为超卖、高于 70 视为超买。一个简单的均值回归规则是:空仓且 【】RSI < 30【】 买入;持仓且 【】RSI > 70【】 平仓。另一种规则是等待 RSI 从 30 以下重新穿回 30 后才入场,这和“低于 30 立即入场”不是同一条规则,实验时不要混用。

使用收盘价,是为了只用已经完成的一个周期计算信号。如果当天还没有收盘,实时 RSI 只是临时值,不能和历史收盘 RSI 混在一起比较。

超卖可能继续超卖。强趋势里 RSI 可以长时间处于极端区间。因此完整规则还要写清退出、、成本和停用条件。高胜率也可能被少数大亏抵消。

一句话记住RSI 极端可以持续,阈值不是反转保证。

05布林带:滚动均值和波动区间

假设你想知道价格相对近期平均水平偏高还是偏低。布林带用一条滚动均线做中轨,再用标准差估计波动范围。

本课示例参数是 20 日均线和 2 倍过去 20 日标准差:

中轨 = 20 日收盘价均值

假设 20 日均值是 100,那么中轨就是 100。

上轨 = 中轨 + 2 × 标准差;下轨 = 中轨 − 2 × 标准差

假设标准差是 3,那么上轨为 【】100 + 2 × 3 = 106【】,下轨为 【】100 − 2 × 3 = 94【】。

均值回归设想可以把“接近或跌破下轨”作为候选入场,把“接近上轨”作为候选退出。但你必须继续规定:用收盘穿越、盘中触及,还是回到带内确认?三种写法对应不同的信号和成交时点。

“约 95%”只是在特定正态分布条件下对两倍标准差区间的描述。真实价格不是固定均值、固定方差的独立正态样本。对一般有限方差分布,切比雪夫不等式给出的两倍标准差范围下界是 75%,不是 95%。无论使用哪种解释,落在区间外都不能推出下一期一定回归。

布林带反转更依赖震荡环境。趋势中价格可能沿着上轨持续上涨,也可能沿着下轨持续下跌。某次固定样本里,三次交易两次获胜、总收益约 7%、约 2.49%,【】7 ÷ 2.49 ≈ 2.81【】,可以帮助理解“ 接近 3”的说法;但只有三笔交易,不能推断未来胜率,也不能把结果推广到所有蓝筹股。

布林带示例

上轨 = 中轨 + 2σ;下轨 = 中轨 − 2σ

中轨 100、标准差 3 时,上轨 106、下轨 94。

指标信号和交易结论不是一回事
可以说

价格跌破下轨

它满足了一个候选条件,需要继续检查环境和成交规则。

不能直接说

下一步一定反弹

趋势行情可能沿下轨继续下跌,必须设置退出和风险边界。

一句话记住跌出下轨是候选信号,不是必然反转。

06用同一实验框架比较三种规则

把三种规则放在同一张表里:

项目MACD 基础规则RSI 基础规则布林带反转规则
主要观察趋势及其变化上涨与下跌力量均值与波动区间
示例参数12/26,信号平滑周期需写清14、30/7020、2 倍标准差
常见误区认为所有金叉都能延续认为超卖马上上涨认为越界必然回归
必查问题平滑延迟、震荡反复交叉极端值持续、平滑差异趋势失效、触发价口径

比较时固定同一个标的、起止日期、初始资金、费用、、复权方式、成交时点和基准。改变市场窗口是为了研究适用环境,不是为了不断挑选最有利的窗口。

公共模块可以复用数据读取、回测、指标统计和资金图;策略模块只描述参数、指标和交易条件。这样做能减少重复代码,也更容易定位问题究竟来自数据、策略还是报告。

动手验收时,先画三张规则卡,逐项写出输入、指标、触发、成交时点、仓位和退出。为每种策略挑三笔信号,手工核对指标与程序输出。再故意请求数据库没有覆盖的年份,系统应明确提示覆盖不足,不能默默缩短数据却把结果标成全年结果。

最后分别写下:哪条规则在本次样本更好;证据有多充分;换到什么市场环境可能失效。

动手试试

三策略环境实验

切换趋势上涨、宽幅震荡和单边下跌三种固定行情,对比 MACD、RSI 与布林带规则的收益、回撤、交易次数和盈利结构。

固定教学样本三策略环境实验
固定教学路径,只用于比较策略假设
趋势上涨 · 同一行情比较三种规则

先判断哪种策略假设更匹配当前环境,再运行固定样本。

运行后将比较收益与回撤交易次数胜率与盈亏比市场环境匹配度
检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01DIF=5、DEA=4 时,不乘以 2 的 MACD 柱值是多少?
02基础 RSI 均值回归示例中,哪组参数和规则匹配?
03中轨为 100、标准差为 3,2 倍标准差布林带的上下轨是多少?
04比较 MACD、RSI 和布林带时,哪项做法更可靠?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · MACD、RSI 与布林带:把指标写成规则指标出现信号后,为什么还不能直接下单?

还要定义成交时点、持仓状态、仓位、退出和风险边界。

  • 指标可计算不等于策略有效
  • 超买超卖可能持续
  • 比较必须统一口径
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01MACD 先计算快慢 EMA 的差,再对差值平滑;12/26/9 是常用参数,不是有效性保证。
  2. 02收盘后才知道的信号要按真实可获得的时点成交,订单状态和持仓状态也要写进规则。
  3. 03RSI 的 30/70 是候选条件,超卖可能持续,强趋势里不能把极端值当成反转保证。
  4. 04布林带的两倍标准差不能直接推出价格必然回归,反转规则更依赖震荡环境。
  5. 05比较三种指标要统一数据、资金、费用、成交和基准,并从交易记录和小样例复核报告。
完成这一课

完成这一课

读完讲义、动手做一次实验、答对小题,这一课就算学完了。

  • 读完讲义
  • 完成一次三策略环境实验
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定合成趋势、震荡与下跌路径,使用简化的次日成交和教学成本,用于比较策略假设。

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。