MT4的iMAOnArray和iBandsOnArray元素数量对计算的影响 - 页 7 123456789 新评论 Dmitry Fedoseev 2016.05.03 15:38 #61 Alexey Viktorov:你是说在if(rates_total-i >= rates_total-100);之后,当只剩下100个柱子需要计算时,iMAOnArray()函数首先重新计算ALL阵列? 不,只有一半。 Sergey Efimenko 2016.05.03 16:25 #62 Alexey Viktorov:你是说在if(rates_total-i >= rates_total-100);之后,当只剩下100条计算时,iMAOnArray()函数首先重新计算整个阵列?阵列中的iMAOnArray返回根据存储在数组中的数据计算的移动平均技术指标 的值。doubleiMAOnArray(双重数组[],//数组inttotal,// 元素的数量intma_period,//periodintma_shift,// 平均数的转变intma_method,// 平均方法int shift//shift);参数阵列[][in] 带有数据的数组。共计 [in]要计算的元素的数量。0表示数组的所有元素。这是正确的,第一次调用iMAOnArray的大小值为0时,无条件地计算整个数组,然后似乎只有最后一个或最多最后两个值被计算,尽管谁知道,它可能重新计算所有的值......这就是为什么它正在放缓。这就是为什么你想通过偏移得到多少条并不重要,反正整个数组都被计算了。 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. 请教:iMAOnArray()函数的使用 Alexey Viktorov 2016.05.03 16:45 #63 Sergey Efimenko: 阵列中的iMAOnArray返回根据存储在数组中的数据计算的移动平均技术指标 的值。doubleiMAOnArray(双重数组[],//数组inttotal,// 元素的数量intma_period,//periodintma_shift,// 平均数的转变intma_method,// 平均方法int shift//shift);参数阵列[][in] 带有数据的数组。共计 [in]要计算的元素的数量。0表示数组的所有元素。这是正确的,第一次调用iMAOnArray的大小值为0时,肯定会计算整个数组,然后似乎只有最后一个或最多最后两个值被计算,虽然谁知道,它可能会重新计算所有的值......这就是为什么它正在放缓。这就是为什么你想通过偏移得到多少条并不重要,反正整个数组都被计算了。 所以,我搞错了。还有,为什么没有你复杂的计算就没有刹车? Sergey Efimenko 2016.05.03 17:09 #64 Alexey Viktorov: 那么我就搞错了。那么,为什么没有你的复杂计算就没有滞后性呢? 这就是问题所在,为什么当你从代码中调用它时,它的速度会变慢,而当你简单地把它叠加在图表上时,却不会。那么,只有开发者才知道在哪里可以找到答案。我的图表中有很多复杂的指标,其中一些甚至使用了递归循环,它们应该是 "长时间思考",而这是一个简单的任务,需要这么多时间来计算。 Alexey Viktorov 2016.05.03 17:21 #65 Sergey Efimenko: 这就是问题所在,为什么从代码中调用它的时候会滞后,而在图表上叠加时却不会。那么,只有开发者知道在哪里寻找答案。我的图表中有很多复杂的指标,其中一些甚至使用了递归循环,它们应该是 "想得很远",但这是一个简单的任务,却需要这么长时间来计算。我说的不是简单的图表叠加。我说的是那个测试代码。它被称为那里,而不是叠加。不过,我想我已经通过复制阵列的部分内容打了个酱油。甚至MODE_LWMA的重新计算方式也和计算整个数组一样。红色是按整个历史计算的。绿色是最后50条。 Dmitry Fedoseev 2016.05.03 17:48 #66 Alexey Viktorov:...不过,我想我已经通过复制阵列的部分内容打了个酱油。甚至MODE_LWMA的重新计算方式也和计算整个数组一样。...他也战胜了它。 Sergey Efimenko 2016.05.03 18:00 #67 Alexey Viktorov:我说的不是简单的图表叠加。我说的是那个测试代码。它被称为那里,而不是叠加。不过,我想我已经通过复制阵列的部分内容打了个酱油。甚至MODE_LWMA的重新计算方式也和计算整个数组一样。红方计算的是整个历史。绿色是最后50条。 我的印象是,你在逐字逐句地阅读我的帖子,如果不是逐字逐句的话。赢得了什么?我写道,我立即得到了这样一个想法(类似的代码,有条形 计算限制),我试了一下,没有得到任何性能提升,因为数组仍然是完全计算的(total=0),事实上,你只复制(填入缓冲区)最后的100个元素,并没有改变减速计算,它制动没有得到缓冲区中的元素,而计算数组的平均值,要么完全计算(total=0),要么只给出前N个元素的结果(total=N),而这需要最后一个,而改变方向索引并没有带来预期的效果。 Alexey Viktorov 2016.05.03 18:18 #68 Sergey Efimenko: 我的印象是,你逐字逐句地阅读我的帖子。赢得了什么?我写道,我立即有了这样的想法(类似的代码,有条形 计算的限制),我立即试了一下,没有得到性能的提高,因为数组仍然是完全计算的(total=0),事实上你只复制(填入缓冲区)了最后的100个元素,并没有从计算中拿走刹车,这不是把元素弄到缓冲区,而是计算数组的平均值,要么完全计算(total=0),要么只显示前N个元素的结果(total=N),而最后的元素是需要的,改变索引方向并不能带来预期的效果。显然,我的信息也被读完了......。以前的代码不合适,我想出了错误所在。最后一张截图显示了一个不同的方法,虽然只计算了最后50个柱子。我没有马上发布代码,以为会有 "反正也行不通 "这样的反应,因为......代码不是秘密,如果你想检查它如何与你的指标一起工作,让我知道。德米特里-费多塞耶夫。 他也赢了。 而你只能惹是生非。数一数有多少论坛成员用这种语气与你交流,比如现在与我交流。走吧,撒旦。 Dmitry Fedoseev 2016.05.03 19:04 #69 Alexey Viktorov:... 你所能做的就是大惊小怪。数一数有多少论坛用户是用这种语气和你说话的,就像你现在和我说话一样。走吧,撒旦。这就是我与你这样的人交谈的方式。这里有你们的联盟,我知道。甚至昨天你还在这里写了关于阵列复制 方法的失败。它被指向了LWMA--它起作用了。你没有足够的懒惰来检查它与EMA,和圣洁的力量的主机?你在教堂里放了一支蜡烛吗?你不断地鞭打,每次你都说:"哎呀,我知道了,我犯了一个错误。一场战斗。如果你有一点意识,早就会看到这个话题的问题已经解决。 你想再一次炫耀,但你的角被吹掉了,并立即向撒旦哀叹。人! Sergey Efimenko 2016.05.03 19:22 #70 Alexey Viktorov:显然,我的信息也被读完了......。之前的代码不合适,我想出了错误所在。最后一张截图显示了一个不同的方法,虽然只计算了最后50个柱子。我没有马上发布代码,以为会有 "反正也行不通 "这样的反应,因为......该代码不是秘密,如果你想检查它如何与你的指标一起工作,请告诉我。 我应该猜到有一个不同的代码吗?上面也是一个截图,最后100个柱子被计算,但实际上所有的柱子都被计算了,但只有100个被复制到缓冲区。是的,为什么不马上公布代码呢?就不会有这样的答案了。我本来想实质性地回答,我不明白有什么意义?你可以立即从代码中看到发生了什么,什么算数,是否有上述缺陷。而屏幕给你的是什么?除了结果,什么都没有,关于结果已经说过了,它可以通过不同的方式达到,但不是所有的方式都能接受眼前的任务--减少计算时间。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你是说在if(rates_total-i >= rates_total-100);之后,当只剩下100个柱子需要计算时,iMAOnArray()函数首先重新计算ALL阵列?
你是说在if(rates_total-i >= rates_total-100);之后,当只剩下100条计算时,iMAOnArray()函数首先重新计算整个阵列?
阵列中的iMAOnArray
返回根据存储在数组中的数据计算的移动平均技术指标 的值。
doubleiMAOnArray(
双重数组[],//数组
inttotal,// 元素的数量
intma_period,//period
intma_shift,// 平均数的转变
intma_method,// 平均方法
int shift//shift
);
参数
阵列[]
[in] 带有数据的数组。
共计
[in]要计算的元素的数量。0表示数组的所有元素。
这是正确的,第一次调用iMAOnArray的大小值为0时,无条件地计算整个数组,然后似乎只有最后一个或最多最后两个值被计算,尽管谁知道,它可能重新计算所有的值......这就是为什么它正在放缓。这就是为什么你想通过偏移得到多少条并不重要,反正整个数组都被计算了。
阵列中的iMAOnArray
返回根据存储在数组中的数据计算的移动平均技术指标 的值。
doubleiMAOnArray(
双重数组[],//数组
inttotal,// 元素的数量
intma_period,//period
intma_shift,// 平均数的转变
intma_method,// 平均方法
int shift//shift
);
参数
阵列[]
[in] 带有数据的数组。
共计
[in]要计算的元素的数量。0表示数组的所有元素。
这是正确的,第一次调用iMAOnArray的大小值为0时,肯定会计算整个数组,然后似乎只有最后一个或最多最后两个值被计算,虽然谁知道,它可能会重新计算所有的值......这就是为什么它正在放缓。这就是为什么你想通过偏移得到多少条并不重要,反正整个数组都被计算了。
那么我就搞错了。那么,为什么没有你的复杂计算就没有滞后性呢?
这就是问题所在,为什么从代码中调用它的时候会滞后,而在图表上叠加时却不会。那么,只有开发者知道在哪里寻找答案。我的图表中有很多复杂的指标,其中一些甚至使用了递归循环,它们应该是 "想得很远",但这是一个简单的任务,却需要这么长时间来计算。
我说的不是简单的图表叠加。我说的是那个测试代码。它被称为那里,而不是叠加。
不过,我想我已经通过复制阵列的部分内容打了个酱油。甚至MODE_LWMA的重新计算方式也和计算整个数组一样。
红色是按整个历史计算的。绿色是最后50条。
...
不过,我想我已经通过复制阵列的部分内容打了个酱油。甚至MODE_LWMA的重新计算方式也和计算整个数组一样。
...
他也战胜了它。
我说的不是简单的图表叠加。我说的是那个测试代码。它被称为那里,而不是叠加。
不过,我想我已经通过复制阵列的部分内容打了个酱油。甚至MODE_LWMA的重新计算方式也和计算整个数组一样。
红方计算的是整个历史。绿色是最后50条。
我的印象是,你逐字逐句地阅读我的帖子。赢得了什么?我写道,我立即有了这样的想法(类似的代码,有条形 计算的限制),我立即试了一下,没有得到性能的提高,因为数组仍然是完全计算的(total=0),事实上你只复制(填入缓冲区)了最后的100个元素,并没有从计算中拿走刹车,这不是把元素弄到缓冲区,而是计算数组的平均值,要么完全计算(total=0),要么只显示前N个元素的结果(total=N),而最后的元素是需要的,改变索引方向并不能带来预期的效果。
显然,我的信息也被读完了......。以前的代码不合适,我想出了错误所在。最后一张截图显示了一个不同的方法,虽然只计算了最后50个柱子。
我没有马上发布代码,以为会有 "反正也行不通 "这样的反应,因为......代码不是秘密,如果你想检查它如何与你的指标一起工作,让我知道。
他也赢了。
...
你所能做的就是大惊小怪。数一数有多少论坛用户是用这种语气和你说话的,就像你现在和我说话一样。走吧,撒旦。这就是我与你这样的人交谈的方式。这里有你们的联盟,我知道。
甚至昨天你还在这里写了关于阵列复制 方法的失败。它被指向了LWMA--它起作用了。你没有足够的懒惰来检查它与EMA,和圣洁的力量的主机?你在教堂里放了一支蜡烛吗?
你不断地鞭打,每次你都说:"哎呀,我知道了,我犯了一个错误。
一场战斗。如果你有一点意识,早就会看到这个话题的问题已经解决。
你想再一次炫耀,但你的角被吹掉了,并立即向撒旦哀叹。人!
显然,我的信息也被读完了......。之前的代码不合适,我想出了错误所在。最后一张截图显示了一个不同的方法,虽然只计算了最后50个柱子。
我没有马上发布代码,以为会有 "反正也行不通 "这样的反应,因为......该代码不是秘密,如果你想检查它如何与你的指标一起工作,请告诉我。