通达信多周期共振KDJ+MACD主升浪指标公式详解

发布时间:2026/9/19 9:19:33
通达信多周期共振KDJ+MACD主升浪指标公式详解
简介面向股票技术分析爱好者的通达信指标公式文档聚焦短线与中线操作场景。文档以完整公式源码为核心围绕KDJ日、周、月三周期金叉共振识别“金牛启动”信号当日、周、月线KDJ金叉同时出现时触发“日周月赚”提示并在此基础上加入MACD差值启动、均线交叉与主升浪识别条件帮助交易者在多周期共振中寻找潜在买点。资源仅含1个doc文件大小254KB可直接在通达信软件中复制源码使用也可按个人风格调整参数。目前已有155人学习。除核心选股逻辑外内容还覆盖净流入资金跟踪、成交量变化、超买超卖判断等辅助指标并解释了密码变量和二日比对短期波动强度的度量方式展现出从趋势判断到资金验证的完整分析思路适合有一定基础的投资者深入理解指标组合的设计逻辑并据此优化自己的选股与择时方法。1. 多周期共振指标为什么单看日线KDJ总是不够用做短线的朋友基本都碰到过这种场景日线KDJ刚金叉买入后次日就回调等周线指标修复到位股价已经走完第一波主升。问题不在KDJ本身失效而是日、周、月三个周期的走势经常互相矛盾单周期信号天然存在误判。这份“通达信指标公式源码超级金牛启动.doc”里给出的源码把多周期KDJ金叉、MACD柱加速、主升浪均线结构、资金净流入和量价平滑曲线整合成一个综合指标在主图上用“LSP大牛”“LSP金牛”“金牛启动”等文字直接标出信号短线和中线共用一张图判断。它的目标用户是已经会操作通达信公式管理器、但还没建立起多周期信号组织方法的交易者。按源码结构看它实际分成了五个模块KDJ多周期共振、MACD启动、主升浪判定、资金流向过滤和主图可视化下面按这个顺序拆开讲。2. KDJ多周期共振跨周期取数与信号权重编码2.1 “#MONTH”跨周期引用语法与日周月金叉的判定打开公式源码最前面一大段看起来是KDJ其实是三组KDJ日线、周线、月线。通达信公式的跨周期取数写法是指标名.输出名#周期所以KDJ.K#MONTH的意思是“取月线KDJ指标里的K值”KDJ.D#WEEK就是取周线KDJ的D值。没有#后缀的KD.K使用当前行情周期的KDJ当前在日线图上时就等于日线KDJ。原文档里的变量名带了空格例如“日 K”“月 K”直接粘贴到公式管理器容易因为全角空格报错我习惯先把所有变量名内的空格去掉再编译。清理后的取数代码如下{多周期 KDJ 取数在日线图上引用周、月周期数据} 月K:KDJ.K#MONTH; 月D:KDJ.D#MONTH; 周K:KDJ.K#WEEK; 周D:KDJ.D#WEEK; 日K:KD.K; 日D:KD.D; 日金叉:IF(CROSS(日K,日D),15,0); 周金叉:IF(CROSS(周K,周D),25,0); 月金叉:IF(CROSS(月K,月D),35,0);CROSS(日K,日D) 只在“K值由下向上突破D值”的那一根K线上返回1随后立即归零所以IF(CROSS(...),15,0)本质上是一个事件编码器。15、25、35三个数值没有行情含义只是用来区分信号来自日线、周线还是月线周期。这样后面的组合判断可以直接拿整数做等值比较不需要写多层AND嵌套逻辑更简洁也方便复制到选股公式里。提示周线和月线不是每天都产生新K线周一的日线刚刚开盘时周KDJ引用到的还是上周的数据盘中跨周期引用会随着周期K线收盘而刷新但收盘后复盘时当日不算收盘根共振信号可能顺延到下一个交易日才在图上显示。2.2 金叉组合权重与“LSP大牛”文字信号的分级单周期金叉只能说明短周期方向转多真正有价值的是组合。源码把金叉事件进一步组合日周月:IF(日金叉15 AND 周金叉25 AND 月金叉35,1,0); 日周:IF(日金叉15 AND 周金叉25,2,0); 周月:IF(周金叉25 AND 月金叉35,3,0); 日月:IF(日金叉15 AND 月金叉35,4,0); 日周月赚:日周月1; 周月赚:周月3; 日月赚:日月4;从命名能看出原作者的分级意图日周月是“三周期共振”力度最大周月、日月是双周期共振力度次之日周组合源码里没有直接绘制文字只参与后续上下文的判断相当于短线修复状态。这四个组合覆盖了多周期金叉的大部分场景只有日线单周期金叉被有意忽略因为单周期信号在原公式设计里不具备操作价值过滤掉反而减少误触发。组合关系和图上文字对应如下组合变量周期组成图上文字设计含义日周月赚日线周线月线LSP大牛三周期共振最强信号周月赚周线月线LSP金牛中线波段确认日月赚日线月线LSP牛牛月线托底日线反弹日周赚日线周线无短线修复配合其它信号图上文字由DRAWTEXT输出纵向位置用同一个稳定指标乘系数错开DRAWTEXT(日周月赚,趋势*0.96,↖LSP大牛),COLORRED; DRAWTEXT(周月赚,趋势*0.97,↖LSP金牛),COLORFF00FF; DRAWTEXT(日月赚,趋势*0.98,↖LSP牛牛),COLORYELLOW;可能有用户会困惑既然是条件满足才画文字为什么坐标还要乘0.96、0.97、0.98而不是直接用一个固定价格。因为不同股票的绝对价格差异太大固定价格会出现高价股文字画在K线顶部之外、低价股文字又挤在一起的问题。用趋势线的相对比例做Y轴无论股价是5元还是200元三行文字都会在趋势线下方留出均匀间隔视觉上不遮盖K线实体。2.3 三周期共振信号的频率特征三周期共振信号出现的频率远低于单独日线金叉。一个月线周期只有一根月K线月线KDJ金叉可能一两个月才出现一次要让日线、周线、月线的金叉落在同一根K线上条件非常苛刻往往只出现在大级别底部启动初期。所以复盘时看到“LSP大牛”的频率很低是正常现象不需要因为图上一周都没有信号就觉得公式失效。反过来如果某只股票连续出现两次“LSP大牛”通常意味着主升浪级别的行情已经确认第二次共振往往比第一次更值得重视。3. MACD柱加速与主升浪识别金牛启动信号怎么触发3.1 DIF-DEA差值放大120倍后的启动条件源码的MACD段落从DIF和DEA开始但后面做了一个关键处理把“DIF-DEA”的柱状高度放大后再求变化率DIF:EMA(DCLOSE,12)-EMA(DCLOSE,26); DEA:EMA(DIF,9); AAA:(DIF-DEA)*2*60; 启动:CROSS(AAA-REF(AAA,1),15),COLORRED,LINETHICK2; DRAWTEXT(启动,L*0.97,↖金牛启动),COLORYELLOW,LINETHICK2;DIF是12日EMA与26日EMA的差DEA是DIF的9日EMA这两个定义与通达信内置MACD完全一致区别只在于输入源用了DCLOSE也就是除权后的复权收盘价。用DCLOSE的好处是股票除权除息当天价格跳空时不会因为价格断层让DIF产生假金叉或假死叉。下一行AAA:(DIF-DEA)*2*60把柱高放大了120倍。为什么要放大大部分个股的原始MACD柱高波动范围在±0.3柱高的一阶差分也就是今天柱高减昨天柱高通常只有±0.05。如果直接用“柱差大于0.15”这样的条件阈值很难设置。放大120倍后柱差波动集中在10到50的量级阈值15就非常直观。CROSS(AAA-REF(AAA,1),15)的含义是今天MACD柱高度的增量从15以下上穿到15以上表明柱体加速扩张动能突然增强这就是“金牛启动”的触发原理。该信号的灵敏度由两个参数控制一是放大倍数2和60二是阈值15。放大倍数越大柱差数值越大越容易突破阈值阈值越提高要求动能爆发越强。实际测试下来阈值15在日线级别大约每周给出1到3次信号去掉ST股后大部分信号集中在波动率较高的个股上如果把阈值改成25信号数量会下降到原来的三分之一左右更适合中线持仓确认。提示这里的“启动”信号和后面的“主升启动”是两个不同的东西。“启动”只看MACD柱斜率是短线的快信号“主升启动”要叠加均线结构和零轴位置是趋势确认的慢信号。把两者混为一谈是使用该指标最常见的错误。3.2 主升启动均线中枢、55日线与MACD低位金叉三条件合并主升浪判定段落是整份源码里最严格的一组条件AA:(MA(CLOSE,3)MA(CLOSE,6)MA(CLOSE,12)MA(CLOSE,24))/4; BB:EMA(AA,2); TP:(CROSS(AA,BB) OR CROSS(C,AA)) AND CEMA(C,55); CC:EMA(CLOSE,12)-EMA(CLOSE,26); DD:EMA(CC,9); 主升启动:TP AND CROSS(CC,DD) AND (DD-0.07)*CC; DRAWICON(主升启动,L*0.996,1); DRAWTEXT(主升启动,L,↖LSP牛);AA是3、6、12、24四条均线的简单平均值可以理解成一个短中期均线中枢BB是AA的2周期EMA比AA更平滑。TP条件要求“AA上穿BB”或者“收盘价上穿AA”两个方向成立一个即可但同时要求收盘价在55日EMA之上。这个设计想表达的是股价已经站在中长期趋势上方短中期均线开始向上修复趋势由下跌转入上涨。CC和DD就是DIF和DEA。CROSS(CC,DD)是MACD金叉但真正引发主升启动的最后一个条件是(DD-0.07)*CC。这个式子在通达信里的执行规则是DD-0.07为真时返回1乘以CC得到CC本身CC非0即真为假时返回0整体为0即假。所以它等价于“DEA小于等于-0.07”这个数值约束作用是要求MACD金叉发生在DEA处于较低位置时也就是零轴附近的低位金叉而不是股价涨高后的追高金叉。这是主升浪信号的精髓只有在DEA不高时出现MACD金叉才更可能走出一波像样的行情高位钝化之后的金叉往往只是诱多。需要留意的是-0.07这个值对高价股和低价股参考意义不同价格20元以上的股票DEA绝对值通常在0.5以上而5元股票DEA可能只有0.1所以-0.07更接近中低价股市场的通用近似值。主升启动各条件的逻辑权重如下条件含义信号变化趋势CROSS(AA,BB)均线中枢修复频率适中CROSS(C,AA)价格突破中枢频率偏高CEMA(C,55)站上55日线过滤下跌趋势CROSS(CC,DD) AND DD-0.07零轴附近金叉大幅减少信号当“LSP牛”文字出现时如果后面跟随的K线能放出1.2倍以上的量能通常就是主升浪第一波的起点。此时再去看第2章的“LSP大牛”多周期共振是否也成立两者叠加的效果要好于任取其一。4. 资金流向与量价确认净流入万元、PMA与二日比4.1 净流入万元的累计口径与PMA/PMB转折识别很多通达信公式里都有资金流向代码但统计口径差异很大。这份源码用的是“全量成交金额累加法”AAA2:SUM(IF(CLOSEREF(CLOSE,1),VOL*C,0),0); AAA3:SUM(IF(CLOSEREF(CLOSE,1),VOL*C,0),0); AAA4:SUM(IF(CLOSEREF(CLOSE,1),VOL*C,0),0); 净流入万元:(AAA2-AAA3-0.5*AAA4); PM:MA(净流入万元,1); PMA:PM/REF(PM,1)1; PMB:REF(PMA,1)1 AND PMA;AAA2把每个上涨日的成交额累加起来AAA3是下跌日的成交额累加AAA4是平盘日的成交额累加。最终净流入万元并不等于“大单净买入”而是把上涨日全量成交额视为流入、下跌日全量成交额视为流出、平盘日只扣一半它反映的是市场整体多空气氛的累计值所以不用太纠结绝对值大小方向变化才有参考意义。PM取1日均线从写法上看等于净流入万元本身。PMA定义为PM/REF(PM,1)1用来判断今天净流入额相对昨天仍在放大PMB则要求“昨天没放大、今天刚放大”捕捉的是资金从放缓到加速的转折点。实战过滤中我更关注PMB而不是PMA因为PMA连续多日为真时往往已经是行情中后段而PMB从0变1的当天通常对应价格突破或金叉的第一根确认K线。每个中间变量的用途汇总如下中间变量计算方式用途AAA2上涨日VOL*C逐日累加流入侧累计额AAA3下跌日VOL*C逐日累加流出侧累计额AAA4平盘日VOL*C逐日累加平盘成交额按50%扣减净流入万元AAA2-AAA3-0.5*AAA4市场多空氛围累计值PMA净流入额环比放大资金持续扩张状态PMB昨日不放大今日放大资金转向起点4.2 “密码”与二日比成交额双重平滑后的短期强弱校验继续往下是量价指标部分B1万元:DVOL*DCLOSE/100; B1差:B1万元-REF(B1万元,1); B2万元:DVOL*DCLOSE/100; B2比:B2万元/REF(B2万元,1); 密码:(EMA(MA(B1万元,2),2))/100000,COLORYELLOW,NODRAW; 二日比:密码/REF(密码,1);B1万元计算的是复权成交量乘以复权收盘价再除以100本质是单日成交额的另一种表示但用了DCLOSE系列数据避免了除权跳空。B1差是成交额的一阶差分B2比是成交额的环比公式里没有直接画出图形更多是作为中间量被引用。“密码”这个名字比“净流入”难懂一些它的本质是“日成交额先做2日均线、再做2周期EMA”的二重平滑结果再除以100000折算成可视量级。NODRAW表示不显示图形只用数值参与后续计算。二日比等于今天密码除以昨天密码大于1说明近两日成交额处在放大状态小于1说明成交在萎缩。把二日比和前面两章的信号结合时我一般会写一段验证条件{示例金牛启动时要求量能平滑曲线刚向上突破} 量能确认: 启动 AND 二日比1 AND REF(二日比,1)1;这段的顺序是先有方向和动能信号KDJ和MACD金叉后看资金配合净流入和成交额平滑曲线。如果二日比在信号出现时已经连续3天大于1说明资金早就进场价格可能已经处于启动中期而不是起点追高风险反而更大如果信号当天二日比刚从小于1变成大于1则是相对安全的右侧确认点。提示密码的折算单位在不同通达信版本里显示数值会不同如果副图里看到的数值是几千而不是个位数把 /100000 改成 /10000000 即可逻辑不变只改量纲。5. 主图信号可视化DRAWTEXT定位、DRAWICON图标与板块拼接5.1 文字信号坐标的三档错位设计通达信的DRAWTEXT函数前两个参数是条件和Y轴坐标第三个参数是绘制文字。由于Y轴坐标跟随主图价格刻度直接用固定价格做坐标在不同股票之间差异很大。源码用了一段EMA双平滑后的趋势线做基准趋势:EMA(EMA(C,4),4),COLORYELLOW; DRAWTEXT(日周月赚,趋势*0.96,↖LSP大牛),COLORRED; DRAWTEXT(周月赚,趋势*0.97,↖LSP金牛),COLORFF00FF; DRAWTEXT(日月赚,趋势*0.98,↖LSP牛牛),COLORYELLOW;趋势是收盘价的4周期EMA再取4周期EMA比直接用收盘价平滑得多短线噪声明显减少。乘0.96、0.97、0.98是为了在空间上错开当三周期共振条件成立图上一根K线附近会出现三行不同颜色的文字位置依次下移如果只有一个周期组合成立则只出现对应的一行。COLORRED、COLORFF00FF、COLORYELLOW分别对应大牛、金牛、牛牛红色最醒目让最强信号在图上第一眼就能被看到。DRAWTEXT的Y轴只能接受数值线或数值表达式不能直接写“日周月赚”这样的条件做定位。通过趋势线乘以不同系数既照顾了不同股票的绝对价格也没有让文字离开K线太远这个细节可以沿用到自定义指标里。5.2 主升启动的DRAWICON图标编号与显示问题主升启动的图标输出这段主升启动:TP AND CROSS(CC,DD) AND (DD-0.07)*CC; DRAWICON(主升启动,L*0.996,1); DRAWTEXT(主升启动,L,↖LSP牛);DRAWICON(条件,坐标,图标编号) 在条件成立时于坐标位置绘制内置图标。这里坐标是L*0.996L是当根K线最低价0.996意味着图标底部只比最低价再低0.4%不会压住K线实体图标编号1在不同版本通达信里通常是红色菱形或旗帜。如果图形不显示多数是安装版本的精简资源包里没有对应图标可以在公式编辑器的“插入资源”里重新指定图标编号改用3、4、9等编号测试。DRAWTEXT在L价格位置再画一行文字文字会自然悬浮在最低价上方。主升启动属于低频信号在有的股票上一年只出现几次用图标加文字双重标注能避免复盘时漏看关键位置。DRAWICON配合文字使用的做法在通达信指标公式源码里很常见适合把低频高价值信号做成视觉强提醒。5.3 用STRCAT拼接行业、地域、概念板块名称源码末尾有一段固定文字显示的代码Z1:STRCAT(HYBLOCK, ); Z2:STRCAT(Z1,DYBLOCK); Z3:STRCAT(Z2, ); DRAWTEXT_FIX(ISLASTBAR,0.01,0.01,0,STRCAT(Z3,GNBLOCK)),COLORYELLOW;HYBLOCK返回股票所属行业板块名DYBLOCK返回地域板块名GNBLOCK返回概念板块名。STRCAT把两个字符串拼接成一个字符串返回这里先拼行业加一个空格再拼地域最后拼概念保证三段信息之间不粘连。DRAWTEXT_FIX是固定位置显示文字ISLASTBAR为真时只打印在最后一根K线上不会在历史K线位置重复出现屏幕左上角偏移1%的位置显示拼接好的板块字符串黄色着色。这段文字在复盘时非常实用不用切换到F10或板块列表一眼就能看到股票跨了哪个行业、哪个地域、叠加了什么概念。需要留意的是旧版通达信对STRCAT的字符串总长度有限制拼接超过十几个字符时可能被截断如果显示不全删掉中间的空格或只保留行业加概念两项。可视化函数的坐标和用途对比如下函数坐标/参数用途DRAWTEXT趋势*0.96/0.97/0.98错位显示多级信号DRAWICONL*0.996及图标编号1强调主升浪起点DRAWTEXT_FIX(0.01,0.01)及ISLASTBAR在图表左上角固定显示板块名称6. 公式导入、条件选股回测与启动阈值调优6.1 导入公式管理器时的编码与变量名坑这份源码在复制到通达信时会遇到两类典型编译错误。第一类是变量名内部带空格比如原文档里的“月 K”“日 K”“B1 万元”通达信公式编辑器虽然允许中文变量名带空格但粘贴过程里一旦变成全角空格编译器立刻报“未定义的变量名”。建议在粘贴之前用公式管理器的查找替换功能把所有空格替换成空字符统一写成“月K”“日K”“B1万元”的格式。第二类是特殊箭头字符↖通达信默认要求GBK编码如果从文档复制出来变成乱码要在公式编辑器的编码设置里切到中文简体GBK调整后仍乱码就直接删掉箭头字符保留文字部分不影响信号逻辑。导入步骤整理如下按CtrlF打开公式管理器左侧选择“技术指标公式”点击“新建”。公式名称写“LSP金牛启动”把清理过空格的源码粘贴到文本区。点击“测试公式”底部状态栏显示“测试通过”后确定保存。在主图K线界面输入公式名称的首字母调出指标。6.2 把综合公式转成条件选股并做历史回测原公式是画图用的技术指标公式不能直接用于条件选股。新建一个“条件选股公式”把整个源码复制进去最后加一行输出XG:日周月赚1 OR 启动 OR 主升启动;选股器执行后在“功能—选股器—条件选股”里选择这个公式跑历史信号。回测时一定要排除停牌股和上市首日新股否则会多出大量噪声样本。更严谨的做法是同时输出两个条件做对照信号1:日周月赚1 OR 启动; 信号2:信号1 AND 二日比1 AND REF(二日比,1)1; XG:信号2;把“信号2”作为强化条件和“信号1”分别回测统计信号出现后3日、5日的涨幅分布才能看出二日比过滤是否真的提升了胜率。参数调整对信号数量的影响如下可调参数默认值调整方向效果AAA放大倍数中的6060调大信号增多启动阈值15调大到22左右信号减少、触发延迟DD阈值-0.07调小到-0.10主升浪过滤更严格密码除数100000100000按版本调整只影响显示量纲不改逻辑实际调参时优先改启动阈值15而不是60这个放大倍数。把15调到22金牛启动出现频率下降一半对应更严格的短线要求而放大倍数改动对价格剧烈波动的股票影响更大容易放大噪声。KDJ那组的15、25、35组合权重不建议动因为三个周期同步金叉本身已经是足够稀疏的事件改权重会让组合判断混乱回测结果也失去可比性。整个指标里最值得先调的是主升启动的DD-0.07不同价格区间的股票对这个阈值敏感度差别最大用历史数据跑一遍不同阈值下的信号分布再确定适合自己股票池的数值。本文还有配套的精品资源点击获取