6评论

0收藏

MQL4中的变量

avatar alizee | 4835 人阅读 | 6 人评论 | 2012-12-03

开始之前你可以复习“数据类型”那一课。
变量的声明:
你可以通过使用关键字(int, double, char, bool, string, color 和 datetime)和你选择的变量名来声明一个变量并指定它的类型。
例:
int myvaraible
在这儿你声明了一个叫做myvaraible的整型变量。在声明之前你不能在程序里使用它。如果你使用了未经声明的变量,MQL4编译器将报错并给除如下信息:
variable not defined. 1 error(s), 0 warning(s).
变量的初始化:
变量初始化的意思是给这个变量赋值。例如:myvaraible=10;你也可以在声明行对变量进行初始化,例如:int myvaraible=10;并且你可以像下面这样,在一个地方声明变量。然后在另一个地方对它进行初始化:
int myvaraible
………
Myvaraible=10;
记住:只能初始化一个被声明了的变量。或者说初始化之前必须先声明。
变量的范围:
变量有两个范围:局部变量和全局变量。
范围的意思是程序的那一部分可以知道并使用这个变量。
局部变量:
局部变量的意思是在它被声明的区域外不能被识别。例如,被声明在函数中的变量是函数代码的局部变量。还有循环和选择中声明的变量,它只能在循环和选择中被局部的识别和使用。
例:
double my_func (double a, double b, double c)
  {  
   int d ;                              
   return (a*b + c);
  }
在上面的例子中,a,b,c,d都是局部变量,它们仅能在函数代码块中使用。因此在上面的例子中,如果我们在大括号的后面写上这样一行:d=10;,那么就是错误的了。因为局部变量只能在它被声明的区中中被识别和使用。大括号外已经不是它被声明的区域了。
全局变量是被声明在任何代码块(函数,循环,选择)之外的变量,它在程序的任何部分被识别和使用。例:
int Global_Variable;
double my_func (double a, double b, double c)
  {  
      return (a*b + c + Global_Variable);
  }
全局变量如果不被初始化,将被自动设置为0.
外部变量:
关键字extern被用来声明一种特殊类型的变量。
例:
extern color Indicator_color = C'0x00,0x00,0xFF'; // 蓝色
int init()
  {
   ...
  }
外部定义的可变量。 在数据类型公布之前指定外部变量。
示例:
extern double InputParameter1 = 1.0;
extern color  InputParameter2 = red;
int init()
  {
   ...
  }
  
确定从外部程序输入的变量, 会直接显现输入数据窗口。数列本身不能作为外部变量。

图片7.png

在上图中,Period, Shift, MA_method, Apply_to和Style都是extern定义的变量。
最后感谢大家,欢迎回帖批评指正。

""
还没有人打赏,支持一下

评论|共 6 个

竹乐居士

发表于 2013-12-30 21:57:15 | 显示全部楼层

[s:139][s:139]

hwujfwmj

发表于 2014-11-2 19:43:53 | 显示全部楼层

看看吧,谢谢分享

小小

发表于 2014-11-4 01:42:45 | 显示全部楼层

多谢分享 看看是什么

离孩农高会

发表于 2014-11-16 07:59:56 | 显示全部楼层

路过。。看下先。

虚拟的曾经

发表于 2014-12-5 13:44:42 | 显示全部楼层

亏损中……………………

sunguogui

发表于 2014-12-6 21:31:14 | 显示全部楼层

研究研究

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则