Erros, bugs, perguntas - página 2000
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
E não faz sentido fazer isto já na OnCalculate. Não há razão para inicializar a matriz com algo e depois preenchê-la com alguns valores da fórmula? Quando se adiciona uma barra, e respectivamente uma célula de matriz, de que serve enchê-la com algo e depois imediatamente com um valor da fórmula ou um valor vazio?
Isto se a fórmula for aplicada em todas as barras. E se se aplicar apenas à última? Eu, por exemplo, tenho muitos índices que me permitem definir o número de barras a calcular, uma vez que os cálculos podem ser pesados. A inicialização é necessária.
Em geral, se não o queres fazer, não o faças. Já não estou a discutir mais o assunto. ;-)
Portanto, não se trata de ArrayResize, mas sim de ArrayInitialize. O ArrayResize garante zeros em MT4.
E se o ler com atenção? Deixe-me citá-lo novamente.
Inicialização de um array com expressãoArrayInitialize(array, init_val) não significa inicialização de elementos da reserva atribuída a este array com o mesmo valor. Quando a função ArrayResize() aumenta subsequentemente o tamanho do array dentro da reserva actual, os elementos cujos valores não são definidos e na maioria das vezes não são iguais ainit_val são adicionados ao fim do array.
E se o ler com atenção? Vou citá-lo novamente.
Inicialização de um array com expressãoArrayInitialize(array, init_val) não significa inicialização de elementos da reserva, atribuídos a este array. Quando a função ArrayResize() aumenta subsequentemente o tamanho do array dentro da reserva actual, os elementos cujos valores não são definidos e na maioria das vezes não são iguais ainit_val são adicionados ao fim do array .
E porquê inventar cenários tão irrealistas, essencialmente erros de programador MQL? Obviamente, a inicialização completa só é feita uma vez, ou se for detectada uma descarga de dados. Nesse caso, seria feito de forma mais eficiente pelo núcleo.
Onde é que eu disse sobre a dupla inicialização? Mais ou menos o mesmo, acima mencionado, preenchimento de todos os elementos de um loop, de que falava. Se estiver presente, a inicialização é desnecessária e apenas desperdiça recursos.
Bem, se não estiver a contar todas as barras, então trate você mesmo de encher com zeros.
Isto se a fórmula for aplicada em todas as barras. E se se aplicar apenas à última? Eu, por exemplo, tenho muitos índices que me permitem definir o número de barras a calcular, uma vez que os cálculos podem ser pesados. A inicialização é necessária.
Em geral, se não o queres fazer, não o faças. Já não estou a discutir mais o assunto. ;-)
Aqui estão as palavras de ouro... Mas é melhor dizer "onde não for preciso, não o faremos". Ou vice versa "só o faremos onde for necessário".
Apenas novos elementos de matriz são inicializados. E a questão continua a ser a mesma - resultados idênticos de corrida em corrida, mesmo que haja um erro no código (muitas vezes não o seu).Dei um exemplo com a biblioteca matemática acima.
O lixo é mau.
Nem sequer consigo encontrar palavras decentes para o comentar.
Se lhe pedirem para se manchar com ele... Acho que não iriam alinhar. Digamos que na primeira vez não sabe o que é, depois na segunda vez?
Porque pede aos criadores que o protejam da porcaria? Proteja-se. Ou se tiver argumentos irrefutáveis de que é necessário, então não os esconda do público.
Sabe, o mql3 era um lugar onde se podia escrever tantos erros que se fazia o cabelo em pé... Mas a EA não importa, funciona na mesma... Funciona bem? Quem se importa?
Por alguma razão não há qualquer argumento sobre ir para fora da matriz. E parece que este é um mal menor do que o lixo de uma matriz ou variável. Bem, já não temos um índice como costumava ser, por isso, estejam à vontade e vamos continuar a trabalhar. mãos, vamos voltar ao trabalho. Está tudo resolvido...
Então porque é que está a exigir que os criadores o protejam da porcaria? Proteja-se. Ou se houver argumentos convincentes para o fazer, então não os esconda do público.
Não houve exigências, a irrefutabilidade é demonstrada.
Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais
Insectos, insectos, perguntas
fxsaber, 2017.09.12 16:17
Em MT4, voltará sempre a ser falso, porque sem lixo é tudo zeros. Em MT5 é verdade.
Assim, o mesmo código no testador MT4 mostrará sempre resultados idênticos de corrida para corrida. Num testador MT5, não o fará.
Não havia nenhum requisito, a irrefutabilidade é demonstrada
Quem proíbe a adição de apenas uma linha?
Ou não sabe que falso é 0, tudo o resto é verdade independentemente do sinal? Tira valores das reservas de matriz e quer certificar-se de que há 0. Bem, nesse caso é razoável inicializar a matriz com zeros, mas porquê sobrecarregar o sistema com a nulidade forçada quando não é necessário?
Desculpe, mas este exemplo é um perfeito disparate.
Quem proíbe a adição de apenas uma linha?
Isto não se trata de mim.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Insectos, insectos, perguntas
fxsaber, 2017.09.12 16:52
É horrível pensar que alguma biblioteca matemática (incluindo\Math -7Mb código-fonte) não tenha sido rubricada em um/dois lugares! E como desenterrar este erro, que no MT5 tester dá diferentes corridas únicas e no MT4 as mesmas corridas?
Não se trata de mim.
A única coisa a fazer é desistir de todas as outras bibliotecas de pessoas. E eu nunca olhei ou usei nenhuma dessas bibliotecas. É mais fácil escrever tudo o que precisa do que escavar através de uma pilha para verificar a existência de insectos... E para usar apenas duas ou três funções...