if(prev_calculated==0)
{
limit=MA_Period+begin;
//--- set empty value for first limit barsfor(i=0; i<limit; i++) LineBuffer[i]=0.0;//--- calculate first visible valuedouble firstValue=0;
for(inti=begin; i<limit; i++){ int k=i-begin+1; weightsum+=k; firstValue+=k*price[i]; }
firstValue/=(double)weightsum;
LineBuffer[limit-1]=firstValue;
}
这里用白色的https://docs.mql4.com/ru/basis/operators/for
https://docs.mql4.com/ru/basis/variables/variable_scope
谢谢,但我以前读过第一个链接,第二个链接证实了我写代码时使用的逻辑。
然而,我对第二个链接中的这句话感到困惑:"......。在这个循环之外还有一个同名的变量..."由此可见,尽管在区块内部会声明一个同名的新变量,但全局变量的值仍然保持不变,但这是无稽之谈,因为如果你声明一个新变量,前者的值就会被抹去,那么我不明白,使用和存储两个不同的变量(局部和全局),但值相同,有什么意义?
谢谢,但我以前读过第一个链接,第二个链接证实了我写代码时使用的逻辑。
然而,我对第二个链接中的这句话感到困惑:"......。在这个循环之外,还有一个同名的变量... "但这是无稽之谈,因为如果你声明一个新的变量,前者的值就会被抹去,那么我就不明白了,使用和存储两个不同的变量(局部和全局),但数值相同,有什么意义?
在我看来,你是在写胡话。如果你在一个循环或函数内声明一个局部变量,同名的全局变量的值 不会受到影响,但编译器会警告你,你声明的局部变量与现有的全局变量同名,在一个范围包括新声明的变量的函数或代码块内工作,不会影响全局变量的值。它警告你这一点,以便你理解这是一个新的变量,这样你就不会期望全局变量的值在你离开你声明了一个与现有全局变量同名的新变量的块的范围后发生变化。
简单地说:公寓内的一切都适用于所有房间,并由所有房间共享(全局变量)。而在一个房间内的所有东西--它只适用于这个房间,从其他房间不可见(它是一个局部变量)。
甚至更简单?请。
如果你把厕所里的空气弄乱了(局部),那就是弄乱了。同时,整个单位(全球)都知道(由于你的厕所实验),最好不要进入厕所......。但空气是整个单位的概念,所有居民都知道厕所里的空气变质。同时,只有在厕所里的幸运儿才能充分体验到在封闭空间内改变局部环境的所有乐趣(变量值的局部影响)。我们其余的人知道,但不觉得。当你离开厕所时,你失去了在厕所里经历的感觉(局部值),开始呼吸新鲜空气(得到空气的全局值),同时和其他人一样,知道裤子里有一脚(空气污染功能的结果,影响到整个单位的整体生活)...
我希望我已经说得很清楚了![](https://c.mql5.com/3/87/pardon.gif)
我认为你在胡乱写。如果你在一个循环或函数内声明一个局部变量,同名的全局变量的值 不会被覆盖,但编译器会警告你,你声明了一个与现有全局变量同名的局部变量,在范围包括新声明的变量的函数或代码块内工作,不会影响全局变量的值。它警告你这一点,以便你理解这是一个新的变量,这样你就不会期望全局变量的值在你离开你声明了一个与现有全局变量同名的新变量的块的范围后发生变化。
简单地说:公寓内的一切都适用于所有房间,并由所有房间共享(全局变量)。而在一个房间内的所有东西--它只适用于这个房间,从其他房间不可见(它是一个局部变量)。
甚至更简单?请。
如果你把厕所里的空气弄乱了(局部),那就是弄乱了。同时,整个单位(全球)都知道(你的厕所实验的结果),最好不要进厕所......但空气是整个单位的概念,所有居住者都知道厕所里的空气变质。同时,只有在厕所里的幸运儿才能充分体验到在封闭空间内改变局部环境的所有乐趣(变量值的局部影响)。我们其余的人知道,但不觉得。当你离开厕所时,你失去了在厕所里经历的感觉(局部值),开始呼吸新鲜空气(得到空气的全局值),同时和其他人一样,知道裤子里有一脚(空气污染功能的结果,影响到整个单位的整体生活)...
我希望我已经说得很清楚了
在你的著作中发现了真理--谢谢你!事实证明,在一个区块内声明一个与全局变量同名的变量,会导致区块内全局变量的数据被屏蔽...而关于已经声明的变量的警告不能被删除,对吗?
谢谢,但我以前读过第一个链接,第二个链接证实了我写代码时使用的逻辑。
然而,我对第二个链接中的这句话感到困惑:"......。在这个循环之外,还有一个同名的变量..."但这是无稽之谈,因为如果你声明一个新的变量,前者的值就会被抹去,那么我就不清楚,使用和存储两个不同的变量(局部和全局),但数值相同,有什么意义?
不幸的是,它写得不正确。
不幸的是,那里拼错了 :(
它在帮助中没有说清楚。
你为什么要给我密码?我不知道该在其中寻找什么.........而我又受时间限制。你能告诉我这是做什么用的,帮助中的错误是什么。
是帮助中的代码
是 "i "在函数的开头。
然后在循环中又是 "i"。
是帮助中的代码
是 "i "在函数的开头。
然后在循环中它又是 "i"。
好在没有错误:一个带有全局 i 的循环(蓝色),另一个带有局部 i 的循环(红色)。