Precisa da ajuda de programadores e programadores MT4

 

Olá.

As novas construções de terminais MT4 não desinicializam e reinicializam EAs quando o utilizador altera os valores dos parâmetros de entrada. Isto leva a uma incompatibilidade fundamental dos EAs existentes com as novas construções do MT4. A incompatibilidade ocorre nos EAs mais optimizados onde todos os cálculos individuais são colocados em bloco init().

Chega mesmo ao ponto ridículo: para garantir a substituição do valor de algum parâmetro de entrada, o utilizador deve tirar o Expert Advisor da tabela e voltar a colocá-lo. (Não tentei carregar parâmetros de um ficheiro SET com um botão, mas suspeito que seja equivalente à substituição manual dos valores dos parâmetros).

Peço muito aos programadores do MT4 que tragam de volta a chamada das funções deinit(), init() ao senso comum.

Sinceramente.

PS Se alguém estiver ciente do mecanismo de determinação programática do momento e do facto de alteração dos valores dos parâmetros de entrada pelo utilizador, por favor escreva aqui sobre isso.

 
pelo menos mostrar a espingarda como prova.
 

Versão: 4.00 Build 670

(4 Jul 2014)

 
Wex:


As novas construções de terminais MT4 não desinicializam e reinicializam EAs quando o utilizador altera os valores dos parâmetros de entrada. Isto leva à incompatibilidade principal dos EAs existentes com novas construções de MT4. Os Expert Advisors mais optimizados, onde todos os cálculos individuais são colocados em bloco init(), estão sujeitos a incompatibilidade.

Eu tenho-os. Construir 670. Verificar com impressoras simples.
 
Wex:

Olá.

As novas construções de terminais MT4 não desinicializam e reinicializam EAs quando o utilizador altera os valores dos parâmetros de entrada. Isto leva a uma incompatibilidade fundamental dos EAs existentes com as novas construções do MT4. A incompatibilidade ocorre nos EAs mais optimizados onde todos os cálculos individuais são colocados em bloco init().

Chega mesmo ao ponto ridículo: para garantir a substituição do valor de algum parâmetro de entrada, o utilizador deve tirar o Expert Advisor da tabela e voltar a colocá-lo. (Não tentei carregar parâmetros de um ficheiro SET com um botão, mas suspeito que seja equivalente à substituição manual dos valores dos parâmetros).

Peço muito aos programadores do MT4 que tragam de volta a chamada das funções deinit(), init() ao senso comum.

Sinceramente.

PS Se alguém estiver ciente do mecanismo de determinação programática do momento e do facto de alteração dos valores dos parâmetros de entrada pelo utilizador, por favor escreva aqui sobre isso.

Este é um estratagema dos criadores de mercado :-7 para esvaziar as AA estabelecidas
 
IvanIvanov:
Este é um estratagema dos criadores de mercado :-7 para esvaziar os consultores estabelecidos
+
 
Não é possível reescrever a EA?
 

PS. (Não me parece que seja muito de língua em punho no fórum). EA em anexo. Tente alterar o valor do parâmetro A1 ou A2 na mosca. O tempo "passa" e a EA não "vê" os novos valores dos parâmetros. Embora, pode inicializá-lo premindo duas vezes o botão "AutoTrading". Naturalmente, isto é mais rápido do que tirar a EA da tabela e reinstalá-la. No entanto, é de alguma forma ilógico. No entanto, é a si que cabe decidir.

Claro que é muito mais fácil para mim fazer mudanças no meu Conselheiro Especialista do que esperar junto ao mar. Por conseguinte, vou fazer uma vez mais uma simples pergunta. Alguém sabe como obter informações sobre um utilizador que alterou o valor de um parâmetro de entrada em tempo real? Refiro-me ao facto de o valor ter mudado e o ponto no tempo.

Na realidade, as construções mais recentes do terminal MT4 são muito melhores do que as mais antigas. O valor do parâmetro é alterado neste caso quando a função Sleep() é executada. Isto é de facto um progresso. As construções antigas não permitiam alterar de todo os valores, ou melhor, nem sequer permitiam que o utilizador obtivesse a janela com parâmetros de entrada. Disse aos clientes que deveriam primeiro desactivar os EAs usando o botão no painel terminal, alterar os seus parâmetros e depois activar novamente os EAs. Mas agora o utilizador não tem obstáculos, ele tem a ilusão de que os parâmetros de entrada foram alterados. Além disso, o novo exemplo mostra que não só as cópias obtidas no bloco init(), mas também os parâmetros de entrada originais não são alterados no Expert Advisor, mas são alterados na janela de propriedades no separador Inputs. A discrepância é óbvia.

