两个指标看似看涨,也可能对应不同事件时刻。随机指标可能先交叉,MACD可能早已高于信号线,第二次新交叉也可能在观察过期后才出现。本指南用四组可复现的虚构H1历史区分这些情况,同时说明MT4原生MACD柱与“主线减信号线”柱状图的差别,以及等待确认如何改变可执行价格。
1. 为两种交叉安排不同任务
MACD衡量两个指数均价的差,随机指标衡量并平滑收盘价在近期区间内的位置。两者都变换重叠价格历史。把一致称为双重确认,并不会产生独立证据。先决定要两个新事件同时出现,还是一个发生后等待另一个。
本文研究BUY侧观察,不是完整策略。随机指标交叉可启动一个事件阶段,随后MACD主线/信号线交叉须在规定窗口内确认。上一篇EMA与随机指标指南研究同根趋势状态。状态过滤与有序事件序列是不同假设,即使图形相似。
2. 固定参数、初值和单位
使用虚构EURUSD Bid H1 OHLC。MACD采用12,26,9, PRICE_CLOSE,其中M=EMA12−EMA26,MT4原生参考为G=SMA(M,9)。各EMA以最初N个收盘价均值初始化,再用E_N(k)=[2C(k)+(N−1)E_N(k−1)]/(N+1)。M最早在k25,G在k33可用,两个事件的共同判定从k34开始。这是声明的有限初值,不是对某终端更早历史的断言。
随机指标使用Kperiod=14, Dperiod=3, slowing=3, MODE_SMA, Low/High。记录数据源、完成时刻、价格字段与实际实现。M和G为价格单位,随机指标有定义时为0至100。事件表和MACD图把M、G除以0.00010,显示EURUSD的pip单位;CSV保留价格单位。周期标签相同不证明最优或平台输出相同。
| 项目 | 参考定义 | 作用或限制 |
|---|---|---|
| MACD12 / 26 / 9 | Close、有限EMA初值、SMA9信号 | M/G事件不同于主线过零 |
| Stochastic14 / D3 / slowing3 | Low/High;K合计比;D为SMA | 新K/D事件,无20/80过滤 |
| Q_same | 同根完成K线的X与Y | 独立同时模型 |
| Q_order | X先,新Y在p+1…p+3 | 取消与过期,不复用旧事件 |
3. 区分MT4柱、信号线及两者差值
MT4原生MACD柱表示M,而非M减G。另定义差值H=M−G。M过零与H过零是不同事件:前者比较价格EMA,后者比较MACD主线与信号线。M可以为正而H为负。单根绿色正柱不能证明刚发生主线/信号线交叉。
MQL4的MODE_MAIN返回M,MODE_SIGNAL返回G。某些实现用EMA信号而非本文SMA9,或把H称为MACD柱状图。应看实际公式,而非从颜色名称推断。图中分开M、G、H;改变信号平滑会改变序列,也可能改变交叉时刻。
4. 完整定义随机指标K和D
每根完成K线定义LL(k)=min[L(k−13)…L(k)]、HH(k)=max[H_price(k−13)…H_price(k)]、A(k)=C(k)−LL(k)、B(k)=HH(k)−LL(k)。主线为k−2至k的K(k)=100ΣA/ΣB,并采用D(k)=[K(k)+K(k−1)+K(k−2)]/3。这种合计比的平滑通常不同于三个原始百分比的平均。窗口有效时K从k15、D从k17可用。
iStochastic中Low/High对应price_field=0,Close/Close是另一种输入。主线和信号模式分别选择K和D。区间合计为零则K不可用,D需要三个有效K。不能用零或旧值补缺口。本文不设20/80过滤,交叉和离开极值区域仍是不同观察。
5. 组合前先定义新的交叉事件
随机指标事件为X(k)=[K(k−1)≤D(k−1)] AND [K(k)>D(k)],MACD主线/信号事件为Y(k)=[M(k−1)≤G(k−1)] AND [M(k)>G(k)]。都需要有效当前与前值,等号仅允许在前一侧。持续K>D或M>G不会每根K线都产生新X或Y。
同时观察为Q_same(k)=X(k) AND Y(k),要求同根完成K线上两个新交叉。某指标较早交叉且仍看涨并不满足。MACD主线过零是另一实验,如现有MACD–RSI策略。相反SELL方向也需要明确定义,本文BUY观察不自动提供它。
6. 为顺序确认设置有限寿命
顺序模型仅在无活动阶段且X(p)=1 AND M(p)≤G(p)时启动。随机指标必须先动,而MACD尚未高于信号。确认窗口为p+1≤q≤p+3。新的Y必须在其中出现,且每根中间完成K线及q都持续K>D。三根仅为教学选择,不是优化结果。
若K≤D或任一必需输入不可用,先取消再考虑确认。否则检查Y,也包括p+3;没有确认则在该根评估后过期。活动期内额外X不能移动p或延长期限。确认、取消、过期都会消耗该阶段,同根不得重新启动。空闲时X/Y同时出现可满足同时模型,但因M>G已成立,顺序模型不能启动。
7. 使用完成时刻与确定的处理优先级
在当前MT4 H1序列中,shift=1为最近完成K线,shift=2为其前一根,shift=0仍形成。两组指标读取相同完成区间。计算已完成K线根数,而非经过的钟表小时。每个新可用完成时刻只评估一次,保留原始启动时刻;重连不能从当下重新给三根期限。
使用未舍入值判定,只舍入显示。教学参考用精确分数使等号确定;应从OHLC及公式重建,而非比较CSV舍入小数。真实终端另行核对。缺数据或重启状态未知后先重建事件顺序,已经看涨的显示无法补回丢失的新交叉。
8. 重建四组分开的虚构历史
每组从2026-07-06 00:00 UTC、收盘1.10000开始,采用1 pip=0.00010。首先收盘变化0×39,接着+2×20。及时组再加−3×4,+6×6,延迟组加−3×8,+5×8。逆序组在及时组后续加−1×1,+2×5。短同时组从初始收盘只使用0×39,+2×4。
每根开盘等于上一收盘,k0开盘等于自身收盘。最高比max(开盘,收盘)高1pip,最低比min(开盘,收盘)低1pip。四组分别有70,76,76,44行,共266行,是独立历史,不是连续交易。CSV包括OHLC、时刻、中间值、X/Y、两个观察标记及阶段动作。空白是不可用。虚构路径检验定义,而非实测交易结果。
9. 跟踪及时的随机指标后MACD确认
及时组在k65出现X,K=65.0000,D=59.2929且M<G。阶段从2026-07-08 17:00 UTC开始,候选完成K线为k66、k67、k68。K>D持续,新的Y在k67、2026-07-08 19:00 UTC出现,因此Q_order为1。此时X已为0,Q_same为0。
确认时K=95.4545、D=81.8182,M与G约为8.428732与7.946248pip。模型没有随机指标高位否决,添加K<80会形成另一过滤。价格、随机指标和MACD三幅图共用K线轴。标记不附带成交、止损或利润。
| 案例/K线 | K | D | M (pip) | G (pip) | X | Y | Q_same | Q_order |
|---|---|---|---|---|---|---|---|---|
| 及时 · k65 | 65.0000 | 59.2929 | 7.045487 | 8.049025 | 1 | 0 | 0 | 0 |
| 及时 · k67 | 95.4545 | 81.8182 | 8.428732 | 7.946248 | 0 | 1 | 0 | 1 |
| 延迟 · k68 | 10.6667 | 8.1794 | 2.192409 | 5.845400 | 1 | 0 | 0 | 0 |
| 延迟 · k71 | 61.5385 | 42.3077 | 3.089991 | 3.869205 | 0 | 0 | 0 | 0 |
| 延迟 · k72 | 79.7468 | 61.1977 | 3.945735 | 3.518799 | 0 | 1 | 0 | 0 |
| 逆序 · k72 | 96.6102 | 96.4761 | 12.446648 | 9.531243 | 1 | 0 | 0 | 0 |
| 同根 · k40 | 62.5000 | 54.1667 | 0.159544 | 0.017727 | 1 | 1 | 1 | 0 |
10. 让延迟确认过期,而不延长窗口
延迟组由k68、2026-07-08 20:00 UTC的X启动,可确认的完成K线为k69,k70,k71。K保持高于D,但到k71仍无Y,所以评估该根后过期。MACD看起来改善不够,必须在窗口内发生新交叉。
Y最终在k72、2026-07-09 00:00 UTC才出现,已是p后第四根。即使两指标都看涨,Q_order仍为0。k72没有新X,也就不启动新阶段。看见吸引人的迟到案例后延长窗口,是事后选择另一模型,不是修正原规则。
11. 分开逆序与同根事件
逆序组前一个阶段在k67已经确认。k72出现新X,但M从更早MACD交叉起早已高于G。启动条件失败,旧Y不能重新当成新的后续确认。此组共享及时组前缀,再增加小回调,而非把同一事件改称较晚入场。
独立同时组中,X=1 AND Y=1出现在k40、2026-07-07 16:00 UTC。Q_same为1,Q_order为0。顺序规则要求Y在p之后,而非p上。两模型没有普遍优劣,顺序与时机决定不同观察集合。混合好看的案例会隐藏实际评估的规则。
12. 区分观察窗口与订单窗口
合格MACD确认不等于可执行订单。完整策略仍需定义q后的首个评估报价、报价年龄、最大发送延迟、点差与入场距离、初始保护、退出和拒绝是否消耗机会。三根K线是观察期限,不允许在整个窗口内不断重试被拒订单。
测试前规定持仓限制、请求身份及重启处理。超时不证明拒绝,重试前应核对实际订单与成交。观察被拒、过期、请求已发、未知状态、成交要分开记录。后续有序双交叉策略会另写完整规格,不把每个标记直接视为交易。
13. 比较等待前后的BUY价格几何
独立例在Ask买入、Bid退出,固定止损1.09990与目标1.10450。较早Bid/Ask为1.10150 / 1.10162,较晚1.10210 / 1.10222。毛止损距离17.2与23.2 pips。加往返佣金0.8 pip及总不利执行预留1.0 pip,计划损失为19.0与25.0 pips,净目标距离27.0与21.0 pips,比率约1.4211与0.8400。
假设净值10000 USD、预算0.6%=60 USD、标准合约100000 EUR、每手pip价值10 USD、手数步长0.01。向下取整后较早0.31 lots、风险58.90 USD;较晚0.24 lots、60.00 USD。报价独立于四组OHLC,亦非成交。确认可减少对事件的疑问,却不一定改善剩余价格空间。
| 报价 | Bid / Ask | 止损 (pip) | 损失+成本 | 净目标 | 比率 | 手数 | 风险 USD |
|---|---|---|---|---|---|---|---|
| 较早 | 1.10150 / 1.10162 | 17.2 | 19.0 | 27.0 | 1.4211 | 0.31 | 58.90 |
| 较晚 | 1.10210 / 1.10222 | 23.2 | 25.0 | 21.0 | 0.8400 | 0.24 | 60.00 |
14. 明确报价侧、货币换算和执行不确定性
Ask入场对Bid退出已经包含报价侧点差作用,不要再加一次。两例点差均为1.2 pips。假设五位小数EURUSD的point和tick为0.00001,1pip等于10point。实际tick大小、账户币种tick价值、合约和手数步长应从品种取得,小数位数不足以确定。
费用预留只是计划,不是损失上限。跳空、滑点、隔夜费或保护未附成功都能改变结果。检查经纪商止损距离、价格网格、敞口和可用保证金,手数下取整,低于最小则跳过。账户币种不同需用合适当前值换算。合格观察不保证成交获接收或实际风险有界。
15. 不搬动旧信号,比较三个模型
记录同一X候选日历,将仅X基线、Q_same与顺序规则分开比较。固定数据及完整执行、退出、费用、风险政策,同时使用各自真实决策时刻和首个有效报价。顺序确认本来就改变入场时间,不能把成交倒填到p,也不能假设旧报价仍可用。
包括所有拒绝启动、取消、过期、错过盈利机会和执行失败。预留后续数据,保留试过的全部平滑和窗口。检查净期望、回撤、样本不确定性、换手、费用敏感度,而非只看胜率或图形整齐。虚构观察验证时间和计算,不验证盈利;过滤可能剔除赢单、亏单或两者。
16. 写策略前核对完整规格
注明数据源、H1完成时钟、EMA初值、原生SMA9信号、随机指标K/D/slowing与价格字段。区分M与M−G、主线过零与主线/信号事件。说明等号、启动、期限、取消优先级、单一阶段及缺失处理。其他读者应不靠事后选图也能重现标记。
这是新三组指标专题的第二篇。接着研究Parabolic SAR与ADX,之后单独编写三种完整策略。相关EMA、MACD–RSI、成本、仓位规模与回测指南帮助补齐研究设计。两个指标可把规则讲清楚,一致本身不能确立交易优势。
常见问题
MACD柱状图高于零就是新信号交叉吗?
不一定。MT4原生柱表示M,M−G过零才对应主线穿越信号线,M过零是另一事件。应检查实际实现。
MT4原生MACD使用EMA信号线吗?
官方12/26/9参考采用九个主线值的简单平均。其他平台或自定义指标可能不同,周期标签相同不保证数值和事件时刻相同。
顺序模型要求随机指标低于20吗?
不要求。需要新K/D上穿及指定顺序,不要求先超卖。及时确认时K已高于80。加区域要求就是另一规则。
MACD可以在第三根确认吗?
可以。窗口包含p+1到p+3。先检查取消,再检查新Y;只有未确认才在p+3后过期。p+4已太晚。
为什么不用更早的MACD交叉?
顺序模型要求随机指标先发生,再出现新的MACD事件。已经看涨的状态不是新交叉。同时与逆序模型需要单独定义。
两个新交叉能证明策略盈利吗?
不能。它们只定义观察。还需可执行入口、保护、退出、费用、仓位、组合限制及后续数据评估。四组历史没有实测收益。
来源与教学说明
MetaQuotes官方资料说明接口与参考计算。有限EMA初值、四组虚构OHLC历史、顺序模型及独立BUY报价比较是本文的教学规格。参考判定使用精确分数,CSV小数为显示近似,可从OHLC重建标记。不声称与实际终端完全一致,不描述商业EA行为,也不提供历史实测收益。
- MetaTrader 4 Help: MACD calculation
- MQL4 Reference: iMACD
- MQL4 Reference: iStochastic
- MetaQuotes: Stochastic Oscillator reference
教育内容。历史、计算与BUY报价均虚构。外汇有风险。指标一致、计划保护和费用预留不保证盈利或限制实际亏损。