【MultiLockEA(多策略锁仓加仓EA)源码分享,】需要的朋友自行下载
这是一个基于特定交易策略设计的自动化交易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 计数,影响后续自动加仓手数计算。 |
|
|
|
|
|
|
|
DDD