EA-49615 · 辅助工具

Get_Last_Nth_Close_Trade

该EA扫描账户历史中的所有已平仓交易,可按交易品种和魔术号进行过滤,按平仓时间排序后在图表上显示第N笔最近已平仓交易的详细信息。它是一个只读工具,不执行任何开仓或仓位管理操作。

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

基本信息

风险安全
评分★★☆☆☆
类型辅助工具
周期M1, M5, M15, H1, H4, D1
指标None
作者https://tradingbotmaker.com/

回测结果(H1,约 1 年)

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

策略分析

该EA并非交易策略,而是一个历史交易查询工具。它通过遍历MT5的HistoryDeals来获取已平仓交易信息,使用DEAL_ENTRY_OUT筛选出场交易,使用DEAL_ENTRY_IN匹配对应的开仓价格和开仓时间。支持通过ENABLE_SYMBOL_FILTER和ENABLE_MAGIC_NUMBER两个布尔开关进行交易品种和魔术号过滤。排序采用冒泡排序按平仓时间降序排列,然后根据用户指定的TRADE_INDEX索引提取对应的交易详情。仓位管理和资金管理均不涉及,因为该EA纯粹是信息展示工具。整体逻辑清晰但存在性能隐患,如每次Tick都重复扫描全部历史记录且使用O(n²)排序算法。

优势

  • 支持按交易品种和魔术号灵活过滤,适配多策略场景
  • 结构体设计合理,完整记录了已平仓交易的关键信息包括开仓价、平仓价、止损、止盈、盈亏等
  • 通过DEAL_ENTRY_IN反向匹配开仓信息,确保获取完整的开仓价和开仓时间数据

劣势

  • 每Tick都执行完整历史扫描和排序,在交易历史较多时会造成严重性能问题
  • 使用冒泡排序O(n²)算法,对大量历史交易效率极低
  • 全局结构体orderHistoryDetails仅保存单条记录,无法同时保留多条查询结果,且OnTick中无条件执行查询缺乏节流控制
  • 第二次遍历历史记录匹配开仓信息时缺少break优化,找到匹配后仍继续遍历剩余记录

改进建议

  • 添加新Bar检测或定时器机制,避免每Tick重复计算,大幅提升性能
  • 将冒泡排序替换为标准库排序或将历史记录按时间倒序直接利用HistorySelect的有序性避免排序
  • 第二次遍历匹配开仓信息时,为每个position_ticket找到匹配后立即break跳出内循环以减少不必要的迭代

风险评估

总体风险: 安全

  • 该EA为只读工具,不执行任何交易操作,无资金风险
  • 频繁的历史扫描在高交易量账户上可能导致终端卡顿或CPU占用过高

评估得分

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

参数

参数默认值说明
ENABLE_MAGIC_NUMBERfalse是否启用魔术号过滤
ENABLE_SYMBOL_FILTERfalse是否启用交易品种过滤
MAGICNUMBER1234用于过滤的魔术号
TRADE_INDEX2要查询的已平仓交易索引(从最新开始)

同类 EA:辅助工具

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

订阅每周 Arena 周报

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