在外汇交易市场中,自动化交易已经成为交易者们常用的工具之一。MQL4编程语言作为目前最常见的外汇自动化交易编程语言之一,可以帮助投资者按照自己的需求和想法编写外汇交易程序。但是,对于初学者来说,学习MQL4编程可能有些困难。本文将提供一份MQL4编程的基础教程,帮助初学者了解如何使用MQL4进行外汇自动化交易。
一、MQL4介绍
1. MQL4是什么?
MQL4是MetaQuotes公司开发的一种专门用于外汇交易平台MetaTrader 4(MT4)的编程语言。它结合了C++语言的优点,并在语言表达、运算方法以及基本函数上做出了一些改进,适合于编写交易策略及自定义指标。
2. MQL4的特点
MQL4具有以下特点:
(1)具有丰富的函数库和数据类型,可以为外汇交易提供全面的支持;
(2)强大的面向对象技术,简化了程序设计和维护;
(3)简单易学,甚至对于没有编程经验的投资者也能够上手使用;
(4)支持自动生成代码,让编程变得更加快捷高效。
二、入门教程
1. MQL4编程环境
MQL4编程环境主要分为两部分,MetaEditor和MT4交易平台。MetaEditor是MQL4程序编辑器,MT4交易平台则是MQL4程序运行的环境。这两个环境是相辅相成的。MetaEditor主要用于程序的开发,而MT4交易平台则需要安装MQL4程序以进行外汇交易自动化交易。
2. 程序框架和基本写法
在MQL4中,每个程序都必须包含一个开始和结束。下面是一个简单的程序框架:
“`
void OnInit()
{
//在这里添加初始化函数
}
void OnStart()
{
//在这里添加开始函数
}
void OnTick()
{
//在这里添加执行函数
}
void OnDeinit(const int reason)
{
//在这里添加终止函数
}
“`
函数名分别对应了程序的初始化、开始、执行和终止四个阶段。其中OnInit()和OnDeinit()可省略,只有在有需要时才会使用。
3. 变量类型与变量定义
MQL4定义了不少变量类别用于不同的目的。下面是变量的类型:
(1)int 整型
(2)double 浮点型
(3)bool 布尔型
(4)color 颜色型
(5)datetime 日期时间型
(6)string 字符串型
下面是定义变量的写法:
“`
int i;
double d;
bool b;
color c;
datetime t;
string s;
“`
在定义变量时,需要指定变量的类型,如int、double等,并为其赋初值。
4. 基本运算符和控制结构
MQL4支持基本的运算符和控制结构。
基本运算符包括:
(1)+、-、*、/ 分别表示加减乘除。
(2)% 表示取模,即取余数。
(3)= 赋值运算符。
(4)== 相等运算符。
控制结构包括:
(1)if-else 语句:用于判断给定条件是否成立,如果条件成立则执行if语句块,否则执行else语句块。
(2)for 循环:用于重复执行某一段代码,提供了循环变量初始化操作、循环控制表达式和循环变量更新操作。
(3)while 循环:使用一组布尔表达式作为循环条件来重复执行程序语句。
三、常用函数及实例
1. 常用内置函数
MQL4内置了非常丰富的函数库,这里只列出一部分常用函数:
(1)TimeCurrent():返回当前终端时间。
(2)MarketInfo():返回指定的市场信息。
(3)iBars():返回计算机上指定符号和时间段的柱数。
(4)iTime():返回计算机上指定符号和时间段的某个特定柱。
2. 如何实现MACD指标的计算
MACD(Moving Average Convergence and Divergence,移动平均线背离指标)是一种非常常用的技术分析指标。它是由两条指数移动平均线(EMA)组成,可以为投资者提供买进和卖出信号。以下是MQL4代码实现MACD的计算:
“`
// 计算EMAFast
EMAfast = iMA(NULL, 0, FastEMA , 0, MODE_EMA, PRICE_CLOSE,0);
// 计算EMASlow
EMAslow = iMA(NULL, 0, SlowEMA , 0, MODE_EMA, PRICE_CLOSE,0);
// 计算DIF
DIF = EMAfast – EMAslow;
// 计算DEA
DEA = iMA(NULL, 0, SignalMA, 0, MODE_EMA, DIF , 0);
// 计算MACD
MACD = (DIF – DEA) * 2;
“`
以上代码用于计算单个时间点上的MACD,需要多次计算才能形成完整的MACD指标。如果需要在MT4上使用MACD指标,可以直接在图表上添加即可。
四、总结
本文提供了MQL4编程基础教程,包括MQL4介绍、入门教程、常用函数及实例等内容。初学者可以按照本文的步骤一步步学习和练习,掌握如何使用MQL4进行外汇自动化交易的编程工作。在实际编程过程中,还需要不断学习和尝试,积累编程经验,才能更好地应对市场的变化和挑战。