错误、漏洞、问题 - 页 512 1...505506507508509510511512513514515516517518519...3184 新评论 Aleksey Lebedev 2011.09.13 18:44 #5111 Neofit: 设置数组的大小。ArrayResize Yedelkin 2011.09.13 18:45 #5112 Neofit: 请告诉我如何正确使用一个元素为Mqlrates结构 的数组。 这正是我想知道的。 MqlRates AdaptedRates[]; ArraySetAsSeries(AdaptedRates,true); AdaptedRates[300].open=1; 调试器给出一个错误 - 无效的数组访问。 我理解,使用这种记录形式,我们只能读取 一个结构的元素,而这个结构是一个数组的元素。 问题是如何正确书写 结构元素。我对所有这些都不感兴趣。 重要的是.open.high.low.close的价格。 我提前对一个可能非常平庸的问题表示歉意(我一般不是程序员),但在帮助我没有找到答案。我将感谢任何帮助。 你正在使用一个动态数组AdaptedRates[]。在我的印象中,当使用动态数组时,其大小应使用ArrayResize()函数来设置。但到目前为止,编译器对第三行的索引300进行了抱怨。 Neofit 2011.09.13 18:47 #5113 Swan: 设置数组的大小。ArrayResize 据我所知,如果我设置了大小,例如 MqlRates AdaptedRates[302]; ,我就不能把索引的类型设置为系列。 Yedelkin 2011.09.13 18:49 #5114 Neofit: 据我所知,如果我定义大小,例如MqlRates AdaptedRates[302]; ,我就不能把索引类型设置为系列。 :)你不是在设置静态数组,而是用ArrayResize() 设置动态数组的大小。 嗯,比如:ArrayResize(AdaptedRates,302); 等等。 Neofit 2011.09.13 18:51 #5115 Yedelkin: 你正在使用一个动态数组AdaptedRates[]。在我的印象中,在处理动态数组时,你应该用ArrayResize()函数来设置它们的大小。到目前为止,编译器在第三行中指定的索引300上崩溃了。静态数组不能表示为时间序列,也就是说,ArraySetAsSeries()函数,即设置从数组的末端到开始的数组元素的访问,不适用于它们。如果你想提供对数组的访问,如在时间序列中,使用一个动态数组对象。 这是帮助中的一段话。Swan,Yedelkin谢谢你这么快的反应。 Aleksey Lebedev 2011.09.13 18:52 #5116 Neofit: 据我所知,如果我定义了一个尺寸,比如说 MqlRates AdaptedRates[302]; ,我就不能把索引类型设置为系列。是的。MqlRates AdaptedRates[];//因此,让数组保持动态。ArrayResize(AdaptedRates,302);//并设置正确的大小。 Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных www.mql5.com Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных - Документация по MQL5 Neofit 2011.09.13 18:54 #5117 Yedelkin: :)你不是设置一个静态数组,而是用ArrayResize() 设置一个动态数组。 嗯,像ArrayResize(AdaptedRates,302); 等。 谢谢你的通俗解释,据我所知,在对动态数组单元的任何引用之前,最好将其ArrayResize到所需的限度,我将尝试一下。 Olegs Kucerenko 2011.09.13 18:55 #5118 pusheax:策略测试器中 的一个小故障。它突然停止了,所有本地和远程代理都完成了,于是挂掉了。 你能告诉我如何重新开始吗,重头再来很可惜。 我经常这样做:-)更糟糕的是,当它发生在晚上时,它一直开着,直到我醒来:-) Yedelkin 2011.09.13 18:56 #5119 Neofit: 谢谢你的通俗解释,据我所知,在对动态数组单元的任何引用之前,最好将其ArrayResize到所需的限度,我将尝试一下。 请注意。只有对指示器缓冲区 来说,这就不需要做了。终端的执行子系统自己处理这个问题。 注2:ArrayResize()最好只在有必要改变动态数组的大小时应用,而不是在对其元素进行任何访问之前。很可能一个动态数组将被赋予一次大小,然后程序将简单地访问其项目。 Neofit 2011.09.13 19:05 #5120 Yedelkin: 请注意。只有对指示器缓冲区 来说,这就不需要做了。终端的执行子系统自己处理这个问题。 注2:ArrayResize()最好只在有必要改变动态数组的大小时应用,而不是在对其元素进行任何访问之前。很可能一个动态数组将被分配一次大小,然后程序将简单地访问其元素。 好吧,我这么说就太傻了,其实我明白,如果我已经把一个动态数组扩展到了302,我就可以不通过ArrayResize来访问0到301的任何元素。 1...505506507508509510511512513514515516517518519...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请告诉我如何正确使用一个元素为Mqlrates结构 的数组。
这正是我想知道的。
MqlRates AdaptedRates[];
ArraySetAsSeries(AdaptedRates,true);
AdaptedRates[300].open=1;
调试器给出一个错误 - 无效的数组访问。
我理解,使用这种记录形式,我们只能读取 一个结构的元素,而这个结构是一个数组的元素。
问题是如何正确书写 结构元素。我对所有这些都不感兴趣。 重要的是.open.high.low.close的价格。
我提前对一个可能非常平庸的问题表示歉意(我一般不是程序员),但在帮助我没有找到答案。我将感谢任何帮助。
设置数组的大小。ArrayResize
据我所知,如果我定义大小,例如
:)你不是在设置静态数组,而是用ArrayResize() 设置动态数组的大小。
嗯,比如:ArrayResize(AdaptedRates,302); 等等。
你正在使用一个动态数组AdaptedRates[]。在我的印象中,在处理动态数组时,你应该用ArrayResize()函数来设置它们的大小。到目前为止,编译器在第三行中指定的索引300上崩溃了。
这是帮助中的一段话。
Swan,Yedelkin谢谢你这么快的反应。
据我所知,如果我定义了一个尺寸,比如说
是的。
MqlRates AdaptedRates[];//因此,让数组保持动态。
ArrayResize(AdaptedRates,302);//并设置正确的大小。
:)你不是设置一个静态数组,而是用ArrayResize() 设置一个动态数组。
嗯,像ArrayResize(AdaptedRates,302); 等。
策略测试器中 的一个小故障。
它突然停止了,所有本地和远程代理都完成了,于是挂掉了。
你能告诉我如何重新开始吗,重头再来很可惜。谢谢你的通俗解释,据我所知,在对动态数组单元的任何引用之前,最好将其ArrayResize到所需的限度,我将尝试一下。
请注意。只有对指示器缓冲区 来说,这就不需要做了。终端的执行子系统自己处理这个问题。
注2:ArrayResize()最好只在有必要改变动态数组的大小时应用,而不是在对其元素进行任何访问之前。很可能一个动态数组将被赋予一次大小,然后程序将简单地访问其项目。
请注意。只有对指示器缓冲区 来说,这就不需要做了。终端的执行子系统自己处理这个问题。
注2:ArrayResize()最好只在有必要改变动态数组的大小时应用,而不是在对其元素进行任何访问之前。很可能一个动态数组将被分配一次大小,然后程序将简单地访问其元素。