十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

通达信MACD+KDJ共振副图:从原理到源码的完整拆解

通达信MACD+KDJ共振副图:从原理到源码的完整拆解 简介通达信MACDKDJ共振副图指标源码文档面向需要自定义技术指标的股票投资者帮助理解MACD、KDJ与RSI三类经典指标的组合逻辑与买卖点识别。文档内含完整的副图公式源码可直接复制到通达信软件中使用并附有DIF、DEA、RSV、K、D、J等关键变量的计算方法以及金叉、死叉、顶底背离、共振信号等判断规则源码还利用DRAWICON、DRAWTEXT、STICKLINE在图表上标记信号并通过FILTER过滤虚假提示便于直观复盘。资源为1个doc文件大小292KB方便离线查阅与代码复制。目前已有217人学习下载适合希望提升技术分析效率、减少主观误判的初中级投资者。通过该源码可掌握通达信指标公式中DRAWICON、DRAWTEXT、FILTER、REF等函数的实际用法并理解如何用多指标共振条件优化看盘工具从而更系统地建立自己的交易辅助体系。 先说一个我自己的经历。早年我在通达信里折腾指标最常用的是MACD和KDJ。起初只信MACD金叉结果要么买在半山腰、要么看着金叉追进去正好遇到缩量阴跌后来换KDJ信号倒是快了但震荡行情里金叉死叉来回切光手续费就交了一大把。后来我试着把这两个指标放进同一个副图里做共振确认又反复调整了几个月才慢慢摸到一套能说服自己的判断逻辑。这篇文章不是突发奇想的理论堆砌而是把MACDKDJ共振副图从原理、量化定义、源码到选股公式的完整拆解写给和我一样在通达信里折腾指标公式的读者。如果你手里已经囤了不少网上下载的公式却说不清它们到底在算什么这篇应该能帮你看穿信号背后的逻辑。1. 为什么单用MACD或KDJ总被反复打脸1.1 MACD的滞后性被低估了MACD的本质是12日EMA减去26日EMA得到DIF再对DIF做9日平滑得到DEA。它建立在均线之上均线本身就是滞后指标所以MACD的金叉和死叉天然晚半拍。很多人在日线级别看到MACD金叉时一波上涨已经走了一段等你进场刚好遇到短线回调拿不住就割了。我常把MACD比作导航给的路线规划它告诉你大方向是往东还是往西但不会告诉你下个路口突然窜出一辆电动车。趋势没问题但短线的坑它填不上。MACD适合用来定方向、定强弱不适合用来卡精确的买卖点。1.2 KDJ的灵敏是把双刃剑KDJ的RSV计算用的是9日内最高价、最低价和收盘价的关系再递推平滑成K、D、J三条线。它对最近几天的价格变化特别敏感价格稍有波动J线就上蹿下跳。好处是能提前捕捉拐点坏处是震荡行情里金叉死叉频繁触发把正常波动当成拐点处理。所以KDJ单独用的最大问题是噪音太多。尤其在横盘整理阶段KDJ能给你一周之内画出五六个金叉你要是每个都当成买点结果就是来回止损。KDJ更像车上的近距离雷达能告诉你跟前车距离近了但它分不清前车是短暂刹车还是真的停下来。1.3 所谓“共振”本质是让两种尺度的信号互相确认既然MACD管趋势方向KDJ管短线摆动最合理的用法就是让它们互相确认。当趋势向上时KDJ金叉往往意味着“回调结束、继续走强”当趋势向下时KDJ金叉更多是“下跌中的反抽”追进去容易接飞刀。真正的共振不是要求两个指标同一天金叉而是让趋势指标和摆动指标站在同一边。用一句我经常对朋友说的话MACD负责告诉你“能不能做”KDJ负责告诉你“什么时候动手”。两者配合出来的一套信号比单独看任何一个指标都要稳定。2. 共振条件怎么量化先定义“有效”再谈信号2.1 MACD状态零轴上方加红柱是强势共振的前提我的共振条件里MACD必须满足两个状态之一。第一DIF在零轴上方第二DIF大于DEA也就是红柱状态。零轴上方代表中期趋势偏多红柱代表短期动能还在强化。有人会问MACD零轴下方金叉、KDJ低位金叉能不能做能做但那是超跌反弹逻辑属于“弱共振”只适合快进快出不适合拿趋势。源代码里我会分开标记这两类信号而不是把它们混在一起当成同一个买点。2.2 KDJ的50位是强弱分水岭KDJ金叉发生在50上方还是50下方含义差别很大。50上方金叉说明价格站在9日中线之上属于回踩到位后重新走强50下方金叉说明价格在9日中线之下本质是超跌反抽持续性通常比较差。所以我在共振定义中优先要求K、D处于50附近或上方。这样过滤掉大量弱势反弹信号。实际操作中你会发现符合这种条件的股票数量不多但至少每一只拿出来都有趋势配合而不是单纯跌多了就弹一下。2.3 三种共振等级与我的处理方式共振等级MACD条件KDJ条件我一般怎么处理强共振DIF大于0且红柱持续50上方金叉列入重点观察池等回踩确认普通共振DIF和DEA金叉或红柱刚放大KDJ金叉DIF大于DEA只当短线信号严格设止损弱共振DIF小于0但红柱收口或底背离20附近金叉只看不做等MACD翻红再说强共振最值得关注普通共振可以小仓位参与弱共振我基本放弃。这套分级思路写进公式后信号数量可控复盘起来也更有针对性。3. 副图源码逐段拆解从空画布到共振标记3.1 量纲问题MACD和KDJ不能直接叠在一个坐标里这是做副图时第一个绕不开的坑。MACD的DIF、DEA和柱线是绝对值不同股票的数值差异很大有的MACD柱峰值是0.5有的是3.0而KDJ的K、D、J被限制在0到100区间。如果直接把两者画在同一个副图里MACD柱要么贴在地板上要么直接冲上天花板根本看不清楚。网上的解决思路大概分两类。一类是用HHV、LLV做动态归一化把MACD柱强行压到0到100区间但这会引入未来函数K线没走完时信号会漂移。另一类是分两个副图窗口各画各的但那样又失去了“共振”的直观感。我选的是折中方案给MACD柱加一个手动缩放系数N让柱体高度和KDJ的量级基本匹配。这是最可控、也最不会骗自己的做法。3.2 第一步用缩放系数把MACD柱画进KDJ的坐标体系通达信公式里先算MACD然后用STICKLINE画红绿柱。代码如下{参数区} N:30;{MACD缩放系数记得按个股调整} {MACD计算} DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); MACD:(DIF-DEA)*2; {画MACD柱缩放后与KDJ共用坐标} STICKLINE(MACD0,0,MACD*N,1,0),COLORRED; STICKLINE(MACD0,MACD*N,0,1,0),COLORGREEN;这里的关键是N值。假设某只股票MACD柱的历史峰值大约在1.5附近你想让柱体最高画到副图刻度50的位置那么N就取50除以1.5大概33。不同股票波动率不一样N需要手动微调。我的习惯是先看三五只目标股票的MACD柱峰值取一个能覆盖大多数情况的中间值。3.3 第二步叠加KDJ三线并做视觉分层KDJ部分照常算出K、D、J三条线为了让副图层次清晰我给三线分配了不同的颜色和线宽。这样红色绿色代表MACD柱黄蓝紫代表KDJ视觉上不会糊成一团。{KDJ计算} RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1),COLORMAGENTA,LINETHICK1; D:SMA(K,3,1),COLORCYAN,LINETHICK1; J:3*K-2*D,COLORYELLOW,LINETHICK1;注意这里我把J线也保留了下来。J线虽然噪音大但对超买超卖的提示作用很强后面讲补丁时还会用到它。如果你觉得副图太乱也可以把J线改成不输出只在指标计算里保留。3.4 第三步用信号标记把共振点标出来只画指标线还不够共振副图的核心价值是让信号自动跳出来。我定义了两种共振触发情况一是MACD金叉当天KDJ的多头状态还在二是KDJ金叉当天MACD的多头状态还在。只要满足其一就在副图下方画出一个标记。{共振信号定义} B1:CROSS(DIF,DEA) AND KD; B2:CROSS(K,D) AND DIFDEA; JR:B1 OR B2; {画共振标记} STICKLINE(JR,0,50,2,0),COLORYELLOW; DRAWTEXT(JR,5,共振),COLORYELLOW;这样写的好处是覆盖了两种常见场景趋势刚转多时KDJ正好金叉以及趋势持续中KDJ回踩后再次金叉。前者是“起爆点”后者是“二次上车点”两者都值得标注但含义不完全一样复盘时你会慢慢体会到区别。3.5 完整副图源码把上面的几段拼在一起就是可以直接粘贴到通达信里使用的完整版本{MACDKDJ共振副图} N:30;{MACD缩放系数需按个股调整} DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); MACD:(DIF-DEA)*2; STICKLINE(MACD0,0,MACD*N,1,0),COLORRED; STICKLINE(MACD0,MACD*N,0,1,0),COLORGREEN; RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1),COLORMAGENTA,LINETHICK1; D:SMA(K,3,1),COLORCYAN,LINETHICK1; J:3*K-2*D,COLORYELLOW,LINETHICK1; B1:CROSS(DIF,DEA) AND KD; B2:CROSS(K,D) AND DIFDEA; JR:B1 OR B2; STICKLINE(JR,0,50,2,0),COLORYELLOW; DRAWTEXT(JR,5,共振),COLORYELLOW;整个公式里没用任何未来函数所有计算都只依赖当前已经走完的K线。这一点很重要很多网上源码看起来信号很准其实是用了HHV、LLV这类函数动态取未来N天的高低点盘中和复盘看到的信号根本不一致。你在通达信里验证公式时可以把光标移到历史K线上如果发现信号在盘中会漂移或消失那就是典型的未来函数问题。4. 把共振信号变成可批量检索的选股公式4.1 基础版当日共振选股公式副图指标负责每天盯盘但A股几千只股票一只只翻副图效率太低。所以我把同样的逻辑写成选股公式每天收盘后跑一遍让通达信自动筛出当天出现共振的股票。{基础版当日共振选股} DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1); D:SMA(K,3,1); B1:CROSS(DIF,DEA) AND KD; B2:CROSS(K,D) AND DIFDEA; XG:B1 OR B2;这个版本选出来的股票数量中等适合作为每日观察池的起点。你可以把它加在通达信的“条件选股”里选股周期设为日线。4.2 进阶版叠加量能、位置和零轴过滤基础版信号还是太多尤其在某些强势股票连续上涨阶段KDJ会反复金叉每天都选出同一批票。我建议在基础版上做三个过滤。第一是量能过滤要求当天成交量大于5日均量的一点二倍。没有量能配合的共振往往走不远。第二是位置过滤要求收盘价站上60日均线过滤掉仍处于长期下跌通道的股票。第三是MACD零轴过滤要求DIF大于0确保趋势方向偏多。{进阶版共振加量能、位置、零轴过滤} DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); RSV:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:SMA(RSV,3,1); D:SMA(K,3,1); B1:CROSS(DIF,DEA) AND KD AND DIF0; B2:CROSS(K,D) AND DIFDEA AND DIF0; 量能OK:VOLREF(MA(VOL,5),1)*1.2; 位置OK:CLOSEMA(CLOSE,60); XG:(B1 OR B2) AND 量能OK AND 位置OK;这样过滤之后选出的股票数量会明显减少但每只票的“状态”都更值得研究。我实测下来进阶版选出的股票在次日出现冲高回落的概率比基础版要低一些当然这不代表它不会亏只是风报比更合理。4.3 为什么我不建议把条件加得太死有朋友拿到公式后恨不得加上十个过滤条件换手率要大于几、市盈率要小于几、流通盘要小于几个亿、均线多头发散等等。结果选股结果变成零一周跑下来一股都选不出。条件越多的公式样本越少你就越难判断它到底是靠逻辑盈利还是靠运气。共振信号本来就是一个概率优势不是精确制导。我的建议是选股公式做减法先用基础版选出池子再人工过滤一遍形态和消息面。工具负责缩小范围决策还是得靠自己。5. 实盘中最容易踩的坑以及我给信号打的补丁5.1 误区一共振信号当天直接追高共振信号经常出现在一根中阳线或跳空高开之后等到收盘确认信号时盘中你可能已经错过最佳位置追进去的成本价比信号价高出一截次日稍微回落就被套。我的处理方式是信号出现当天先放进观察池不急着买。如果第二天价格回踩信号K线的实体中部附近不破再考虑入场。如果第二天直接高开高走不回头那就放弃不追。市场里机会多的是错过一个共振信号远比做错一笔亏损单更好。5.2 误区二只看日线忽略更大级别的趋势同样的共振信号放在日线、周线、月线上含义完全不同。15分钟级别的共振一天能出十几个追进去就是给券商送手续费。我见过有人把日线共振公式直接套到分时周期上信号满天飞最后归咎于公式没用。实际操作中至少要叠加一个大周期确认。最简单的方法是看一眼周线MACD是不是红柱。如果周线MACD还是绿柱说明大周期没有走好日线共振只能当反弹处理。通达信支持跨周期引用的版本可以用类似“MACD.DIF#WEEK”的写法去引用周线MACD如果你的版本不支持手动切到周线看几秒就行。5.3 误区三不检查公式里有没有未来函数这是最坑的一点。网上下载的很多指标尤其是那种信号画得特别漂亮的“买卖点”公式大量使用HHV、LLV等函数取未来N天的最高最低值导致信号在盘中不断漂移。你复盘的时候看到历史信号完美避开所有下跌但在实盘中根本等不到那个确认信号。教你一个简单的验证方法把日期定位到某根共振信号K线上然后按键盘的下箭头把最新K线往后移动一天看看信号会不会消失或改变位置。如果变了那这个指标就带未来函数直接删掉。我上面的共振副图和选股公式全部只用EMA、SMA、CROSS、REF这类即时计算函数永远不会出现这个问题。5.4 我给共振信号打的三个补丁第一个补丁是零轴过滤。DIF大于零时的共振做多信号和我前面定义的强共振逻辑一致DIF小于零时即使出现共振标记也默认只是反弹仓位减半或者直接忽略。第二个补丁是J线钝化。J线超过100代表短线严重超买这时候即使KDJ没有死叉、MACD红柱还在也要谨慎追高。我习惯在J值大于100时先减掉一部分仓位等J值回落再考虑是否接回。第三个补丁是时间窗口。以共振信号K线为基准之后三天内如果MACD红柱连续缩短或者K线下穿D线说明共振失败先离场再说。不要死扛着等第二波共振失败后的修复时间往往比预期长得多。踩过几次坑之后我现在把这三条规则当成铁律来执行。与其说MACDKDJ共振副图是一套能精确抓买卖点的指标不如说它是一套帮你把市场状态分级的工具强共振多关注普通共振轻仓试弱共振放一边。源码都给你了参数也留了调整空间剩下的就是在复盘中反复打磨你自己的执行纪律。本文还有配套的精品资源点击获取
返回列表