MT4编程初级手册(8):循环语句

阅读 :
外_汇_邦 WaiHuiBang.com

一幅K线图有几千上万条K线(Bar,根据设定的样本数),每根K线Bar又各有开收盘价、收盘价、最高低价等数值,而且还有很多移动平均线、MACD、RSI等技术指标数值。

 

面对大量的数据,我们经常采用循环来实现数据的取值和赋值。下面我们简单来介绍一下MT4中主要用到的循环语句。

 

一、while循环

 

while(判断条件)

   {

   语句1;

   语句2;

   。。。;

   }

 

规则:当小括号中的判断条件成立时,就执行大括号中的语句,执行完毕后再判断条件是否成立,如果条件成立就再继续执行大括号中的语句。

 

只要条件成立,程序就不停地执行大括号中的语句(循环体),直到小括号中的条件不再成立时结束循环,while循环又叫做“当循环”,意思为当XX条件时执行循环。

 

它与if语句的区别是:if语句是当条件为真时只运行一次;而while语句则是只要条件为真,循环体语句就不断地运行,直到条件为假时结束循环。所以为了避免造成死循环,循环体内应当对判断的条件进行修改,如进行数值的累加等。

 

例:

 

   extern int fast=12;

   extern int slow=26;

   double buffered[ ];

   int i=0;

   while(i<1000)

     {

      buffered=  iMA(NULL,0,fast,0,MODE_EMA,PRICE_CLOSE,i)

                 -iMA(NULL,0slow,0,MODE_EMA,PRICE_CLOSE,i);

      i++;

     }

 

这里,循环执行条件是i<1000,循环体中有两条语句,一句是把两条均线的差值赋给数组buffer,另一句“i++;”,我们知道“++”是自增运算符,那么每运行一次,i的值在原有基础上增加1。这样,随着循环的不断地运行,i的值逐渐增加,循环到1000次后,i的值也就从0变为了1000,此时“i<1000”就不再成立,循环结束。这样,数组buffered[ ]中也就存储了1000个值。

 

二、for循环

 

for循环与while循环在原理上可以认为是一致的,只是书写格式上有所区别,一般for循环多用在已知循环次数的循环上面,而while循环用在未知循环次数的循环上面(也即循环的次数可能根据运行的结果动态的改变)。

 

例如,把上面的例子改成for循环:

 

   extern int fast=12;

   extern int slow=26;

   double buffered[ ];

 

   for(int i=0; i<1000; i++)

     {

      buffered=  iMA(NULL,0,fast,0,MODE_EMA,PRICE_CLOSE,i)

                 -iMA(NULL,0,slow,0,MODE_EMA,PRICE_CLOSE,i);

     }

 

与前面对比比,我们注意到:

 

“int i=0;”语句从“while(i<1000)”循环体上方移到循环条件里面、“i<1000”的前面;

 

“i++;”语句从循环体中移到了循环条件里面、“i<1000”的后面。

 

循环执行顺序与while循环是一致的:

 

第一步、先执行小括号中的第1句:int i=0;

 

(此语句用来定义初始循环变量,在循环中仅执行一次,可以为没有任何表达式的空操作符“;”)

 

第二步、再判断小括号中的第2句是否成立:i<1000;

 

如果成立,则循环继续运行,执行第三步;如果不成立,则循环结束;

 

第三步、按顺序执行大括号中循环体的语句;

 

第四步、执行小括号中的第1句:i++ (此语句即:每循环一次,i的值自增1)

 

然后回到第二步继续执行循环。

 

再补充一点:同if语句一样,如果循环体中(大括号中)只有一行语句,大括号可以省略,其他的操作符也是如此。

外_汇_邦 WaiHuiBang.com
本文标题:MT4编程初级手册(8):循环语句 - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/40517.html

相关文章

  • MT4平台调期利息(隔夜利息)查看步骤

    MT4每组货币对的隔夜利息/费用都不同 ;具体细则可以在商品列表中查看 步骤如下 第一步, 右键单击市场报价中的任何一组货币对, 在弹出窗口选择&lsquo;商品列表&rsquo; 第二步, 在商品列表里选择您想查询的货币对, 例...

    MQL4编程学习
  • 外汇智能交易流行的各类EA大评点
    外汇智能交易流行的各类EA大评点

    随着外汇市场的不断发展与计算机技术的不断进步,外汇智能化交易(EA)也开始被广泛投资者所熟知。马丁、剥头皮、网格、趋势、海龟&hellip;&hellip;市场上的EA良莠不齐,种类也是琳琅满目。究竟哪类型的EA最牛逼呢?别说入门投...

    MQL4编程学习
  • MQL4基础:数据类型

    目录[hide]类型转换 整型常量 字符常量 布尔型常量 浮点常量(双精度常量) 字符串常量 颜色常量 时间日期常量任何程序都要依靠数据来运行,数据因日的不同可以有不同的类型。比如,数组可以存取整型数据,价格可以...

    MQL4编程学习
  • MT4软件中的Stochastic Oscillator(随机振荡指标)KD、KDJ使用简介
    MT4软件中的Stochastic Oscillator(随机振荡指标)KD、KDJ使用简介

    随机振荡指标(Stochastic Oscillator)中文名称是随机指数,最早起源于期货市场。是50年代由美国大师乔治.雷恩(George C. Lane)博士发明的,自创立以来,历经半世纪岁月,已被证明是令人膜拜的经典。...

    MQL4编程学习
  • 外汇EA编程教程――数据类型

      所有的程序就是对数据进行操作,我们根据不同的需求对数据定义不同的类型,比如数字类型的数据用于操作数组。价格数据使用浮点型类型数据,MQL本身没有货币类型的数据类型。 不同的数据类型有着不同的处理速度,其中...

    MQL4编程学习
你可能感兴趣