Arquivos anexados:
PROBLEM.mq4  2 kb
 
Wex:

PS. (Não pareço ser muito de língua torcida no fórum. EA em anexo. Tente alterar o valor do parâmetro A1 ou A2 em tempo real. O tempo "passa" e a EA não "vê" os novos valores dos parâmetros. Embora, pode fazê-lo inicializar premindo duas vezes o botão "AutoTrading". Naturalmente, isto é mais rápido do que tirar a EA da tabela e reinstalá-la. No entanto, é de alguma forma ilógico. No entanto, é a si que cabe decidir.

Claro que é muito mais fácil para mim fazer mudanças no meu Conselheiro Especialista do que esperar junto ao mar. Por conseguinte, vou fazer uma vez mais uma simples pergunta. Alguém sabe como obter informações sobre um utilizador que alterou o valor de um parâmetro de entrada em tempo real? Refiro-me ao facto de alterar o valor e o ponto no tempo.

Na verdade, as construções mais recentes do terminal MT4 são muito melhores do que as mais antigas. O valor do parâmetro é substituído neste caso quando a função Sleep() é executada. Isto é um progresso, é claro. As construções antigas não permitiam alterar de todo os valores, ou melhor, nem sequer permitiam que o utilizador obtivesse a janela com parâmetros de entrada. Disse aos clientes que deveriam primeiro desactivar os EAs usando o botão no painel terminal, alterar os seus parâmetros e depois activar novamente os EAs. Mas agora o utilizador não tem obstáculos, ele tem a ilusão de que os parâmetros de entrada foram alterados. Além disso, o novo exemplo mostra que não só as cópias obtidas no bloco init(), mas também os parâmetros de entrada originais não são alterados no Expert Advisor, mas são alterados na janela de propriedades no separador Inputs. A discrepância é óbvia.

Já tentou usar razões de desinicialização?

UninitializeReason()
REASON_PARAMETERS

Talvez estivesse a ler na diagonal... Mas eu uso ...

 
Wex:

PS. (Não pareço ser muito de língua torcida no fórum. EA em anexo. Tente alterar o valor do parâmetro A1 ou A2 na mosca. O tempo "passa" e a EA não "vê" os novos valores dos parâmetros. Embora, pode fazê-lo inicializar premindo duas vezes o botão "AutoTrading". Naturalmente, isto é mais rápido do que tirar a EA da tabela e reinstalá-la. No entanto, é de alguma forma ilógico. No entanto, é a si que cabe decidir.

Claro que é muito mais fácil para mim fazer mudanças no meu Conselheiro Especialista do que esperar junto ao mar. Por conseguinte, vou fazer uma vez mais uma simples pergunta. Alguém sabe como obter informações sobre um utilizador que alterou o valor de um parâmetro de entrada em tempo real? Refiro-me ao facto de o valor ter mudado e o ponto no tempo.

Na realidade, as construções mais recentes do terminal MT4 são muito melhores do que as mais antigas. O valor do parâmetro é alterado neste caso quando a função Sleep() é executada. Isto é de facto um progresso. As construções antigas não permitiam alterar de todo os valores, ou melhor, nem sequer permitiam que o utilizador obtivesse a janela com parâmetros de entrada. Disse aos clientes que deveriam primeiro desactivar os EAs usando o botão no painel terminal, alterar os seus parâmetros e depois activar novamente os EAs. Mas agora o utilizador não tem obstáculos, ele tem a ilusão de que os parâmetros de entrada foram alterados. Além disso, o novo exemplo mostra que não só as cópias obtidas no bloco init(), mas também os parâmetros de entrada originais não são alterados no Expert Advisor, mas são alterados na janela de propriedades no separador Inputs. A discrepância é óbvia.

O mesmo código, mas sem o laço dentro do início() funciona bem. Esse deve ser o problema.
Arquivos anexados:
PROBLEM.mq4  2 kb
 
Wex:

PS. (Parece que não sou grande coisa a fazer confusão no fórum.


Muito.

1. A língua MQL4 é dedicada a um fórum especial. Este não.

2. Não leu a documentação da MQL4, nem antiga nem nova