RSI威廉通达信 提示你买卖信号TDX00452

指标源码

{RSI威廉}
50,DOTLINE;20;80;
DRAWBAND(80,RGB(0,30,255),100,RGB(0,30,255));
DRAWBAND(20,RGB(0,150,200),0,RGB(0,150,200));
DRAWTEXT_FIX(1,0.02,0,0,'★RSI6与RSA12金叉参考买入.死叉参考卖出. ★威廉WR大于80买入区.小于20卖出区.'),COLOR00FFFF,LINETHICK3;
CC:=FORCAST(C,3); HH:=FORCAST(H,3); LL:=FORCAST(L,3); 
LC:=REF(WMA((2*CC+HH+LL)/4,3),1);
RSI6:SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100,COLORFF9900,LINETHICK0;
RSI12:SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100,COLOR00FFFF,LINETHICK0;
DRAWBAND(RSI6,RGB(255,80,0),RSI12,RGB(0,255,100));
SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100,COLORFF9900,LINETHICK3;
IF(RSI6>REF(RSI6,1),RSI6,DRAWNULL),COLOR0000FF,LINETHICK4;
SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100,COLOR00FFFF,LINETHICK2;
威廉WR:FORCAST(100*(HHV(HH,14)-CC)/(HHV(HH,14)-LLV(LL,14)),5),COLOR00FFFF,DOTLINE;
IF(威廉WR>80 ,威廉WR,DRAWNULL),COLOR00FF00,LINETHICK3;
IF(威廉WR<20,威廉WR,DRAWNULL),COLOR0000FF,LINETHICK3;

1. 指标的整体思路

RSI 威廉(通达信代码名称 RSI威廉)是把 RSI(相对强弱指标)Williams %R(威廉指标) 两大经典摆动指标放在同一幅图里,利用它们的“共振”来增强买卖信号的可靠性。

  • RSI 用来判断 超买/超卖,常用的周期是 6 日(RSI6)和 12 日(RSI12),两者的交叉(金叉/死叉)被视为短期趋势的转换点。
  • Williams %R(代码中叫 威廉WR)同样用于判别 超买(<20)超卖(>80),在 14 日周期内计算。

两者的优势在于:

  1. 互补:RSI 侧重 价格动量,WR 侧重 价格波动幅度,二者同向时信号更可靠。
  2. 可视化:把两条指标画在同一坐标系,并通过 颜色/线形 把关键区间(买入/卖出)突出显示,方便操盘手一眼捕捉信号。

提醒:本指标仅提供参考信号,实际买入卖出仍需结合成交量、趋势线、大盘环境等因素自行判断。


2. 代码逐行解析

下面的说明以 通达信(TDX) 语法为准,代码中已给出中文注释,您可以对照查看。

// 1️⃣ 绘制辅助水平线
50,DOTLINE;               // 中轴 50(RSI 中位)用点线
20;80;                    // 两条关键阈值 20、80(WR 超买/超卖)

// 2️⃣ 背景带(可视化区间)
DRAWBAND(80,RGB(0,30,255),100,RGB(0,30,255));   // 80‑100 区间用淡蓝色背景
DRAWBAND(20,RGB(0,150,200),0,RGB(0,150,200));   // 0‑20 区间用淡青色背景

// 3️⃣ 界面说明文字(左上角固定显示)
DRAWTEXT_FIX(1,0.02,0,0,
    '★RSI6与RSA12金叉参考买入.死叉参考卖出. ★威廉WR大于80买入区.小于20卖出区.'
),COLOR00FFFF,LINETHICK3;

// 4️⃣ 计算基准价 LC(动态均线,使用 3 日 “预测” 后的 WMA)
CC:=FORCAST(C,3);               // 3 日后收盘价的预测(用于平滑)
HH:=FORCAST(H,3);               // 3 日后最高价的预测
LL:=FORCAST(L,3);               // 3 日后最低价的预测
LC:=REF(WMA((2*CC+HH+LL)/4,3),1); // 2*收盘+最高+最低 的加权平均,取前一次值

// 5️⃣ RSI6 与 RSI12(基于动态基准 LC)
RSI6:SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100,COLORFF9900,LINETHICK0;
RSI12:SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100,COLOR00FFFF,LINETHICK0;

// 6️⃣ 用带状颜色把 RSI6、RSI12 合并显示(便于观察交叉)
DRAWBAND(RSI6,RGB(255,80,0),RSI12,RGB(0,255,100));

