Erros, bugs, perguntas - página 1437 1...143014311432143314341435143614371438143914401441144214431444...3184 Novo comentário Ilyas 2015.11.24 15:15 #14361 MathIsValidNumber Документация по MQL5: Математические функции / MathIsValidNumber www.mql5.com Математические функции / MathIsValidNumber - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Ilyas 2015.11.24 15:16 #14362 O comportamento é diferente, devido a um optimista mais agressivo para o código MQL5. Ilya Malev 2015.11.24 15:22 #14363 Ilyas: MathIsValidNumber Obrigado, eu não sabia Ilya Malev 2015.11.24 15:30 #14364 Ilyas: O comportamento é diferente devido a um optimizador mais agressivo para o código MQL5. Também MT4 era mais inteligente e dava um aviso de "transbordo constante integral", enquanto MT5 se mantinha em silêncio. Slava 2015.11.24 16:35 #14365 Ilya Malev: 1. Porque é que em MT4 e MT5 este código leva a resultados diferentes (e mais lógicos em MT4)?Ler documentaçãoO que significa EMPTY_VALUE na MQL4? Прочие константы - Документация на MQL4 docs.mql4.com Прочие константы - Документация на MQL4 Vladimir Karputov 2015.11.24 17:43 #14366 Сергей Таболин: Pode dizer-me porque é que a seguinte linha (quando acedida pela primeira vez) dá um erro "fora de alcance": Declare - declarado, mas quem irá preencher o buffer buf_ldn[ldn]? Dina Paches 2015.11.24 17:59 #14367 Сергей Таболин: Veja os valores de pr_open e pr_close na primeira vez que são acedidos. Vladimir Pastushak 2015.11.24 17:59 #14368 Сергей Таболин: isso é o preenchimento, não é?Ou está-me a escapar alguma coisa?Declarou uma matriz mas não especificou um tamanho de matriz...Exemplo estáticoem buf_lup[1000], buf_ldn[20000]; Maxim Khrolenko 2015.11.24 18:02 #14369 Сергей Таболин: isso é o preenchimento, não é?Ou está-me a escapar alguma coisa? Não, não é um preenchimento de matriz. Além disso, se ldn = 0;, ao colocar 0 em [ ] declarou 0 elementos na matriz, ou seja, não há sequer um elemento lá. Leia o artigo Arrays in MQL5: Fundamentals of MQL5 Programming. matriz estática ? [ARQUIVO!] Qualquer pergunta de MQL5 O compilador não Vladimir Karputov 2015.11.24 18:05 #14370 Сергей Таболин: isso é o preenchimento, não é?Ou está-me a escapar alguma coisa?É necessário definir o tamanho do conjunto antes de o preencher. (ArrayRezise). Um exemplo simples://+------------------------------------------------------------------+ //| 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]); } } //+------------------------------------------------------------------+ Arquivos anexados: Test.mq5 2 kb 1...143014311432143314341435143614371438143914401441144214431444...3184 Novo comentário
MathIsValidNumber
O comportamento é diferente devido a um optimizador mais agressivo para o código MQL5.
1. Porque é que em MT4 e MT5 este código leva a resultados diferentes (e mais lógicos em MT4)?
Ler documentação
O que significa EMPTY_VALUE na MQL4?
Pode dizer-me porque é que a seguinte linha (quando acedida pela primeira vez) dá um erro "fora de alcance":
isso é o preenchimento, não é?
Ou está-me a escapar alguma coisa?
Declarou uma matriz mas não especificou um tamanho de matriz...
Exemplo estáticoem buf_lup[1000], buf_ldn[20000];
isso é o preenchimento, não é?
Ou está-me a escapar alguma coisa?
isso é o preenchimento, não é?
Ou está-me a escapar alguma coisa?
É necessário definir o tamanho do conjunto antes de o preencher. (ArrayRezise). Um exemplo simples: