夜雨聆风学习资料网

ARTICLE · 1116755

通达信"多空比值抄底"指标源码解读:15日强弱线叠加超跌反转共振的编程逻辑

通达信"多空比值抄底"指标源码解读:15日强弱线叠加超跌反转共振的编程逻辑

风帆量化 · 通达信公式编程教学

温馨点击上方"风帆量化" → 点击右上角 "..." → 选 "设为星标"★

今天拆解一款把15日强弱线与超跌反转共振放在同一个副图里的通达信指标——「多空比值抄底」。

它的核心是一条取值 0 到 1 的「主升」线:把15个交易日里"高点不断抬升"的幅度累加起来,再除以"抬升 + 下沉"的总幅度,得到这半个月里多方力量的占比。0.8 以上算强,0.1 以下算弱。

副图在这条线上画三条刻度(0.8 / 0.5 / 0.15),并用柱状与文字标出「兑现」与「抄底」两个位置;真正的买点信号由 RSI 超卖拐头、慢速KD金叉、偏差极值回升三组条件共同决定。下面逐层拆解编程逻辑,最后附上完整源码。

一、这个指标在做什么?(整体逻辑速览)

整段代码可以归成6层,层层收紧:

① 强弱刻画层:用 D1 统计15日内高点抬升的累计幅度,D2 统计低点下沉的累计幅度,两者相除得到主升线

② 强弱刻度层:0.8 / 0.5 / 0.15 三条虚线做参照;主升高于0.88 画白柱,主升下穿0.8 画绿柱并标「兑现」

③ 超卖拐头层:D5 是7日RSI,D6 用 FILTER 取「前日RSI低于20、今日回升」这一天的5日内首次

④ 超跌定位层:D7 是加权价5日均线,D8 取其0.98倍,D9 是动态均线 DMA;D8 低于 D9 视为超跌

⑤ 摆动指标层:D10 取9日RSV,D11 做3-3平滑得到慢速K;要求当日金叉、并且前一日仍在下行

⑥ 极值回升层:偏差是 (高+低+收)/3 对14日均线的标准化偏离;要求低于 -100 且当日已经回升

核心定位:强势回落后进入极弱区、同时出现超卖拐头与摆动金叉的时点,属于左侧观察型信号。

二、逐层拆解

第1层:主升线是怎么算出来的

D1:=SUM(IF(H>REF(H,1),H-REF(H,1),0),15);D2:=SUM(IF(L>REF(L,1),0,REF(L,1)-L),15);ZS:D1/(D1+D2),DOTLINE,COLORYELLOW;

D1 只统计"今天最高价高于昨天最高价"的那些天的差值,把这些差值在15日内加总,代表上攻力量的累计;D2 反过来,只统计低点被击穿的幅度。两者相除就是主升线:分子大说明抬升占主导,分子分母接近说明多空在拉锯。

学习要点:IF(条件, 成立时的值, 不成立时的值) 是最常用的分段取值写法;SUM(X,15) 把最近15根K线的 X 值求和,常用来做区间累计。

第2层:刻度线与两个文字标记

D3:=CROSS(0.8,ZS);STICKLINE(ZS>0.88,1,0.9,1,0),COLORWHITE;STICKLINE(D3,1,0.8,1,0),COLOR00FF00;DRAWTEXT(D3,0.76,'DX'),COLORYELLOW;IF(ZS<0.1,ZS,DRAWNULL),COLORLIGREEN;DRAWTEXT(BARSLASTCOUNT(ZS<0.1)=1,ZS,'CD'),COLORGREEN;

三条虚线(0.8 / 0.5 / 0.15)给主升线提供读数参照。主升高于0.88 时在副图顶部画一段白柱,代表强势区;当主升从上方向下穿过0.8(CROSS(0.8,主升))时画绿柱并标注 DX(原文标签是中文「兑现」),提示强弱力量发生拐头。末尾两行的 CD 标注是原文的「抄底」,出现在主升首次跌破0.1 的那一天。

学习要点:CROSS(A,B) 表示 A 上穿 B。写 CROSS(0.8,主升) 时 0.8 当作快线,得到的是主升"下穿"0.8,方向别记反。

第3层:超卖拐头(RSI + FILTER)

D4:=REF(CLOSE,1);D5:=SMA(MAX(CLOSE-D4,0),7,1)/SMA(ABS(CLOSE-D4),7,1)*100;D6:=FILTER(REF(D5,1)<20 AND D5>REF(D5,1),5);

D5 是常见的7日RSI写法:上涨幅度之和除以涨跌幅绝对值之和再乘100。D6 要求前一天RSI还在20以下、当天开始回升,并用 FILTER 把结果去重,5个交易日内只算首次出现。

