Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1414
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
ou fazer uma função de impressão de matriz separada:
E chame-a de qualquer lugar
Alexey, estou em silêncio há muito tempo, mas não consigo ver isso silenciosamente... Por que usar IntegerToString() quando uma conversão do tipo explícito neste caso é muito mais fácil e menos cara...
dunno, hábito :)
ou fazer uma função de impressão de matriz separada:
E chame-a de qualquer lugar
Muito obrigado por sua compreensão e esclarecimento. Estou fazendo uma pausa para estudar e entender as informações que são novas para mim.
Alexey, estou em silêncio há muito tempo, mas não consigo vê-lo em silêncio... Por que usar IntegerToString() quando uma conversão do tipo explícito neste caso é muito mais fácil e menos cara...
E obrigado também por seus valiosos acréscimos.
Você pode me dizer onde procurar e ler sobre como criar uma janela externa para a EA?
no fórum e em publicações sobre C#, Delphi e tudo mais...
ou fazer uma função de impressão de matriz separada:
E chame-a de qualquer lugar
Eu decidi fazer uma função de impressão de matriz personalizada separada. Ou melhor, não faça um, use o ( PrintArray() ) O que você já fez.
O que eu fiz?
Eu coloquei a chamada para a função PrintArray() do usuário dentro da função OnTick()... como descrito no tutorial de Kovalev.
2. coloquei o corpo da função PrintArray() fora da função OnTick()... ... como descrito no tutorial de Kovalev.
Todas as novas variáveis do corpo desta função são locais. Eles são declarados e inicializados dentro desta função.
Eu não fiz nenhuma mudança em sua função. Mas o compilador dá 6 erros por alguma razão. E todos eles estão relacionados à função do usuário.
Ficar-lhe-ia muito grato se pudesse me dizer o que eu fiz de errado.
Obrigado.
Eu decidi fazer uma função de impressão de matriz personalizada separada. Ou melhor, não fazer um, usar o um ( PrintArray() ) O que você já fez.
O que eu fiz?
Eu coloquei a chamada para a função PrintArray() do usuário dentro da função OnTick()... como descrito no tutorial de Kovalev.
2. coloquei o corpo da função PrintArray() fora da função OnTick()... ... como descrito no tutorial de Kovalev.
Todas as novas variáveis do corpo desta função são locais. Eles são declarados e inicializados dentro desta função.
Eu não fiz nenhuma mudança em sua função. Mas o compilador produz 6 erros por alguma razão. E todos eles se relacionam com uma função do usuário.
Serei muito grato a você se me disser o que fiz de errado.
Obrigado.
Não me lembro exatamente e sou preguiçoso demais para verificá-lo. Tente adicionar colchetes
Aleksei Stepanenko:
Acho que finalmente descobri (sou um pouco lerdo) ......
Na primeira iteração, a string variável String está vazia. Os caracteres =+ instruem a String a se atribuir vazia (sem valores) e a se atribuir vazia adiciona uma string com valores, a saber"--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+",";;";. O valor desta cadeia é " --LoY[0]--, --1,6104-- ". Após estas operações , str recebe o valor "--LoY[0]--, --1,6104--" na primeira iteração. Como eu entendi em sua terminologia, este é chamado de primeiro elemento.
Na segunda iteração, str já tem o primeiro elemento com o valor " --LoY[0]--, --1. 6104-- " Os caracteres =+ instruem o strt a se atribuir com o valor do primeiro elemento e a se com o valor do primeiro elemento, acrescente uma cadeia com outros valores, a saber "--LoY["+"+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+",";;"; "+DoubleToString(LoY[r],4)+". O valor desta cadeia já é " --LoY[1]--, --1,6105--". Após estas operações, str recebe o valor"--LoY[0]-- --1,6104-- --LoY[1]-- --1,6105--" na segunda iteração.Ou seja, str tem o segundo elemento e na trigésima iteração str vai conter 30 elementos com valores diferentes dos elementos da matriz.
Quando o laço terminar, a string variável String com 30 itens será impressa uma vez fora do laço.
Demorei muito tempo para descobrir este algoritmo porque quando você estava falando sobre adição eu prestei atenção apenas ao sinal vermelho mais "--LoY["+IntegerToString(r)+"]--,"+DoubleToString(LoY[r],4)+", e não ao str+=
Portanto, ainda é um mistério para mim qual o papel que aqueles vales vermelhos "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+" desempenham neste algoritmo
Obrigado por sua ajuda.
Não me lembro exatamente, e sou preguiçoso demais para verificar. Tente adicionar colchetes
Adicionei colchetes vazios PrintArray(double &eArray[]) O compilador não mostrou nenhum erro ou aviso.
MAS..... a função Print() não imprimiu uma única vez por alguma razão.
Compreendo sua preguiça, porque eu mesmo sou assim. Se você não for muito preguiçoso e meu entusiasmo o substituir, ficarei grato se você me disser o que mais está errado com a função personalizada.
Obrigado por sua ajuda e desculpe pelo inconveniente.