Precisa da ajuda de programadores e programadores MT4 - página 2

 
stringo:

Muito semelhante.

1. A língua MQL4 tem um fórum dedicado. Este não.

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

Em vez de dar uma ligação a algo útil, atira-se porcaria para cima do homem.

O ilógico é óbvio. O utilizador pode (ao contrário das construções anteriores) alterar os parâmetros de entrada, e os novos valores são visíveis no separador Inputs, mas na realidade não mudam. O Expert Advisor tem um controlo total da situação, mas o sistema não dá os valores actualizados dos parâmetros, e o utilizador tem a ilusão de ter alterado os parâmetros de entrada.

artmedia70, obrigado. Vou tentar. Mas tenho quase a certeza de que não vai ajudar. A desinicialização não está a acontecer. É possível analisar as razões para a desinicialização que não aconteceram? (Nenhum registo no diário de bordo).

Não tinha certamente ilusões sobre alguém que me ajudasse aqui. Mas francamente falando, não esperava que os criadores fizessem vista grossa a uma coisa bastante óbvia. Claro, como é que um programador admitiria que se trata de um bug de software? É mais fácil culpar o utilizador por orquestrar algum laço "não politicamente correcto". Também diriam que eu indentifiquei o texto incorrectamente e não fiz comentários. Este laço funciona perfeitamente, e é simplesmente insubstituível nesses esquemas, que me foram encomendados por alguns clientes. Mas a inicialização de novos valores de parâmetros de entrada, que foram prontamente alterados pelo utilizador, não funciona. E, chamando a uma pessoa "lixo" e "analfabeta" (alegadamente não lendo documentação), não se refuta o facto de que a inicialização [de parâmetros com novos valores] não funciona.

(E depois, mais uma vez, talvez esteja a confundir causa com efeito? Os "ganchos" devem estar sempre presentes sem serem notados, para facilitar a vida aos utilizadores).

 

Desculpem a postagem em inglês, mas penso que compreenderão.

Está a usar um loop infinito, por isso é claro que o init/deinit não é chamado. Uma EA é um único fio, por isso mesmo que os eventos de init/deinit sejam colocados na fila de processamento, não se deixa uma ocasião para a executar.

 
Wex:

Em vez de dar uma ligação a algo útil, basta atirar porcaria para cima da pessoa.

O ilógico é óbvio. O utilizador tem uma oportunidade (ao contrário de construções anteriores) de alterar os parâmetros de entrada, e os novos valores são visíveis no separador Inputs, mas na realidade não mudam. O Expert Advisor tem o controlo total da situação, mas o sistema não lhe dá os valores actualizados dos parâmetros, e o utilizador tem a ilusão de ter alterado os parâmetros de entrada.

artmedia70, obrigado. Vou tentar. Mas tenho quase a certeza de que não vai ajudar. A desinicialização não está a acontecer. É possível analisar as razões para a desinicialização que não aconteceram? (Nenhum registo no diário de bordo).

Não tinha certamente ilusões sobre alguém que me ajudasse aqui. Mas francamente falando, não esperava que os criadores fizessem vista grossa a uma coisa bastante óbvia. Claro, como é que um programador admitiria que se trata de um bug de software? É mais fácil culpar o utilizador por orquestrar algum laço "não politicamente correcto". Também diriam que eu indentifiquei o texto incorrectamente e não fiz comentários. Este laço funciona perfeitamente, e é simplesmente insubstituível nesses esquemas, que alguns clientes encomendam para mim. Mas a inicialização de novos valores de parâmetros de entrada, que foram prontamente alterados pelo utilizador, não funciona. E, chamando a uma pessoa "lixo" e "analfabeta" (alegadamente não lendo documentação), não se refuta o facto de que a inicialização [de parâmetros com novos valores] não funciona.

(E depois, mais uma vez, talvez esteja a confundir causa com efeito? Os "ganchos" devem estar sempre presentes sem serem notados, para facilitar a vida aos utilizadores).

Experimente;)
 
angevoyageur:

Desculpem a postagem em inglês, mas penso que compreenderão.

Está a usar um loop infinito, por isso é claro que não são chamados init/deinit. Uma EA é um único fio, por isso mesmo que os eventos de init/deinit sejam colocados na fila de processamento, não se deixa uma ocasião para a executar.

Bem, pode ser.

 
Wex:

Bem, se o Expert Advisor estiver em loop e realmente não chamar a desinicialização do loop, então tente interrogar alterações dos parâmetros de entrada no OnChartEvent().

Por exemplo, exibir os parâmetros necessários por objectos no gráfico. Ao clicar num parâmetro(CHARTEVENT_OBJECT_CLICK) chama o campo de entrada LabelEdit, onde introduz novos parâmetros(CHARTEVENT_OBJECT_ENDEDIT) e envia-os ao especialista através do evento do utilizador(CHARTEVENT_CUSTOM+n), em especialista interroga eventos e reage a alterações dos parâmetros de entrada.

 
artmedia70:

Bem, se o perito estiver em loop, e isso realmente não causar um ciclo de desinicialização tente OnChartEvent () para organizar uma sondagem de alteração dos parâmetros de entrada.

Por exemplo, as opções que deseja exibir um objecto no gráfico. Clicando na opção (CHARTEVENT_OBJECT_CLICK) provoca o campo de entrada LabelEdit, onde introduz novos parâmetros ( CHARTEVENT_OBJECT_ENDEDIT ) e envia-os ao perito pelo evento do utilizador (CHARTEVENT_CUSTOM + n), o perito em eventos de sondagem e reage a alterações nos parâmetros de entrada.

Não vai funcionar. O mesmo problema, a sua EA está num loop infinito, nenhum manipulador de eventos será executado.
 
angevoyageur:
Não vai funcionar. O mesmo problema, a sua EA está num loop infinito, nenhum manipulador de eventos será executado.
A sério? Eu não sabia ... Nunca escrevi peritos em loop com OnChartEvent()...
 
stringo:

Muito semelhante.

1. A língua MQL4 tem um fórum dedicado. Este não.

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

1. Ao instalar o terminal MetaTrader4 na janela de instalação, há um convite para um fórum, este fórum e não outro.

2. A meio caminho da nova fiche. No passado, a janela de propriedades da EA em loop não se abria. Agora sim, e eu gostaria que a janela reagisse às mudanças de parâmetros. Ou não abrir a janela de propriedades, de modo a não confundir o utilizador.

 
Wex, use um temporizador, pode dispensar o looping agora.
 
Integer:

1. Ao instalar o terminal MetaTrader4 na janela de instalação há um convite para o fórum, este fórum e não outro.

2. A meio caminho da nova fiche. No passado, a janela de propriedades da EA em loop não se abria. Agora sim, e eu gostaria que a janela reagisse às mudanças de parâmetros. Ou a janela de propriedades não pode ser aberta, para evitar confundir o utilizador.

1. Veja-se o perfil de Wex. É um programador profissional MQL4. Ele faz-se de tolo. Ou está a andar à corrico. Não é claro porquê.

2. é preciso pensar bem. Não se pode terminar o laço à força com a chegada de novos parâmetros. Algo como a função IsNewParameter que deve ser chamada pelo próprio programador no loop infinito