错误、漏洞、问题 - 页 1437 1...143014311432143314341435143614371438143914401441144214431444...3184 新评论 Ilyas 2015.11.24 14:15 #14361 MathIsValidNumber Документация по MQL5: Математические функции / MathIsValidNumber www.mql5.com Математические функции / MathIsValidNumber - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Ilyas 2015.11.24 14:16 #14362 行为是不同的,由于MQL5代码的优化器更加积极。 Ilya Malev 2015.11.24 14:22 #14363 Ilyas: MathIsValidNumber 谢谢你,我不知道 Ilya Malev 2015.11.24 14:30 #14364 Ilyas: 由于MQL5代码的优化器更加积极,所以行为有所不同。 另外,MT4更聪明,给出了 "积分恒定溢出 "的警告,而MT5则无动于衷。 Slava 2015.11.24 15:35 #14365 Ilya Malev:1.为什么在MT4和MT5中,这段代码会导致不同的结果(而在MT4中更符合逻辑)?阅读文件EMPTY_VALUE 在MQL4中是什么意思? Прочие константы - Документация на MQL4 docs.mql4.com Прочие константы - Документация на MQL4 Vladimir Karputov 2015.11.24 16:43 #14366 Сергей Таболин:你能告诉我为什么下面这一行(第一次访问时)会出现 "超出范围 "的错误。 申报 - 已申报,但谁来填充缓冲区buf_ldn[ldn]? Dina Paches 2015.11.24 16:59 #14367 Сергей Таболин: 在第一次访问pr_open和pr_close时,看看它们的值。 Vladimir Pastushak 2015.11.24 16:59 #14368 Сергей Таболин: 这就是它,不是吗?还是我错过了什么?你声明了一个数组,但没有指定数组的大小...静态例子int buf_lup[1000], buf_ldn[20000]。 Maxim Khrolenko 2015.11.24 17:02 #14369 Сергей Таболин: 这就是补课的内容,不是吗?还是我错过了什么? 不,这不是一个数组填充。此外,如果ldn = 0;,通过将0放入[ ],你已经声明了数组中的0个元素,也就是说,那里甚至没有一个元素。阅读文章 《MQL5中的数组:MQL5编程的基础》。 Vladimir Karputov 2015.11.24 17:05 #14370 Сергей Таболин: 这就是补课的内容,不是吗?还是我错过了什么?你必须在填充前设置数组的大小。(ArrayRezise)。一个简单的例子。//+------------------------------------------------------------------+ //| Test.mq5 | //| Copyright © 2015, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2015, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" #property script_show_inputs input bool show_error=true; // true - выполнить с ишибкой //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int buf_ldn[]; // объявили динамический массив. Print("Размер массива buf_ldn[]=",ArraySize(buf_ldn)); // выведем на печать размер массива if(show_error) { //--- попытка присвоить значение элементу массива с индексом "0" вызовет ошибку: //--- Test (EURUSD,M15) array out of range in 'Test.mq5' (22,14) buf_ldn[0]=1; } else { //--- установим новый размер массива: ArrayResize(buf_ldn,1); //--- попытка присвоить значение элементу массива с индексом "0" НЕ вызовет ошибку: buf_ldn[0]=1; //--- выведем на печать размер массива и значение элемента с индексом "0" Print("Размер массива buf_ldn[]=",ArraySize(buf_ldn),", элемент с индексом ""0"" имеет значение:",buf_ldn[0]); } } //+------------------------------------------------------------------+ 附加的文件: Test.mq5 2 kb 1...143014311432143314341435143614371438143914401441144214431444...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MathIsValidNumber
由于MQL5代码的优化器更加积极,所以行为有所不同。
1.为什么在MT4和MT5中,这段代码会导致不同的结果(而在MT4中更符合逻辑)?
阅读文件
EMPTY_VALUE 在MQL4中是什么意思?
你能告诉我为什么下面这一行(第一次访问时)会出现 "超出范围 "的错误。
这就是它,不是吗?
还是我错过了什么?
你声明了一个数组,但没有指定数组的大小...
静态例子int buf_lup[1000], buf_ldn[20000]。
这就是补课的内容,不是吗?
还是我错过了什么?
这就是补课的内容,不是吗?
还是我错过了什么?
你必须在填充前设置数组的大小。(ArrayRezise)。一个简单的例子。