MT4指标编程入门(八):循环
2024-06-18
1678
外_汇_邦 WaiHuiBang.com
MT4指标编程入门:判断语句的用法 一幅K线图有几千上万条K线,每根K线又各有开收盘价、最高低价等数值,而且还有很多移动平均线、MACD、RSI等指标值。 面对海量数据,我们必须用循环来实现数据的取值和赋值。 while循环 while(条件) { 语句1 语句2 。。。 } 规则:当小括号中的条件成立时,就执行大括号中的语句,执行完了再判断条件是否成立,如果条件成立就继续执行大括号中的语句。 只要条件成立,程序就不停地运行大括号中的语句(循环体),直到小括号中的条件不再成立时结束循环。 它与if语句的区别是:if语句是当条件为真时运行一次;而while语句则是只要条件为真,循环体语句就不停地运行,直到条件为假时结束循环。 例: externint快线=12; externint慢线=26; doublebuffer[]; inti=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语句: externint快线=12; externint慢线=26; doublebuffer[]; for(inti=0;i<1000;i++) { buffer=iMA(NULL,0,快线,0,MODE_EMA,PRICE_CLOSE,i) -iMA(NULL,0,慢线,0,MODE_EMA,PRICE_CLOSE,i); } 与前面相比,我们注意到: “inti=0;”语句从“while(i<1000)”上方移到循环条件“i<1000”的前面; “i++;”语句从循环体中移到了循环条件“i<1000”的后面; 循环执行顺序与while循环一致: 第一步、先执行小括号中的第1句:inti=0; (此语句用来定义初始变量,在循环中仅执行一次,可以为没有任何表达式的空操作符“;”) 第二步、再判断小括号中的第2句是否成立:i<1000; 如果不成立,则循环结束;如果成立,则循环继续运行,执行第三步 第三步、按顺序执行大括号中的语句 第四步、执行小括号中的第1句:i++(此语句即:每执行一次,i的值增加1) 然后回到第二步继续执行循环。 再补充一点:如果循环体中(大括号中)只有一行语句,大括号可以省略
外_汇_邦 WaiHuiBang.com
Sign In via X
Google
Sign In via Google
This page link:http://www.fxcue.com/12286.html
Tips:This page came from Internet, which is not standing for FXCUE opinions of this website.
Statement:Contact us if the content violates the law or your rights