尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

MACD零轴主图公式:以50日均线为锚的通达信指标

MACD零轴主图公式:以50日均线为锚的通达信指标 简介这是一份面向通达信软件用户的MACD主图指标源码文档专门解决默认副图MACD与主图价格走势分离的痛点适合具有一定技术分析基础的投资者直接导入使用。文档内容围绕MACD零轴主图展开以黄色加粗的50日均线作为基准线将DIF、DEA两条信号线置于主图并通过红绿柱状图呈现MACD动力变化源码中详细展示了DIF1、DEA1的EMA算法以及M50、柱状图条件判断等关键代码。压缩包内仅1个doc文件大小120KB目前已有161人学习。借助文档读者既能获得完整公式源码也能理解MACD指标的含义与自定义主图的编排思路可结合实际行情观察DIF上穿/下穿DEA的买卖信号并灵活调整参数以适配自身交易策略。文档还给出备用的D50趋势线计算方式方便进一步拓展指标功能是在通达信中构建个性化看盘界面的实用参考。1. 为什么要把 MACD 柱搬到 50 日均线上用过通达信的人都有这个体验副图里看 MACD主图里看均线眼神要在两个图之间来回切金叉死叉发生的时候还要自己脑补当前价格到底处在什么位置。这份 MACD 零轴主图源码想解决的正是这个割裂感。它把 MACD 的 DIF、DEA 以及红绿柱全部映射到主图并以 50 日均线作为柱状图的视觉零轴——柱子在 50 日线上方表示多头力量占优下方表示空头力量占优。这样开盘扫一眼主图趋势方向、MACD 位置、均线支撑压力三条信息在同一坐标系里同时呈现。适合两类人一是嫌副图太占屏幕空间的盯盘型选手二是想让自选股池在一页主图内快速排序的选股流用户。下文先逐行拆公式再讲导入调试最后给出参数化改造思路。2. 零轴主图公式的结构拆解从 EMA 计算到柱状绘制2.1 先看懂公式里的两条计算链DIF1/DEA1 与 DIF/DEA原公式的核心计算其实只有三行其余都是在为画线服务。先看最关键的 DIF1 与 DEA1DIF1:EMA(CLOSE,12)-EMA(CLOSE,26); DEA1:EMA(DIF1,9); MACD:(DIF1-DEA1)*2,NODRAW,COLORRED;这段是标准 MACD 的原始算法。DIF1 是 12 日 EMA 与 26 日 EMA 之差代表短期动能相对长期动能的变化速度DEA1 是 DIF1 的 9 日 EMA相当于给 DIF1 做了一次平滑过滤掉短期毛刺。MACD:(DIF1-DEA1)*2是柱值的常规放大两市通用的 MACD 副图指标里也是乘 2目的是让柱体在副图里有足够的视觉高度。NODRAW表示该表达式只参与计算或传递给后续函数不直接在主图绘制线条这一点很重要如果不写 NODRAW通达信会自动按主图价格比例画一条线反而干扰 K 线显示。注意原公式里还有一层叠加DIF:DIF1EMA(CLOSE,3),COLORWHITE; DEA:DEA1EMA(CLOSE,12),COLORYELLOW;这里 DIF 等于标准 DIF1 再加 3 日 EMADEA 等于标准 DEA1 再加 12 日 EMA。这样处理的结果是两条线整体上移、且比传统 MACD 更快贴近价格波动。你在主图上看到的白色 DIF 与黄色 DEA 并非副图 MACD 的原始数值而是位移后的版本。正因为有了这个偏移两条线才能直接与主图价格叠加显示不需要额外缩放这是该公式能在主图共存而不产生明显坐标冲突的关键设计。从信号判读角度白线上穿黄线是多头占优下穿是空头占优逻辑与原版 MACD 一致但由于 DIF 多叠加了 3 日 EMA它的反应速度会比副图标准 DIF 更快一些适合短线。这里的取舍是灵敏度提升的同时假信号也会增加实际使用时要结合 M50 均线方向做二次过滤——M50 向上时的金叉可信度远高于 M50 走平或向下时的金叉。2.2 STICKLINE 柱状绘制逻辑与 M50 锚点接下来是主图柱子的核心绘制段。代码里连续四条 STICKLINE逐行看STICKLINE(MACD0,M50,M50MACD*3,0,1),COLORLIRED; STICKLINE(MACD0,M50,M50MACD*3,0,1),COLORLIGREEN; STICKLINE(((MACDREF(MACD,1)) AND (MACD0)),M50,M50MACD*3,0,1),COLORLIRED; STICKLINE(((MACDREF(MACD,1)) AND (MACD0)),M50,M50MACD*3,0,1),COLORLIGREEN;STICKLINE 的五个参数依次是条件、起点位置、终点位置、实体宽度、是否空心。这里起点是 M50终点是M50MACD*3。MACD 为正时终点在 M50 上方画淡红色柱MACD 为负时终点在 M50 下方画淡绿色柱。*3是柱体高度的放大系数因为主图价格的量级通常在几十到几百元而 MACD 原始柱值通常只有几元不放大三倍柱体几乎看不见。后两条 STICKLINE 是在同一区域上重新着色第一条内部再次细化多头柱中MACD REF(MACD,1)的部分即红柱虽在零轴上但动能正在衰竭的那些 K 线第二条细化绿柱中MACD REF(MACD,1)的部分即空头动能正在衰减的绿柱。不过在通达信实际渲染中后画的线会覆盖先画的线但由于颜色代码相同——COLORLIRED 和 COLORLIRED 都是淡红COLORLIGREEN 也都是淡绿所以视觉上不会产生差异网上流传的这份源码更像是保留了逻辑骨架但没有进一步区分颜色深度。若你想让“红柱衰竭”和“红柱扩张”真正显示成两种颜色可以将后两条中的 COLORLIRED 改为 COLORRED把 COLORLIGREEN 改为 COLORGREEN。这样同一根红柱里动能扩张段为深红、衰竭段为淡红右侧视觉反馈会清晰很多具体的完整替换写法在最后一章给出。2.3 那行被注释的 D50多周期 DIF 均线的设计意图源码中有一行被花括号注释掉的语句{D50:M50MA(DIF1,50),LINETHICK2;}D50 的逻辑是 M50 再加上 DIF1 的 50 日移动平均。DIF1 是标准 MACD 的 DIF它的 50 日均值可以理解为“中期动能中枢”。如果启用这行主图上会多一条比 DIF、DEA 更平滑的参考线当柱子围绕这条 D50 运行且 D50 方向向上时中期趋势处于偏多区间当 D50 掉头向下而柱体还在 M50 上方反复穿插时往往说明行情进入震荡甚至转势的临界阶段。这行的注释状态也说明原作者认为 D50 会引入额外噪音或者造成线条过多。我的建议是把它保留为选配项不取消注释而是在公式编辑器中另存一个副本启用它做对比测试尤其适合用在 MA50 与价格纠缠、趋势方向不清晰的时候。2.4 本公式是否存在未来函数排查未来函数可以从两个层面看。一是语法层面REF(MACD,1)引用的是上一根 K 线的 MACD 值属于向右引用不会在未来数据确定前改变当前值。EMA、MA 都是标准的递归或线性均值计算通达信在每根 K 线收盘后即可确定不存在漂移。二是逻辑层面DIF1 和 DEA1 本身是收盘价的函数收盘价在当前 K 线结束时确定所以整个公式不包含未来信号适合直接用于历史回测和盘中预警。有一点需要强调NODRAW 的 MACD 中间变量在盘中会随最新价跳动而改变STICKLINE 画出的柱子也会逐笔刷新。这属于实时计算的正常特征不是未来函数。3. 导入通达信与实测校验主副图数值对齐的方法3.1 公式管理器导入步骤打开通达信后按快捷键 CtrlF 打开公式管理器左侧分类选择“主图指标”点击“新建”按钮进入公式编辑窗口。把源码完整粘贴到编辑区公式名称建议命名为MACDZERO简称随意但不要与系统内置指标重名。右侧的“画线方法”必须选择“主图叠加”如果留默认的“副图”公式会跑到副图区域M50 均线画出来反而与价格坐标对不上。填写完成后点击“测试公式”下方输出“测试通过”即可保存。保存后回到 K 线图敲键盘输入MACDZERO回车选择“主图指标”分类下的对应项指标就会完成替换。如果主图上已经叠加了 MA、BOLL 等系统指标建议先在主图上输入 MA 并回车恢复系统均线再切换为本公式避免多组指标叠加导致画面混乱。3.2 常见报错与 STICKLINE 参数速查新手导入最容易遇到三类报错。第一类是“某个函数参数个数不合法”通常是把公式内容粘贴时把中文全角括号或分号混进了代码通达信只识别半角字符。第二类是“未定义变量”一般是因为复制时漏了某一行比如少了 DIF1 的定义。第三类是“颜色函数无效”COLORLIRED、COLORLIGREEN 这类自定义颜色函数在不同版本通达信中命名可能不同如果报此错可以把 COLORLIRED 替换为 COLORREDCOLORLIGREEN 替换为 COLORGREEN。STICKLINE 参数速查表如下方便调试时对照参数位含义本公式取值第 1 个参数绘制条件MACD0 或 MACD0第 2 个参数柱体起点M50第 3 个参数柱体终点M50MACD*3第 4 个参数柱体实体宽度0表示极细柱第 5 个参数是否空心1实心柱柱体宽度从 0 到 4 共五档宽度值越大柱子越宽。建议保持 0柱宽过大在小屏手机上会糊成一团在电脑端可将第 4 参数改为 1视觉更接近蜡烛图的伴生柱。3.3 用副图 MACD 交叉验证主图柱体指标装好后必须做一次数值对齐校验防止公式实现过程中逻辑写错但浏览器没有报错。操作方式很简单保持本主图指标显示的同时调出系统自带的 MACD 副图指标两者并行观察。因为主图用了 STICKLINE 绘制柱体且柱体锚点是 M50而不是零轴所以柱子的绝对位置和副图不一样但相对高度应该完全对应主图柱体红柱当根变长时副图红柱也变长主图柱体翻绿的当根副图 DIF 也要下穿 DEA。如果出现主图柱子与副图柱子的符号相反那么问题出在(DIF1-DEA1)*2这一行的括号上检查是否误写成了DIF1-DEA1*2后者会先算 DEA1*2 再相减导致正负关系颠倒。验证通过后建议手动滚动窗口检查最近 200 根 K 线重点关注 M50 附近的柱子是否出现“跳空”现象——STICKLINE 的起点和终点是价格坐标数值如果 M50 因为新股上市等原因出现空值柱子会画到 0 位置。出现此情况时在第 1 行 M50 定义后补一句M50:IF(M500,REF(M50,1),M50);即可修复。4. 参数化改造与周期适配让一版指标适配多周期4.1 外置参数把 12/26/9 改为可调原公式将 12、26、9 这些关键周期写死换到周线或 15 分钟线时柱子灵敏度与 K 线实体长度之间的比例会明显失衡。想要不改动代码就适配多周期最直接的办法是参数外置。在公式编辑器中先点击“参数”页签定义四个参数SHORT(1 100 12) LONG(2 250 26) MID(2 60 9) MULT(1 10 3)然后修改源码替换对应的固定数字M50:MA(C,50),COLORYELLOW,LINETHICK2; DIF1:EMA(C,SHORT)-EMA(C,LONG); DEA1:EMA(DIF1,MID); DIF:DIF1EMA(C,3),COLORWHITE; DEA:DEA1EMA(C,12),COLORYELLOW; MACD:(DIF1-DEA1)*2,NODRAW; STICKLINE(MACD0,M50,M50MACD*MULT,0,1),COLORLIRED; STICKLINE(MACD0,M50,M50MACD*MULT,0,1),COLORLIGREEN;修改后点击“测试公式”并保存。这样在 K 线图左下角或右键菜单“调整指标参数”里就可以直接改 SHORT、LONG、MID、MULT 而不用重新编辑源码。MULT 控制柱体放大倍数日线默认 3周线建议调到 1.5 到 2因为周线 MACD 数值本身更大乘 3 会顶出 K 线图范围。4.2 柱高倍数与颜色条件的调整MULT 的取值与行情标的的价格级别直接相关。茅台这种高价股MACD 柱值的绝对数大MULT2 足够单价 5 元以下的低价股MACD 柱值往往只有几角钱MULT 拉到 5 才能看出柱体。判断标准是红柱最长的几根 K 线不应超过 K 线实体的两倍高度超过则压缩 MULT反之调大。这一步骤本质是视觉归一化不影响任何买卖信号的计算结果。颜色条件的调整建议一并做掉。原公式后两条 STICKLINE 使用的颜色与前两条完全相同属于无效着色。将后两条改为STICKLINE(((MACDREF(MACD,1)) AND (MACD0)),M50,M50MACD*MULT,0,1),COLORRED; STICKLINE(((MACDREF(MACD,1)) AND (MACD0)),M50,M50MACD*MULT,0,1),COLORGREEN;这样红柱内部的动能衰竭段变成深红色绿柱内部的动能衰减段变成深绿色柱体的“强转弱”过程可以一目了然。4.3 日线、周线、分钟级的参数表不同周期下参数速查如下可直接复制到“调整指标参数”对话框周期SHORTLONGMIDMULT适用说明15 分钟61354短线快进快出M50 约等于 3 日线30/60 分钟81763.5日内波段日线122693默认参数趋势稳定性最好周线122691.8周线柱值大MULT 必须收缩月线51051.2减少滞后柱体放大 1.2 倍即可分钟线周期调整后M50 的“50”也应该按比例缩小否则在 15 分钟图上会是一条过于迟钝的线。可以将 M50 的固定周期一并参数化新增参数 NMA参数范围 10 到 120默认 50源码第一行改为M50:MA(C,NMA),COLORYELLOW,LINETHICK2;。15 分钟图填 2430 分钟图填 30日线保持 50。5. 一个顺手的小技巧用双色柱区分动能扩张与衰竭最后给出一个立即可用的增强版主图核心片段。它在原有基础上把红绿柱各自拆成深色与浅色两段深色代表动能正在扩张浅色代表动能正在衰竭。替换原公式第四行之后的全部 STICKLINE 代码即可STICKLINE(MACD0 AND MACDREF(MACD,1),M50,M50MACD*MULT,0,1),COLORRED; STICKLINE(MACD0 AND MACDREF(MACD,1),M50,M50MACD*MULT,0,1),COLORLIRED; STICKLINE(MACD0 AND MACDREF(MACD,1),M50,M50MACD*MULT,0,1),COLORGREEN; STICKLINE(MACD0 AND MACDREF(MACD,1),M50,M50MACD*MULT,0,1),COLORLIGREEN;这四条从上到下依次绘制逻辑分别是红柱变长画深红红柱变短画浅红绿柱变短画深绿绿柱变长画浅绿。由于通达信按顺序绘制后面的浅色柱会覆盖先前画的深色柱中重叠的部分最终每根 K 线上看到的就是“扩张段覆盖收缩段”的双色效果不需要引入 DRAWICON 或额外变量。用这个版本复盘时捕捉背离会简单很多股价创新高而红柱却连续三根浅红说明柱子虽然未翻绿但动能已经在衰减这是典型的高位钝化信号股价创新低而绿柱连续三根浅绿则需要警惕空头衰竭后的反转。你还可以在公式末尾追加一行DRAWICON(MACD0 AND MACDREF(MACD,1) AND REF(MACD,1)REF(MACD,2) AND MACD0-0.01,M50-1,1);它的含义是当绿柱连续两日萎缩且即将回归零轴时在 M50 下方一点的位置画一个图标用来标记“空头动能第一次明确衰减”的那个节点。这一笔不会改变原有信号只做为肉眼观察的辅助锚点配合上面四条双色柱零轴主图的周期过滤与离场提示能力会比原版完整不少。本文还有配套的精品资源点击获取
返回列表