当前位置: 首页 > 外汇知道 > EA交易问题 > EA怎么编程(6)-变量?

EA怎么编程(6)-变量?

By : Apple

问: EA怎么编程(6)-变量? 答: 1、变量的类型 在MQL中,变量是极其重要的,变量在使用前必须先定义,而且各个变量名称不能重复,基本变量有四样: (1) int:整型,也就是整数 (2)double:浮点型,也就是可以带小数点的数字 (3)bool:true或false (4)string:字符串 如: int a; double b; bool c; string ss; 还有两个扩展类型: color:其实是int类型。 2、本地变量: 定义在函数内部的变量称为本地变量,它的作用范围只有在定义它的函数内可以访问,在函数外面的代码,不能访问函数里面的变量。例如: int funcname(int a) { int abc; //函数内部的变量,只能由函数里面的代码访问,函数外部不能访问变量abc; } 3、函数参数: 函数参数的各个变量名称不能函数内部变量重名。参数也可以指定默认值,例如: 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个。 4、全局变量: 全局变量是与函数同级别的变量,它的作用域是整个MQL代码。也就是说整个MQL各个地方都能访问到全局变量。如: int a = 10; int funca() { Print(a); //可访问到全局变量a return (0); } int funcb() { Print(a); //可访问到全局变量a return (1); } 5、部变量: 变量被定义为外部变量,则EA客户端可以设置这个外部变量的值。 例如: extern int a = 10; extern color c = red;

关键词: ,