首页 / 交易学院 / MQL5 中艾略特波浪的自动分析:从 ZigZag 到波浪标记
MQL5 中艾略特波浪的自动分析:从 ZigZag 到波浪标记
🌊

MQL5 中艾略特波浪的自动分析:从 ZigZag 到波浪标记

技术分析基础 难度 · 高阶 2013 14 分钟阅读
艾略特波浪ZigZag自动分析MQL5形态识别

艾略特波浪理论回顾

艾略特认为市场价格受群体心理驱动,呈推动波(5 浪)与调整波(3 或 5 浪)循环。推动波有铁律:第二浪终点不破第一浪起点、第三浪不是最短、第四浪不进入第一浪价格区间。

TZigzag:先把价格变成拐点序列

自动分析的第一步是用 ZigZag 把连续价格压缩成有意义的转折点(峰值/谷值)。ZigZag() 计算拐点,FillZigzagArray() 填充数组,FindPoints() 扫描并识别候选极值点。

class TZigzag
  {
public:
   int Zigzag(double &arr[], double depth, double dev, double back);
   void FillZigzagArray(double &src[], double &zz[]);
private:
   bool FindPoints(double &src[], int &idx[]);
   void NotStartedAndNotFinishedWaves(...);
  };

TNode:递归表示波浪层级

TNode 与 TNodeInfo 描述每个波浪节点的层级(大浪/子浪)、方向(推动/调整)与极值。通过树的递归遍历,可以按规则逐层校验波浪结构是否自洽。

用规则过滤非法波浪

第三浪不是最短、第二浪不破第一浪起点等规则,直接作为布尔校验写进递归逻辑。凡不满足规则的候选结构直接丢弃,只保留符合经典约束的波浪划分。

⚠ 自动波浪≠交易圣杯
波浪划分本身存在多解性,自动标记只能提供“符合规则的一种解”。务必把它作为形态背景,而非独立入场信号。

把波浪输出到图表与面板

标记结果通过 TLabel 画在图表上,并可汇总到多行文本显示组件(MultiRowText),让交易者在多品种扫描时一眼看到当前波浪位置。

小结

自动波浪分析 = ZigZag 拐点 + 递归节点 + 规则校验。它把主观形态变成可量化、可回测的对象,是形态识别类策略的可靠底座。

常见问题

它只给出“符合经典规则的一种划分”,波浪本身有多解性。应作为形态背景,而非独立入场信号。
ZigZag 把连续价格压缩成有意义的拐点序列,是后续递归校验推动波/调整波规则的数据基础。
是。第二浪不破起点、第三浪非最短等铁律要写成布尔校验,递归遍历时丢弃非法结构。