1 本地变量:
在EA编程中,定义在函数内部的变量被称为本地变量,其作用范围仅限于该函数内部,外部代码无法对其进行访问。希盟建议在编写代码时合理使用本地变量以提升程序的可维护性。例如:
int funcname(int a)
{
int abc; //此变量仅在函数内部生效,外部无法调用
}
2 函数参数:
函数参数的名称不能与函数内部已有的变量重名。参数也可以预先设定默认值,便于调用时灵活处理。例如:
void func(int x, double y = 0.0, bool z = true)
{
...
}
该函数为y和z分别指定了默认值0.0与true。调用时可省略具有默认值的参数,例如func(9)等同于func(9, 0.0, true);若调用func(9, 1.5)则相当于func(9, 1.5, true)。通常情况下,函数参数采用传值方式,在函数内部修改参数不会影响调用方的变量,数组也是如此。
那么如何实现传引用呢?通过传引用,函数内部对参数的修改会同步反映到调用方的变量中。若需传引用,只需在参数类型后添加符号'&',示例如下:
void func(int& x, double& y, double& z[])
{
x = 8;
}
需要注意的是,传引用的参数无法预设默认值。此外,函数参数的总数不能超过64个。希盟提醒开发者在设计接口时留意这一限制。
3 全局变量:
全局变量与函数处于同一层级,其作用域覆盖整个MQL代码,任何位置均可访问。例如:
int a = 10;
int funca()
{
Print(a); //可读取全局变量a
return (0);
}
int funcb()
{
Print(a); //同样可读取全局变量a
return (1);
}
4 外部变量:
若变量被定义为外部变量,则EA客户端可直接对其值进行设置。例如:
extern int a = 10;
extern color c = red;
免责声明:本文内容仅供参考,不构成投资建议。投资有风险,入市需谨慎。