// 7️⃣ 再次绘制 RSI6(主线条),使用默认颜色(橙色)并加粗
SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100,COLORFF9900,LINETHICK3;

// 8️⃣ 若 RSI6 高于前一值,画一段 **蓝色** 粗线(表示上升动量)
IF(RSI6>REF(RSI6,1),RSI6,DRAWNULL),COLOR0000FF,LINETHICK4;

// 9️⃣ RSI12 绘制(青色)并加粗
SMA(MAX(CLOSE-LC,0),12,1)/SMA(ABS(CLOSE-LC),12,1)*100,COLOR00FFFF,LINETHICK2;

// 🔟 Williams %R(WR)——同样使用 “预测” 的最高/最低
威廉WR:FORCAST(100*(HHV(HH,14)-CC)/(HHV(HH,14)-LLV(LL,14)),5),COLOR00FFFF,DOTLINE;

// 11️⃣ 当 WR>80(超卖)时,用 **绿色** 粗线标记买入区
IF(威廉WR>80 ,威廉WR,DRAWNULL),COLOR00FF00,LINETHICK3;

// 12️⃣ 当 WR<20(超买)时,用 **蓝色** 粗线标记卖出区
IF(威廉WR<20,威廉WR,DRAWNULL),COLOR0000FF,LINETHICK3;

关键点解释

行号 关键函数 作用
1‑2 50,DOTLINE;20;80; 绘制 RSI 中位(50)以及 WR 超买/超卖阈值(20、80)。
3‑4 DRAWBAND 用背景色填充 0‑20、80‑100 两个极端区间,便于一眼辨认“买入/卖出区”。
5 DRAWTEXT_FIX 固定在左上角的说明文字,提醒使用者 RSI 金叉/死叉、WR 区域的含义。
6‑8 CC、HH、LL、LC FORCAST(预测)产生“未来 3 天的收盘、最高、最低”,再取其 WMA(加权移动平均)得到 LC。这是一种“平滑基准”而非传统的 收盘价,对 RSI 的计算略有不同。
9‑10 RSI6、RSI12 标准的 RSI 公式(SMA(MAX(CLOSE-LC,0),…)/SMA(ABS(CLOSE-LC),…)*100),只是把 收盘价 替换为 LC
11 DRAWBAND(RSI6,RGB(255,80,0),RSI12,RGB(0,255,100)) 用两条不同颜色的带状线把 RSI6 与 RSI12 包在一起,颜色相交处即交叉点。
13‑14 IF(RSI6>REF(RSI6,1),RSI6,DRAWNULL) 仅在 RSI6 上升(即大于前一天)时绘制蓝色粗线,用来强调动量向上。
16‑18 威廉WR 使用 FORCAST 再对 HHV、LLV(14 周期最高/最低)进行预测,得到 Williams %R
19‑20 IF(威廉WR>80,…),IF(威廉WR<20,…) 当 WR 进入 超卖(>80) 时画绿色粗线,进入 超买(<20) 时画蓝色粗线,直观标记买卖区间。

注意

  • FORCAST未来函数(会使用尚未收盘的数据),在实盘时会出现 重绘(repaint)现象,因而 仅适合复盘或做策略回测,不建议在实盘交易时直接依据它下单。
  • 代码里出现了 RSA12(应为 RSI12)的拼写错误,实际效果不影响计算,因为变量名仍是 RSI12

3. 信号解读(如何使用)

条件 解释 可能的操作(仅作参考)
RSI6 上穿 RSI12(金叉) 短期多头力量增强 参考买入
RSI6 下穿 RSI12(死叉) 短期多头力量减弱 参考卖出
RSI6 > 前一交易日(蓝色粗线) RSI6 处于上升阶段 增强买入信心
威廉WR > 80(绿色粗线) 进入 超卖 区域,可能出现反弹 参考买入(逆势)
威廉WR < 20(蓝色粗线) 进入 超买 区域,可能出现回调 参考卖出(逆势)
共振:RSI 金叉 WR >80 两指标同向,信号更强 可视为较为可靠的买入区
共振:RSI 死叉 WR <20 两指标同向,信号更强 可视为较为可靠的卖出区

