EA-47846 · 辅助工具

Connect_Disconnect_Sound_Alert

该EA监控终端与交易服务器的连接状态,在连接建立或断开时触发声音警报。它记录连接/断开的时间戳,但所有声音播放逻辑已被注释掉,目前作为警报系统并不起作用。

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

基本信息

风险安全
评分★☆☆☆☆
类型辅助工具
周期—
指标—
作者Rajesh Kumar Nait

回测结果(H1,约 1 年)

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

策略分析

该EA并非交易策略,而是一个连接状态监控工具。其核心概念是通过轮询CTerminalInfo.IsConnected()方法来检测终端与服务器的连接状态变化。入场条件不适用,因为该EA不进行任何交易操作。出场条件同样不适用。仓位管理和资金管理均不存在。该EA的策略逻辑是在OnInit()函数中使用while循环以1秒间隔持续轮询连接状态,当检测到状态变化时记录时间戳并(原本应)播放对应声音文件。然而,所有PlaySound()调用均被注释掉,导致实际上没有任何警报功能生效。此外,将阻塞式while循环放在OnInit()中是一个严重的设计缺陷,因为这会阻止EA正常初始化完成。

优势

  • 概念简单实用,连接监控对交易者有实际价值
  • 使用CTerminalInfo封装类访问连接状态,符合面向对象设计
  • 记录连接和断开时间戳,便于事后排查问题

劣势

  • 所有PlaySound()调用被注释掉,核心警报功能完全不工作
  • 在OnInit()中放置阻塞式while循环是严重的架构错误,阻止EA正常初始化
  • OnTick()、OnDeinit()等必要回调函数完全缺失
  • 声音文件资源声明也被注释掉,即使取消注释PlaySound也无法工作
  • Sleep(1000)在OnInit中循环占用线程,可能导致终端卡顿

改进建议

  • 将连接监控逻辑从OnInit()移至OnTick()或使用定时器事件(OnTimer()),避免阻塞初始化过程
  • 取消注释并修复声音播放逻辑,同时正确声明资源文件或使用终端内置声音

风险评估

总体风险: 安全

  • 该EA不进行任何交易操作,无资金风险
  • 阻塞式OnInit循环可能导致终端响应迟缓,间接影响其他EA运行

评估得分

代码质量1.0
策略逻辑1.0
风险管理5.0
稳健性1.0
创新性1.0
文档1.0
综合1.7

参数

参数默认值说明
firsttrue首次运行标志,用于跳过首次状态变化的声音警报
Now_IsConnectedfalse当前连接状态布尔值
Pre_IsConnectedtrue上一次连接状态布尔值
Connect_Start0连接开始时间戳
Connect_Stop0连接断开时间戳

同类 EA:辅助工具

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

订阅每周 Arena 周报

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