学习要点:FILTER(条件, N) 表示条件成立后 N 个周期内不再重复输出,常用来避免同一波行情里信号连发。

第4层:超跌定位(加权价均线 + 动态均线)

D7:=MA((2*C+H+L)/4,5);D8:=D7*(200-102)/100;D9:=(1-7/100)*DMA(C,ABS((2*C+H+L)/4-MA(C,20))/MA(C,20));

(2*C+H+L)/4 是给收盘价加权的均价,比单纯收盘均线更贴近盘中重心。D8 取它的98%,D9 用 DMA 做一条"波动越大跟得越紧、波动越小跟得越慢"的动态均线。当 D8 低于 D9,说明价格还压在均线下方,属超跌区间。

学习要点:DMA(X,A) 是动态移动平均,第二个参数 A 越大跟随越快;用波动率当 A,可以让均线在剧烈行情里更灵敏。

第5层:慢速KD(RSV 的两次平滑)

D10:=(C-LLV(L,9))/(HHV(H,9)-LLV(L,9))*100;D11:=3*SMA(D10,3,1)-2*SMA(SMA(D10,3,1),3,1);

D10 是9日RSV,衡量收盘价在近9日高低区间里的相对位置。D11 用 3*SMA - 2*SMA(SMA) 的经典写法把RSV做两次平滑,得到慢速K值,波动比原始KD平缓,更适合看拐点。

学习要点:HHV(H,9) 取9日最高、LLV(L,9) 取9日最低,两者相减是区间振幅,用它做分母就得到百分位。

第6层:偏差极值与最终选股

PC:=((H+L+C)/3-MA((H+L+C)/3,14))/(0.015*AVEDEV((H+L+C)/3,14));T1:=D8<D9 AND D11>REF(D11,1) AND REF(D11,1)<REF(D11,2) AND PC<-100 AND PC>REF(PC,1);XG:D6 AND T1,STICK,COLORRED,LINETHICK2;

偏差是 CCI 的同类算法:典型价 (高+低+收)/3 相对14日均线的偏离,再除以 0.015 倍的平均绝对偏差做标准化。要求它低于 -100(极度超卖)并且当天已经回升。T1 把四项条件合并:超跌 + 慢速K金叉(当日高于前一日、且前一日仍低于前一日的前值)+ 偏差极值回升。最终选股信号是 D6 与 T1 同时成立。

学习要点:AVEDEV 是平均绝对偏差,用它可以做无量纲标准化;把多个条件先合并成一条 T1,输出行只写 T1,公式会清晰很多。

三、实战图例:信号在图上长什么样?

下图是副图加载后的效果示意:黄线是主升线,白柱标出强势区,绿色文字标出强弱拐头,红色柱是选股信号。

看图重点:STICKLINE 负责画柱,DRAWTEXT 负责标文字,DOTLINE 画虚线刻度。图中信号仅展示公式输出形态,不构成投资建议。

四、版本差异对比

本文这段源码是副图指标版,自带画线参数。如果想把它当成条件选股公式用,需要做三处减法(改用 := 赋值、删掉全部画线与文字语句、输出行只留信号)。下表是两种版本的差异;改造完成的条件选股版完整源码放在文末第七节,可直接复制到「条件选股公式」里用:

改造项
副图指标版(本文源码)
条件选股版(改造后)
输出行
XG:D6 AND T1,STICK,COLORRED,LINETHICK2
XG:D6 AND T1
画线语句
保留 STICKLINE / DRAWTEXT / DOTLINE 等
全部删掉
用途
在副图里观察强弱与信号位置
盘后一键海选,只输出信号
注意
可直接粘贴使用
改动后再粘贴,上方所有 := 定义行保留

具体改造三处:① 「主升」由输出行 ZS: 改成赋值 ZS:=;② 输出行精简为 XG:D6 AND T1;;③ 删掉全部 8 行画线/标注语句(3 条刻度虚线、2 条 STICKLINE、2 条 DRAWTEXT、1 条 DRAWNULL)。其余 13 行定义与副图版逐字相同,改造后的完整源码见文末第七节。

五、实战使用注意事项(必看)

① 适用场景:信号出现在"强势回落后进入极弱区"的时点,属于左侧观察型。趋势中的回调与下跌末端的超跌都可能触发,需要结合更大周期判断位置。

② 「兑现」是强弱拐头:它由主升下穿0.8 触发,描述的是15日强弱力量的衰减,不能当作精确卖点。

③ 「抄底」只是极弱标记:它由主升首次跌破0.1 触发,是跌进极弱区的第一天,之后继续走弱很常见,只能用来观察。

④ 选股条件偏严:D6 与 T1 共五项条件同时成立,外加 FILTER 去重5天,信号数量偏少,建议先小范围回看再决定用法。

