MT5 里有两样东西都能“自动干活”:脚本(Script)和 EA。名字像,用途完全不同,很多新手混着用,结果要么脚本挂错了地方,要么 EA 干不了脚本的活。这篇用一张对比讲清区别,再告诉你什么时候用哪个。

脚本:干完就走的一次性工具
脚本的特点是一次性执行:挂到图表上,立刻运行一遍,然后结束。典型用途:批量平掉所有持仓、批量删除图表上的画线、计算账户净值并输出报告。它适合“做一件事”的场景,不需要常驻,用完就退,不占资源。
EA:常驻的自动化管家
EA 的特点是一直挂在图表上,每个报价到来时执行一次,持续监控行情。典型用途:按策略自动开仓平仓、移动止损、管理多笔持仓。它适合“持续盯盘”的场景,只要图表不关、MT5 不退出,它就一直工作。
一张表看懂区别
| 对比项 | 脚本 | EA |
|---|---|---|
| 执行方式 | 一次执行完就结束 | 常驻,每个报价触发 |
| 典型用途 | 批量平仓、清理画线、计算统计 | 自动交易、止损管理、策略监控 |
| 占用资源 | 极低,执行完即释放 | 持续占用 |
| 适用场景 | 临时操作、一次性任务 | 长期运行的策略 |
什么时候用脚本,什么时候用 EA
判断标准很简单:这件事是“做一次”还是“一直做”。想一键平掉所有持仓,用脚本;想每天按条件自动进出场,用 EA。想在特定时间点执行一次任务(比如周五收盘前批量平仓),用脚本加定时器,比用 EA 更省资源。想把脚本写成定时循环,其实就是在往 EA 的方向走了,不如直接用 EA。
开发难度和上手路径
脚本和 EA 都用 MQL5 编写,语法相同,脚本通常更短,适合入门练习。想从零开始学,先写一个“批量平仓”脚本练手,再写一个简单的移动止损 EA,两样都跑通了,MQL5 的大门基本就打开了。开发环境搭建可以看MQL5开发环境搭建,更多内容在MT5高阶进阶专区栏目。