5.5 实战:均线交叉EA
第 36 节 / 共 36 节
课程:Mt4编程语言
我们来写一个完整的EA:双均线交叉策略。当快线上穿慢线时买入,下穿时卖出。
//+------------------------------------------------------------------+//| MaCross EA |//+------------------------------------------------------------------+#property copyright "MyEA"#property version "1.00"#property strictinput double Lots=0.1;input int FastMA=5;// 快线周期input int SlowMA=20;// 慢线周期input int StopLoss=50;input int TakeProfit=100;input int MagicNumber=8888;int OnInit(){ Print("双均线EA已启动"); return INIT_SUCCEEDED;}void OnTick(){ double fast1=iMA(NULL,0,FastMA,0,MODE_SMA,PRICE_CLOSE,1); double slow1=iMA(NULL,0,SlowMA,0,MODE_SMA,PRICE_CLOSE,1); double fast0=iMA(NULL,0,FastMA,0,MODE_SMA,PRICE_CLOSE,0); double slow0=iMA(NULL,0,SlowMA,0,MODE_SMA,PRICE_CLOSE,0); if(fast1 < slow1 && fast0 > slow0){ CloseAllSells(); OpenBuy(); } else if(fast1 > slow1 && fast0 < slow0){ CloseAllBuys(); OpenSell(); }}void OpenBuy(){ double sl=Bid - StopLoss*Point; double tp=Bid+TakeProfit*Point; OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp,"MaCross",MagicNumber,0,clrBlue);}void OpenSell(){ double sl=Ask+StopLoss*Point; double tp=Ask - TakeProfit*Point; OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,tp,"MaCross",MagicNumber,0,clrRed);}这个EA虽然简单,但包含了完整的EA结构:参数定义、初始化、OnTick策略逻辑、开仓和平仓。
《Mt4编程语言》课程目录
介绍MetaTrader4编程语言MQL4的基本语法
- 第1章 基本语法
- 1.1 第一个EA
- 1.2 如何学习
- 1.3 变量
- 1.4 语句
- 1.5 运算符
- 1.6 常量与枚举
- 第2章 条件
- 2.1 if语句
- 2.2 关系运算符
- 2.3 逻辑运算符
- 2.4 复合条件
- 2.5 switch语句
- 第3章 循环
- 3.1 for循环
- 3.2 while循环
- 3.3 break和continue
- 3.4 嵌套循环
- 第4章 函数
- 4.1 函数的定义
- 4.2 参数和返回值
- 4.3 变量的作用域
- 4.4 常用内置函数
- 4.5 日期和时间函数
- 4.6 交易函数
- 4.7 账户和市场信息函数
- 4.8 图表和对象函数
- 4.9 文件操作函数
- 4.10 数组函数
- 4.11 技术指标函数
- 第5章 如何写EA
- 5.1 EA的基本结构
- 5.2 常用内置变量
- 5.3 下单函数
- 5.4 技术指标
- 5.5 实战:均线交叉EA