⑤ 参数微调:最敏感的两处是 D6 里的 RSI 阈值 20 与 T1 里的偏差阈值 -100,放宽这两个数字会明显增加信号数量。

六、延伸学习

1. SMA() / DMA() —— 通达信的两类加权平均,SMA 带权重参数,DMA 用动态因子,做平滑与快慢线常用;

2. FILTER() —— 信号去重,控制密度;

3. AVEDEV() 与 CCI 类偏差 —— 用平均绝对偏差做标准化,衡量价格相对均线的极端程度。

七、完整源码(复制前请先对照上方逐层解读)

副图指标完整版(强弱线 + 刻度 + 兑现/抄底标注 + 选股信号):

D1:=SUM(IF(H>REF(H,1),H-REF(H,1),0),15);D2:=SUM(IF(L>REF(L,1),0,REF(L,1)-L),15);ZS:D1/(D1+D2),DOTLINE,COLORYELLOW;D3:=CROSS(0.8,ZS);D4:=REF(CLOSE,1);D5:=SMA(MAX(CLOSE-D4,0),7,1)/SMA(ABS(CLOSE-D4),7,1)*100;D6:=FILTER(REF(D5,1)<20 AND D5>REF(D5,1),5);D7:=MA((2*C+H+L)/4,5);D8:=D7*(200-102)/100;D9:=(1-7/100)*DMA(C,ABS((2*C+H+L)/4-MA(C,20))/MA(C,20));D10:=(C-LLV(L,9))/(HHV(H,9)-LLV(L,9))*100;D11:=3*SMA(D10,3,1)-2*SMA(SMA(D10,3,1),3,1);PC:=((H+L+C)/3-MA((H+L+C)/3,14))/(0.015*AVEDEV((H+L+C)/3,14));T1:=D8<D9 AND D11>REF(D11,1) AND REF(D11,1)<REF(D11,2) AND PC<-100 AND PC>REF(PC,1);XG:D6 AND T1,STICK,COLORRED,LINETHICK2;0.80,DOTLINE,COLOR808080;0.5,DOTLINE,COLOR808080;0.15,DOTLINE,COLOR808080;STICKLINE(ZS>0.88,1,0.9,1,0),COLORWHITE;STICKLINE(D3,1,0.8,1,0),COLOR00FF00;DRAWTEXT(D3,0.76,'DX'),COLORYELLOW;IF(ZS<0.1,ZS,DRAWNULL),COLORLIGREEN;DRAWTEXT(BARSLASTCOUNT(ZS<0.1)=1,ZS,'CD'),COLORGREEN;

条件选股版完整源码(去掉画线与标注,只留信号输出):

D1:=SUM(IF(H>REF(H,1),H-REF(H,1),0),15);D2:=SUM(IF(L>REF(L,1),0,REF(L,1)-L),15);ZS:=D1/(D1+D2);D3:=CROSS(0.8,ZS);D4:=REF(CLOSE,1);D5:=SMA(MAX(CLOSE-D4,0),7,1)/SMA(ABS(CLOSE-D4),7,1)*100;D6:=FILTER(REF(D5,1)<20 AND D5>REF(D5,1),5);D7:=MA((2*C+H+L)/4,5);D8:=D7*(200-102)/100;D9:=(1-7/100)*DMA(C,ABS((2*C+H+L)/4-MA(C,20))/MA(C,20));D10:=(C-LLV(L,9))/(HHV(H,9)-LLV(L,9))*100;D11:=3*SMA(D10,3,1)-2*SMA(SMA(D10,3,1),3,1);PC:=((H+L+C)/3-MA((H+L+C)/3,14))/(0.015*AVEDEV((H+L+C)/3,14));T1:=D8<D9 AND D11>REF(D11,1) AND REF(D11,1)<REF(D11,2) AND PC<-100 AND PC>REF(PC,1);XG:D6 AND T1;

⚠️ 互动问答:

使用指标时遇到任何问题(如安装、信号解读等),欢迎在留言区提问,我会第一时间解答!

也可以分享你的使用心得 —— 这个指标帮你抓住过哪些机会。

👥 制作不易,麻烦点亮右下角的 "👍" + "❤" 支持一下!

📢 转发给身边朋友,一起交流进步~

👉 喜欢我的分享?记得关注我,持续更新干货!

⚠️ 免责声明

本文所有源码及解读内容仅为通达信公式编程教学,目的在于帮助读者理解指标编写逻辑和函数用法。文中提到的任何指标名称、信号条件、参数设置均不构成任何投资建议。

指标是辅助分析工具,其信号仅反映特定数学条件是否满足,不代表对未来走势的预测。实际使用时请务必结合自身判断和其他分析方法,理性决策。投资有风险,入市需谨慎。

相关学习资料