实战小技巧

  1. 交叉确认:仅凭 RSI 金叉/死叉有时会出现假突破,建议等待 收盘价 明确突破 前期高低点 再动手。
  2. 成交量配合:在金叉且成交量放大(相对前 5 日均量 >1.5 倍)时,买入信号更可靠。
  3. 趋势过滤:在 均线多头排列(如 MA20>MA60)的大背景下,RSI 金叉的买入信号成功率更高;在均线空头排列时,RSI 死叉的卖出信号更可信。
  4. 止损/止盈:即使出现共振信号,也应设定 止损位(如跌破最近低点 2‑3%)和 止盈位(如 RSI 重新回到 50 以下或 WR 回到 20‑80 中间区)。

4. 在通达信里如何加载和使用

下面的步骤以 通达信 6.x / 7.x 为例,略有差异时请参考对应版本的“公式管理器”。

  1. 打开公式管理器

    • 在行情界面按 Ctrl + F(或点击菜单 工具 → 公式管理 → 技术指标)。
  2. 新建技术指标

    • 在左侧树形目录中选择 技术指标,点击右上角的 新建
    • 弹出 “技术指标编辑器”,在 名称 栏输入 RSI威廉(或您喜欢的名称)。
    • 类别自定义(或任意您想放的分类)。
  3. 粘贴源码

    • 将上面的完整代码(从 50,DOTLINE; 开始到最后的 IF(威廉WR<20,威廉WR,DRAWNULL),COLOR0000FF,LINETHICK3;)复制粘贴到编辑框中。
  4. 保存

    • 点击 保存(或 Ctrl + S),关闭编辑器。
  5. 把指标加到图表

    • 在任意股票的 K 线图(或分时图)上,右键 → 添加指标(或在主菜单 “分析 → 指标管理器”)。
    • 在弹出的指标列表里找到 “RSI威廉”(如果没有刷新,请右键 → “刷新公式列表”),选中后点击 确定
  6. 查看副图

    • 默认会显示在 副图(即下方独立的坐标),您也可以把它拖到 主图(与 K 线同坐标)——只需在“指标属性”里把 “显示位置” 改为 主图
  7. 调参数(可选)

    • 本公式没有提供外部参数(所有周期已硬编码),如果您想自行调整 RSI 周期、WR 周期等,可把对应的数字改为 参数(例如 N:=6;),并在公式顶部使用 INPUT 关键字。

5. 常见的注意事项与可能的改进

项目 说明 建议
未来函数(FORCAST) 使用了 FORCAST,会导致 实盘重绘,不适合作为唯一的买卖依据。 若想用于实盘,建议把 FORCAST 去掉,改用普通的 CLOSE、HIGH、LOW
RSI 计算基准 这里的 RSI 并不是直接基于 收盘价,而是基于 LC(加权预测均价),属于 非标准 RSI,对部分用户可能不易理解。 若想使用更常见的 RSI,可改为 RSI6:SMA(MAX(CLOSE-REF(CLOSE,1),0),6,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),6,1)*100;(即最原始的 RSI 公式)。
金叉/死叉的自动提示 代码只画出了颜色变化,若想 箭头/文字 提示,可加入 CROSS 函数与 DRAWICON 示例:DRAWICON(CROSS(RSI6,RSI12),RSI6,'↑'),COLORRED;(买入箭头)
WR 的周期 代码里用了 14 周期(HHV(HH,14)LLV(LL,14)),如果想更快可以改成 10、7 等。 直接把 14 换成 PARAM(如 N:=10;),在公式头部使用 INPUT
参数化 所有数字都硬编码,后续想调参需要改源码。 改为 INPUT 方式,方便在图表上直接修改。
复盘 vs 实盘 含有未来函数,复盘结果看起来很诱人,但在实盘中会出现“信号消失”。 建议先在 回测 中把 FORCAST 去掉,做一次 无未来函数 的回测,对比差异。

6. 小结

  • RSI 威廉 通过把 RSI6/12Williams %R 组合,提供 共振买卖信号
  • 代码使用 预测(FORCAST) 来产生 “动态基准价 LC”,导致 重绘,适合复盘但要谨慎实盘。
  • 关键信号:
    • RSI6 上穿 RSI12 → 金叉(买入)
    • RSI6 下穿 RSI12 → 死叉(卖出)
    • 威廉WR >80(超卖) → 可能的买入区;
    • 威廉WR <20(超买) → 可能的卖出区。
  • 加载方式:**公式管理器 → 新建技术指标 → 粘贴源码 → 保存 → 在图表中“添加指标”。
  • 使用时建议 结合成交量、趋势、止损/止盈,并对 未来函数 进行适当修改后再实盘。

再次提醒:本指标仅供技术分析参考,任何买卖决定请务必基于完整的交易计划并自行承担风险。祝您投资顺利!