Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 618
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Pode dizer-me por que razão pode ser este o caso? :
Fun_1() e Fun_2() são semelhantes.
Pode dizer-me, por favor, o que poderá estar a causar isto? :
Fun_1() e Fun_2() são semelhantes.
do ponto de vista académico - as funções não são puras e mudam o estado global.
brevemente - ambas as funções lêem e escrevem uma variável ou ficheiro global.
do ponto de vista académico - as funções não são puras e mudam o estado global.
em resumo - ambas as funções lêem e escrevem uma variável ou ficheiro global.
Sim, cada um deles escreve um ficheiro. Então?
e não trabalham em conjunto :-)
PS. é impossível dizer com mais precisão sobre a fonte dos golpes subterrâneos sem fontes. Algures há um erro - corrige-o
Para poupar espaço e melhorar a percepção - numa só função. Continua a não funcionar.
para o futuro - se precisar de resultado de função (pelo menos trabalhado/não trabalhado), não o torne nulo. Com um olhar rápido é difícil determinar que existe um critério de "desencadeamento" - é nulo, não importa como se atira tudo é bom.
sobre os direitos do depurador:
Tem um monte de variáveis globais Count_XXX, Range_XXX, que converte (mais arrays dSSxx[]), utiliza-as para decidir se deve ou não fazer o registo e depois passa-as para algum lado, seja por referência ou por valor...
há obviamente algo de errado com o seu recálculo - o Count_dSS recebe 0 quando se chama de novo. A impressão pode ajudar a descobrir ou pontos de ruptura e a observar.
para o futuro - se precisar do resultado da função (pelo menos funcionou ou não), não o torne nulo. Num relance, é difícil determinar qual é o critério para "desencadeado" - é nulo, não importa como se atira, tudo é bom.
sobre os direitos do depurador:
tem um monte de variáveis globais Count_XXX, Range_XXX, que converte (mais arrays dSSxx[]), com base nelas decide se faz o registo ou não e depois passa algures por referência ou por valor...
há obviamente algo de errado com o seu recálculo - o Count_dSS recebe 0 quando se chama de novo. A impressão pode ajudar a descobrir ou pontos de ruptura e a observar.
Uma versão simplificada:
// Existem duas matrizes dinâmicas A[][2] e B[][2].
// estamos à procura de fósforos pelo índice de primeira dimensão "0".
// Matriz A Matriz B
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Queremos obter:
// Array dSSd[][4] Array dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
A que rechamada se refere?
Uma versão simplificada:
Estou a referir-me a uma função semelhante à primeira (que pode ser diferente em detalhe). Fez a mesma pergunta - porque é que estas funções funcionam individualmente, mas uma após a outra (independentemente da ordem) não funciona. Mais precisamente, apenas a primeira função funciona e regista algo.
bem - que se lixe o estado global, ou seja, a primeira chamada da primeira destas funções alterou quer as variáveis globais quer o conteúdo das arrays. Porquê? deveria saber melhor, porque deveria mudar ao escrever para um ficheiro:-) Honestamente - romper
Eu, por exemplo, acho-o difícil e relutante. Obter um depurador ou colocar já impressoras em todos os locais suspeitos. Compreende a lógica de nomenclatura e tem alguma ideia de como deve funcionar (embora não coincida com a realidade :-) ).
PS/ da explicação do que está na entrada e do que está fora, vejo que em vez de duas arrays dSSx[][4] é suficiente e uma dSS[][3] :-)
Estou a referir-me a uma função semelhante à primeira (que pode ser diferente em detalhe). Fez a mesma pergunta - porque é que estas funções funcionam individualmente, mas uma após a outra (independentemente da ordem) não funciona. Mais precisamente, apenas a primeira função funciona e regista algo.
Assim - o estado global é fodido, ou seja, a primeira chamada da primeira destas funções alterou as variáveis globais ou o conteúdo das arrays. Talvez saiba melhor por que razão o devem alterar ao escrever no ficheiro:-). Honestamente - romper
Eu, por exemplo, acho-o difícil e relutante. Obter um depurador ou colocar já impressoras em todos os locais suspeitos. Compreende a lógica de nomeação e tem alguma ideia de como deve funcionar (não coincidindo com a realidade :-) )
PS/ da explicação do que está na entrada e do que está fora, vejo que em vez de duas arrays dSSx[][4] é suficiente e uma dSS[][3] :-)