EA-57676 · 辅助工具

WithdrawalTracker

WithdrawalTracker是一个工具型EA,通过监控账户余额变化来检测外部提现操作。当检测到提现时,它会自动更新存储的初始保证金全局变量,以便其他EA使用新的账户余额。

打开交互版(权益曲线、切换品种)

基本信息

风险安全
评分★★☆☆☆
类型辅助工具
周期M1, M5, M15, M30, H1, H4, D1, W1, MN
指标None
作者Wamek EA-2025

回测结果(H1,约 1 年)

暂未回测:这个 EA 还没能自动转换。

策略分析

该EA并非交易策略,而是一个账户监控工具。它通过5秒定时器持续追踪账户余额变化,核心逻辑是比较当前余额与预期余额的差异来判断是否发生提现。入场条件不适用,因为它不执行任何交易操作。出场条件同样不适用。仓位管理不涉及,EA不进行任何开仓或平仓。资金管理方面,它通过MT5全局变量存储初始保证金值,并在检测到提现后自动重置该值为当前余额,使得依赖该全局变量的其他EA能正确计算利润。检测逻辑依赖比较实际余额与预期余额(上次余额+交易利润)的差值,差值为负则判定为提现。

优势

  • 自动检测账户提现并更新初始保证金值,减少手动维护工作
  • 使用MT5全局变量存储数据,EA重启后数据不丢失
  • 通过比较交易利润与余额变化来区分正常交易盈亏和外部提现,逻辑合理

劣势

  • 条件判断语句存在逻辑错误:if(!NormalizeDouble(...) != NormalizeDouble(...))运算符优先级错误,!先作用于第一个值而非整组比较
  • 仅检测提现(负变化),不处理存款(正变化)情况,功能不完整
  • 5秒轮询频率可能在高频交易环境下错过中间状态变化,且消耗不必要的资源

改进建议

  • 修复运算符优先级错误,应改为if(NormalizeDouble(currentBalance,2) != NormalizeDouble(LastBalanceChecked,2))
  • 增加对存款(正向非交易余额变化)的检测和处理逻辑
  • 使用OnTradeTransaction事件驱动替代定时器轮询,提高响应效率并减少资源消耗

风险评估

总体风险: 安全

  • 运算符优先级错误导致余额变化检测逻辑可能异常,!操作符先作用于NormalizeDouble返回值而非整体比较表达式
  • 全局变量名基于账户登录ID但未考虑多EA实例在同一账户运行的命名冲突

评估得分

代码质量2.0
策略逻辑3.0
风险管理4.0
稳健性2.0
创新性2.0
文档1.0
综合2.3

参数

参数默认值说明
EventSetTimer interval5定时器间隔(秒),控制余额检查频率
MyInitialDeposit动态生成全局变量名,格式为myDeposit_+账户登录ID
LastBalanceChecked0上次检查时的账户余额
lastDealId0上次检查时最后一笔交易的ID

同类 EA:辅助工具

回测是历史模拟,不代表未来收益,不构成投资建议。

订阅每周 Arena 周报

每周一封邮件:排名变化、新信号和新研究。不发垃圾邮件,随时可以退订。