以下是使用 MQL4 实现上述逻辑的示例代码: ```cpp #include <Indicators\ZigZag.mqh> #include <Indicators\MACD.mqh> extern double StopLoss = 100; // 固定止损 100 点 extern double Volume = 0.01; // 固定交易量 0.01 手 void OnTick() { double zigzag, lowerBand, upperBand, macd; ZigZagBuffer(0, 0, &zigzag); Bollinger Bands(0, PERIOD_CURRENT, 20, 2, 0, &lowerBand, &upperBand); MACDBuffer(0, 0, 12, 26, 9, &macd); if (zigzag < lowerBand && macd >= -10 && macd <= 5) { OrderSend(Symbol(), OP_BUY, Volume, Ask, 3, Ask - StopLoss * Point, "MyOrder"); } if (zigzag > upperBand && macd >= 20) { OrderClose(Symbol(), OrderTicket(), Volume, Bid, 3); } } ``` ```cpp // 引入 ZigZag 指标和 MACD 指标的头文件 // 定义固定止损和固定交易量的外部变量 // OnTick 函数在每次价格变动时执行 // 获取 ZigZag 指标值、布林带上下轨值和 MACD 值 // 判断开仓条件,如果满足则开买单 // 判断平仓条件,如果满足则平仓 ``` [2025-04-22 16:21:10 | AI问答 | 370点数解答]