外汇EA编程入门:函数定义与调用详解

在编程中,函数是一个具备特定功能的程序块,我们可以在程序的各个位置调用它。一个函数通常由返回类型、函数名称以及函数参数组成。需要注意的是,函数的参数数量最多不能超过64个。

例如,下面是一个实现加法功能的简单函数:

double Add(double a, double b)

{

return (a + b);

}

一 该函数的返回类型为 double

二 函数名称为 Add

三 函数包含两个参数,且类型均为 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时,交易平台会首先自动运行init()函数,且仅运行一次。通常这个函数用于数据的初始化设置。需要注意的是,应尽量避免在init函数内部调用start函数。

deinit():当结束运行EA时,交易平台会自动调用这个函数,我们一般会用它来进行一些数据的清理工作。

start():每当交易平台收到一个报价时,就会执行一次start函数。因此,start函数是最为关键的,我们的交易策略主要编写在这个函数中。如果当前start函数尚未执行完毕,而新的报价已经到达,交易平台不会再次调用start函数。也就是说,只有在start函数未被运行且收到新报价的情况下,它才会被触发执行。