al()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderType() == OP_BUY) { OrderClose(OrderTicket(), OrderLots(), Bid, 3, Red); } } } } //+------------------------------------------------------------------+ //| 统计当前订单数量 | //+------------------------------------------------------------------+ int CountOrders() { int count = 0; for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol()) { count++; } } } return count; } //+------------------------------------------------------------------+ //| 判断是否是新K线 | //+------------------------------------------------------------------+ bool IsNewBar() { static datetime lastBarTime = 0; datetime currentBarTime = Time[0]; if(lastBarTime != currentBarTime) { lastBarTime = currentBarTime; return true; } return false; } 这个EA交易策略基于ZigZag指标和布林带指标设计,主要逻辑是: 1. 当ZigZag指标从布林带下轨下方反弹至上轨上方时开立买单 2. 当ZigZag指标触及布林带上轨时平仓 3. 使用固定点数止损 代码结构清晰,包含必要的功能模块: - 初始化指标句柄 - 检测新K线 - 查找ZigZag转折点 - 开仓和平仓逻辑 - 订单管理功能 潜在改进建议: 1. 增加止盈策略 2. 添加卖出信号逻辑 3. 考虑加入资金管理规则 4. 增加交易时间过滤 5. 添加错误处理和日志记录 该EA适合在趋势行情中使用,在震荡行情中可能会频繁交易。建议在实盘前进行充分测试,调整参数以适应不同市场条件。 [2025-04-23 10:57:55 | AI问答 | 446点数解答]