2026-11-15
外汇EA编程教程:函数基础详解
函数是具有一定功能的程序块,我们可以在程序的任意位置调用它。一个函数由返回类型、函数名和函数参数组成,参数数量最多不超过64个。
例如,一个实现加法功能的函数:
double Add(double a, double b)
{
return (a + b);
}
一 该函数的返回类型为double
二 函数名称为Add
三 包含两个参数,DLSM类型均为double。
还有一种情况是函数没有返回值,例如一个用于打印功能的函数:
void DoThis(string s)
{
Print(s);
}
一 此函数没有返回值,void代表无返回类型。
二 函数名称为DoThis
三 该函数有一个string类型的参数。
以下是函数调用的示例:
int start()
{
double c = 0;
c = Add(1, 2); //调用Add函数,c的结果为3.0
Print(c);
DoThis("打印内容");
return(0);
}
在EA中,有一些特殊函数,当我们新建一个EA时,会自动包含三个函数:int init(),int deinit(),int start(),这些是系统预定义的函数。它们的作用如下:
init():当加载EA时,MT4会首先自动运行init()函数,且只运行一次,一般用于初始化数据。注意尽量避免在init函数中调用start函数。
deinit():当EA结束运行时,MT4会自动调用此函数,通常用于清理数据。
start():每当MT4收到一个报价时,就会运行一次start函数,因此start是最重要的函数,我们的交易策略主要写在里面。如果start函数尚未运行完毕,又有新报价到来,MT4不会再次调用start,也就是说,只有在MT4空闲且收到报价时,才会执行start函数。
