news 2026/8/1 14:02:37

MQL5零基础入门:用ChatGPT帮你写第一个黄金EA(附完整代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MQL5零基础入门:用ChatGPT帮你写第一个黄金EA(附完整代码)

最近帮很多朋友做EA测评,发现很多人想学EA编程但卡在第一步——不会英文、看不懂代码。

今天这篇就是给零基础的人写的。我会把每一行代码的意思都翻译成中文,看完你就能写出自己的第一个EA。


第一步:打开MT5的代码编辑器

打开你的MT5 → 左上角「工具」→「MetaQuotes语言编辑器」(或者直接按F4)

进去后点「新建」→「EA交易」→ 下一步 → 起个名字比如 MyFirstEA → 完成。

你会看到一个自动生成的代码模板。


第二步:看懂模板代码

//+------------------------------------------------------------------+ //| MyFirstEA.mq5 | //| Copyright 2026, 郭教授 | //| https://eaceping.com |

前四行是注释,//开头的都是注释,电脑不会执行,写给人看的。


#property copyright "Copyright 2026, 郭教授" #property link "https://eaceping.com" #property version "1.00"

这三行定义了EA的属性:

  • copyright— 版权信息
  • link— 你的网站链接
  • version— EA版本号

int OnInit() { return(INIT_SUCCEEDED); }

OnInit()是EA加载时运行的函数。int表示返回一个整数。return(INIT_SUCCEEDED)告诉MT5「加载成功」。


void OnDeinit(const int reason) { }

OnDeinit是EA被移除时运行的函数。void表示不返回任何值。运行时什么也不做(空函数体{})。


void OnTick() { // 这里是核心!每次价格变动都执行 }

OnTick()是EA的心脏——只要价格跳动一次,这个函数里的代码就执行一次。所有交易逻辑都写在这里。


第三步:写第一个策略——金叉买入,死叉卖出

void OnTick() { // 1. 获取当前K线的收盘价 double close1 = iClose(_Symbol, PERIOD_M1, 1); // 前一根K线 double close2 = iClose(_Symbol, PERIOD_M1, 2); // 前两根K线 // 2. 计算两根K线的简单移动平均线(MA) double ma1 = iMA(_Symbol, PERIOD_M1, 10, 0, MODE_SMA, PRICE_CLOSE); double ma2 = iMA(_Symbol, PERIOD_M1, 10, 0, MODE_SMA, PRICE_CLOSE); // 3. 金叉:前一根在MA下方,当前在MA上方 → 做多 if(close1 < ma1 && close2 > ma2) { // 下单:做多 XAUUSD 0.01手 MqlTradeRequest request = {}; // 创建交易请求 MqlTradeResult result = {}; // 接收交易结果 request.action = TRADE_ACTION_DEAL; // 立即成交 request.symbol = _Symbol; // 当前品种 request.volume = 0.01; // 0.01手 request.type = ORDER_TYPE_BUY; // 做多 request.sl = 0; // 止损(暂不设) request.tp = 0; // 止盈(暂不设) request.deviation= 10; // 允许10点滑点 OrderSend(request, result); // 发送订单 } }

第四步:代码逐行翻译

代码中文意思
double close1声明一个小数变量叫 close1
iClose(_Symbol, PERIOD_M1, 1)获取当前品种M1周期第1根前K线的收盘价
iMA(...)计算移动平均线(10周期,简单方式,用收盘价)
if(close1 < ma1 && ...)如果满足条件(金叉),大括号里的代码执行
MqlTradeRequest结构体,用来装交易指令
request.action = TRADE_ACTION_DEAL告诉MT5"马上成交"
request.type = ORDER_TYPE_BUY订单类型=做多
request.volume = 0.01交易手数=0.01
OrderSend(request, result)发送订单!

第五步:编译运行

按F7编译(就是检查代码有没有写错)。如果下面日志显示 "0 errors, 0 warnings",恭喜!

把EA拖到XAUUSD图表上,等K线出金叉就会自动下单。


常见问题

Q:为什么我的EA不交易?
A:检查是否启用了「算法交易」——MT5右上角那个小按钮要点亮。

Q:可以改手数和品种吗?
A:可以,改request.volumerequest.symbol的值就行。

Q:还想学更多怎么办?
A : 我在 https://eaceping.com 上持续更新EA编程教程,从零基础到能写完整策略都有。还有现成的EA可以看源码学习。


总结

从零到写出能自动交易的EA,你只需要:

  1. 会用 F4 打开编辑器
  2. 会复制代码
  3. 会按 F7 编译

就这么简单。难的从来不是编程,是迈出第一步。


作者:郭教授 - eaceping.com EA测评与编程教学

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 13:59:29

Chaos Blade终极实战指南:5分钟掌握云原生混沌工程注入技术

Chaos Blade终极实战指南&#xff1a;5分钟掌握云原生混沌工程注入技术 【免费下载链接】chaosblade An easy to use and powerful chaos engineering experiment toolkit.&#xff08;阿里巴巴开源的一款简单易用、功能强大的混沌实验注入工具&#xff09; 项目地址: https:…

作者头像 李华
网站建设 2026/8/1 13:59:05

基于STM32与PID算法的智能巡线小车全流程开发指南

1. 项目概述&#xff1a;从零打造一台会“思考”的巡线小车几年前&#xff0c;我第一次接触智能小车项目时&#xff0c;被它那种“简单硬件组合出复杂行为”的魅力深深吸引。一台能自主沿着黑线行走的小车&#xff0c;看似是电子爱好者入门的经典课题&#xff0c;实则是一个微缩…

作者头像 李华
网站建设 2026/8/1 13:56:38

7英寸电容触摸屏模块(7EP-CAPLCD)硬件设计与Linux驱动开发全解析

1. 项目概述&#xff1a;从一串神秘代码到电容式触摸屏的深度解析最近在几个硬件开发社区和供应链群里&#xff0c;频繁看到“7EP-CAPLCD”这个代号在流传。乍一看&#xff0c;它像是一串随机的产品料号&#xff0c;但对于我们这些常年泡在显示和交互模块一线的工程师来说&…

作者头像 李华
网站建设 2026/8/1 13:50:44

包装线二维码核验方案技术架构解析:高速解码与智能防混料实现原理

在电子、汽配、医药、食品、日化等规模化制造场景中&#xff0c;包装工序条码错印、漏码、重复码、批次混料问题&#xff0c;是制约产线质控标准化的核心痛点。传统人工抽检模式受主观因素、疲劳作业影响&#xff0c;漏检、误检率居高不下&#xff0c;极易引发产品返工、客户退…

作者头像 李华