【外汇EA编程学习】外汇EA编程教程——变量
小明学外汇EA编程 2019-09-09 15:22:12 交流微信号:FX263cn 外汇EA编程
1 本地变量:
定义在函数内部的变量称为本地变量,它的作用范围只有在定义它的函数内可以访问,在函数外面的代码,不能访问函数里面的变量。例如:
int funcname(int a)
{
int abc; //函数内部的变量,只能由函数里面的代码访问,函数外部不能访问变量abc;
}
2 函数参数:
函数参数的各个变量名称不能函数内部变量重名。参数也可以指定默认值,例如:
void func(int x, double y = 0.0, bool z = true)
{
...
}
这个函数指定了y的默认值为0.0,z的值为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代码。也就是说整个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;
【全球外汇中文网Fx263.com ,阅读更多请登录www.Fx263.com】
定义在函数内部的变量称为本地变量,它的作用范围只有在定义它的函数内可以访问,在函数外面的代码,不能访问函数里面的变量。例如:
int funcname(int a)
{
int abc; //函数内部的变量,只能由函数里面的代码访问,函数外部不能访问变量abc;
}
2 函数参数:
函数参数的各个变量名称不能函数内部变量重名。参数也可以指定默认值,例如:
void func(int x, double y = 0.0, bool z = true)
{
...
}
这个函数指定了y的默认值为0.0,z的值为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代码。也就是说整个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;
【全球外汇中文网Fx263.com ,阅读更多请登录www.Fx263.com】
【版权声明】
本文仅代表作者观点,不代表本站立场。Fx263.com对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证,且不构成任何投资建议,请读者仅作参考,并自行承担全部风险与责任。Fx263.com作为信息内容发布平台,页面展示内容的目的在于传播更多信息,不代表Fx263.com立场;本站会员及自媒体人所发的稿件所载明的信息与本网无关,如文章涉及版权,请联系本站处理。
【风险提示】
请通过正规渠道参与外汇保证金交易。目前通过网络平台提供、参与外汇保证金交易均属非法。请提高意识,谨防损失!外汇、贵金属和差价合约(OTC场外交易)是杠杆产品,存在较高的风险,可能会导致亏损您的投资本金,请理性投资。