外汇MT4交易软件指标编程入门:循环

有需要技术分析指标的朋友扫一扫艾云商城小程序 或是微信搜索“艾云指标”

金融市场里,期货、外汇、黄金还有原油都是靠着一幅K线图,有成千上万条K线。每根K线又各有开收盘价、最高低价等数值,还有很多移动平均线、MACD、RSI等指标值。面对海量数据,我们怎么能不用循环来实现数据的取值和赋值呢?

While循环

while(条件) { 语句1 语句2 。。。}规则:当小括号中的条件成立时,就执行大括号中的语句,执行完了再判断条件是否成立,如果条件成立就继续执行大括号中的语句。只要条件成立,程序就不停地运行大括号中的语句(循环体),直到小括号中的条件不再成立时结束循环。

艾云策略—简道系统咏春版:黄金5分钟行情分析走势图
红色背景只做多单,放弃空单,绿色背景下只做空单,放弃多单

它与if语句(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、先执行小括号中的第1句:int i=0;(此语句用来定义初始变量,在循环中仅执行一次,可以为没有任何表达式的空操作符“;”)
2、再判断小括号中的第2句是否成立:i<1000;如果不成立,则循环结束;如果成立,则循环继续运行,执行第三步
3、按顺序执行大括号中的语句
4、执行小括号中的第1句:i++ (此语句即:每执行一次,i的值增加1)然后回到第二步继续执行循环。
再补充一点:如果循环体中(大括号中)只有一行语句,大括号可以省略

艾云浅谈
建议新手操盘时:只参与成交量大、流动性好的品种,同时持仓品种不超过3个。

温馨提示:投资有风险,入场需谨慎!
如果感觉文章不错,欢迎分享给朋友们!

往期精彩推荐

1、适合中长期技术分析的方法
2、MT4系统指标导入流程
3、新手四年内取得了年均收益80%的骄人成绩
4、手把手教你把指标导入文华财经WH6系统
5、期货、外汇投资中,亏损加仓走的是马丁策略还是自我毁灭?

发表评论

邮箱地址不会被公开。 必填项已用*标注