|
这是一个基于特定交易策略设计的自动化交易EA。它通过多空双开建立初始仓位,随后根据市场波动动态管理订单: 亏损单达到设定点数时止损; 浮盈单达到设定点数时锁仓(开反向单); 锁仓后若行情继续朝有利方向运行,则逆势翻倍加仓; 监控所有持仓的总浮盈,当从峰值回撤一定百分比时全部平仓离场; 加仓订单自身浮盈达到点数也会触发锁仓,并可能引发新一轮加仓。 此外,EA提供了五个手动按钮,方便用户随时平仓或手动加仓。 部分源码截图:
1. 初始开仓 EA启动时,若无任何持仓(根据订单注释判断),则立即同时开立一笔多单和一笔空单,手数由参数 InitialLot 决定。 多单和空单的魔法号不同(MagicBase 和 MagicBase+1),注释分别标记为 _INIT_BUY 和 _INIT_SELL。 2. 亏损单止损 对每一笔持仓(包括初始单和后续加仓单),实时监控其浮动盈亏点数。 若亏损点数 ≥ LossStopPoints,则立即平仓该订单。 该机制用于限制单笔订单的最大亏损。 3. 浮盈单锁仓 当某一持仓的浮盈点数 ≥ ProfitLockPoints 时,EA会检查是否存在针对该订单的反向锁仓单(通过注释识别,锁仓单注释为 _LOCK)。 若无锁仓单,则立即开立反向订单,手数与当前浮盈单相同,实现锁仓。 锁仓成功后,EA会记录锁仓时的价格(LastLockPriceBuy 或 LastLockPriceSell),用于后续加仓判断。 4. 锁仓后行情有利运行触发逆势加仓 锁仓后,若价格继续向对原订单有利的方向运行超过 AddTriggerPoints 点数,则触发逆势加仓。 例如:原多单锁仓后价格上涨(对多单有利),则加仓空单;原空单锁仓后价格下跌,则加仓多单。 加仓手数计算规则: 首次加仓:InitialLot * AddMultiplyFactor 后续加仓:上一笔加仓手数 × AddMultiplyFactor 加仓层数上限由 MaxLevel 控制,防止无限加仓。 加仓订单的注释包含 _ADD_ 和层级信息(如 _ADD_SELL_L1)。 5. 总浮盈峰值回撤离场 EA持续计算所有持仓的总浮动盈亏(含库存费、佣金)。 记录历史最高总浮盈值(PeakEquity)。 当当前总浮盈从峰值回撤的幅度 ≥ PeakDrawdownPercent 时,立即平仓所有订单,并重置相关变量。 该机制用于保护已获得的利润,防止大幅回吐。 6. 加仓订单自身浮盈锁仓 对于每一笔加仓订单(注释包含 _ADD_),当其自身浮盈点数 ≥ AddOrderLockPoints 时,EA会为该订单单独开立反向锁仓单(手数相同)。 锁仓单注释为原加仓订单注释后加 _LOCK。 锁仓后同样记录锁仓价格,可能触发下一轮加仓循环。 手动按钮功能 在图表左上角显示五个按钮,点击即可执行对应操作: 多空全平:平掉所有本EA的持仓(多单和空单)。 平多单:仅平掉所有多单。 平空单:仅平掉所有空单。 手动加多:按当前加仓层级的下一个手数开一笔多单(手数计算方式同自动加仓)。 手动加空:按当前加仓层级的下一个手数开一笔空单。 手动加仓也会增加 CurrentLevel 计数,影响后续自动加仓手数计算。 |
EA发布区
