欢迎您来到通汇国际,投资有风险,选择需谨慎!

company introduction

公司介绍

香港通汇国际投资有限公司是一家专注于金融投资服务领域的专业化团体,主要培训操盘手团队、客户自主交易训练、培训及技术支持的方案提供商。


Agent join

代理加盟

专业从事全球高端金融产品服务,诚招FXCM(福汇),KVB昆仑国际外汇一级代理商,业内权威外汇服务商。


News

新闻

提供外汇实时行情资讯、财经数据、外汇培训、专家评论、交易策略等外汇知识和动态等!


Video

视频

通汇国际外汇视频频道,包含今日视频、财经连载、视频教程、财经快讯等外汇学习视频资料。


该网站已经工信部认证联盟认证为实名网站,请放心访问
了解详情>
网站安全检测
身份证明信息
ICP备案审查
工商登记信息

MT4编程

MT4编程入门8:循环

2014/6/2 11:14:52 来源:通汇国际 浏览:1067

  一幅K线图有几千上万条K线,每根K线又各有开收盘价、最高低价等数值,而且还有很多移动平均线、MACD、RSI等指标值。

  面对海量数据,我们必须用循环来实现数据的取值和赋值。

  while循环

  while(条件)

  {

  语句1

  语句2

  。。。

  }

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

  只要条件成立,程序就不停地运行大括号中的语句(循环体),直到小括号中的条件不再成立时结束循环。

  它与if语句的区别是:if语句是当条件为真时运行一次;而while语句则是只要条件为真,循环体语句就不停地运行,直到条件为假时结束循环。

  例:

  extern int 快线=12;

  extern int 慢线=26;

  double buffer[];

  int i=0;

  while(i<1000)

  {

  buffer= iMA(NULL,0,快线,0,MODE_EMA,PRICE_CLOSE,i)

  -iMA(NULL,0,慢线,0,MODE_EMA,PRICE_CLOSE,i);

  i++;

  }

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

  for循环

  for循环与while循环在原理上是一致的,只是书写格式上有所区别

  把上面的例子改成for语句:

  extern int 快线=12;

  extern int 慢线=26;

  double buffer[];

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

  {

  buffer= iMA(NULL,0,快线,0,MODE_EMA,PRICE_CLOSE,i)

  -iMA(NULL,0,慢线,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)

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

  再补充一点:如果循环体中(大括号中)只有一行语句,大括号可以省略

点击咨询客服了解更多

相关阅读

通汇专题

学院相关

推荐文章

外汇百科