比尔·威廉姆斯混沌交易法:鳄鱼、分形与 AO/AC 实战
把《证券交易新空间》的五维信号拆成可代码化的规则——一套经典混沌 EA 的完整实现思路。
一、混沌理论在交易里是什么
比尔·威廉姆斯(Bill Williams)把混沌理论引入交易:他认为市场是非线性的、分形的、由不同时间尺度上的「浪」叠加而成,无法用简单线性模型预测,但可以用「分形」「动量」等结构识别当前所处的阶段。混沌不是混乱,而是「有序中的复杂」,EA 的任务是识别这些结构而非预测点位。
这意味着混沌类 EA 通常不是「到了 X 就买」,而是「当前结构是否支持做多」的概率判断。它接受不确定性,用多层确认降低误判,而不是追求精确入场。
二、核心工具:分形(Fractal)
分形是 BW 体系的基石:一个由五根 K 线组成的高点(中间最高)或低点(中间最低)形态,标记局部极值。分形突破(价格越过最近的分形)常作为趋势启动的信号。EA 里用 iFractals 取句柄、CopyBuffer 取上下分形线。
int fr = iFractals(_Symbol, _Period); double up[2], dn[2]; CopyBuffer(fr, 1, 1, 2, up); // 上分形 CopyBuffer(fr, 0, 1, 2, dn); // 下分形 bool upFractal = (up[1] != EMPTY_VALUE);
三、鳄鱼(Alligator)
鳄鱼由三条平移的移动平均组成(蓝/红/绿,分别对应不同周期的平滑线),代表不同时间尺度的「均衡价」。三线张口向上 = 觉醒(趋势启动),三线缠绕 = 睡眠(震荡无趋势)。EA 通常用鳄鱼方向过滤分形信号,只在「嘴张开」时顺趋势交易。
鳄鱼的设计哲学很妙:它不预测,只描述「现在是有趋势还是没趋势」。对趋势跟随型 EA 来说,这比任何指标都重要——因为它直接告诉你要不要动手。
四、动量震荡(AO / AC)
AO(Awesome Oscillator)= 快慢移动均线之差,衡量动量方向;AC(Acceleration)是 AO 的变化加速度,提前预警动量转折。BW 用「AO 在零轴上下、AC 与 AO 的背离」等组合确认入场时机。EA 里用 iAO / iAC 取数据,再用其穿越/背离写条件。
五、把混沌信号写成 EA 逻辑
一个典型 BW EA:用鳄鱼方向定趋势过滤;等价格突破最近分形;再用 AO/AC 的动量确认;三者同向才入场。出场常用「反向分形」或「鳄鱼收口」。这种多层确认牺牲了部分交易机会,换来更高的每笔质量。
六、常见实现坑
- 分形要在第 3 根才确认,不能用未收盘 K 线(未来函数)
- 鳄鱼线平移导致信号相对滞后,需接受
- AO/AC 参数要与鳄鱼周期配套,别乱改
- 震荡市里分形频繁假突破,必须靠鳄鱼睡眠过滤
七、混沌 EA 的适用与局限
混沌 EA 在趋势市里表现好,在长震荡市里会连续小亏(分形假突破)。所以它本质仍是趋势跟随,需要对「无趋势时段」有应对(如暂停或收窄)。理解这点,你才不会在震荡期误以为 EA 坏了。
八、混沌三件套的参数联动
BW 的分形、鳄鱼、动量周期是联动的:鳄鱼三线通常用 5/8/13(斐波那契平滑),AO 用 5 与 34 之差,AC 在 AO 上再平滑 5。改其中一个要让其他协调,否则结构失衡、信号失真。EA 里建议把这些做成 input 参数,在测试器里联调而非硬编码——你会发现三者周期一乱,整个系统的「节奏」就错了。
九、混沌参数的敏感性
分形周期、鳄鱼平滑、AO 参数对结果都敏感,改一个常需重调其他。建议在测试器里用『一次只动一个参数』的方式做敏感性扫描,看清每个参数对盈亏的贡献边界,避免同时改多个导致找不到因果。理解敏感度,你才不会把参数调到『刚好这段历史最优』的脆弱点。
十、混沌的边界
混沌体系的精髓,是用结构描述市场而非预测点位;守住这条,EA 才不会沦为凭感觉乱做的借口。它提高的是每笔质量,不是抓波准确率。