EA-43837 · 辅助工具
ShowHistoryOnChart-V1.1
该EA从CSV文件中读取交易历史记录,并在图表上用彩色箭头标示买入/卖出的开仓和平仓点位,以虚线趋势线连接。它本身不执行任何交易,纯粹是一个用于回顾过去交易活动的可视化工具。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
该EA并非交易策略程序,而是一个交易历史可视化工具。它在OnInit()初始化阶段从MQL5/Files目录下读取用户指定的CSV文件,解析每笔交易的开仓时间、方向、手数、品种、开仓价、平仓时间、平仓价、佣金、掉期和利润等字段。对于买入交易,使用蓝色箭头和趋势线标记;对于卖出交易,使用红色箭头和趋势线标记。开仓点用买入/卖出箭头对象标示,平仓点用反向箭头标示,两者之间用虚线趋势线连接,直观展示每笔交易的入场和出场轨迹。仓位管理和资金管理方面完全不涉及,因为该工具不进行任何交易操作。
优势
- 直观可视化交易历史,便于复盘分析交易表现
- 用颜色区分多空方向,箭头和趋势线组合展示入场出场,信息清晰
- 实现简单轻量,不占用运行时资源(仅在初始化时执行一次)
劣势
- 全局变量clr、objectArrowOpen等未在函数内声明,多实例或重复初始化时存在状态冲突风险
- CSV解析脆弱:StringSubstr截取价格硬编码为7字符,对不同价格精度品种会导致价格错误
- FileReadString(handle,4)读取4个字段跳过列的方式不可靠,如果CSV格式略有变化就会解析错位
- 无错误处理:文件不存在或格式错误时无用户提示,仅静默失败
- OnDeinit删除所有对象过于激进,会清除图表上其他EA或手动添加的对象
改进建议
- 将全局变量改为函数内局部变量,并在对象命名中加入品种前缀以避免冲突
- 使用完整的字符串转Double方式替代StringSubstr硬编码截取,并增加CSV文件格式校验和错误提示
- OnDeinit中仅删除本EA创建的对象,使用统一前缀标记而非删除全部对象
风险评估
总体风险: 安全
- ObjectsDeleteAll会清除图表上所有对象,包括其他指标或手动添加的绘图,造成意外数据丢失
- 全局变量状态在重复初始化时可能产生竞态条件,但在非交易工具中影响有限
评估得分
代码质量2.0
策略逻辑1.0
风险管理5.0
稳健性1.0
创新性2.0
文档1.0
综合2.0
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
fileName | "" | CSV文件名(需放置在MQL5/Files目录下,以分号为分隔符) |
同类 EA:辅助工具
回测是历史模拟,不代表未来收益,不构成投资建议。