Resposta

Como lidar com o valor "NULL" deve ser simples? Assistente de EA

5 respostas

realizar agora

Assinante, bbp_participante, comunidade, 2 respostas.

Perfil da visita

6 anos atrás #195612

No passado, mudei os indicadores quando me deparei com esse problema, pois era mais rápido fazer isso do que postar no fórum, mas, desta vez, tenho um indicador que não tem o arquivo MQ4, apenas o exe, portanto, não posso alterá-lo e tenho que lidar com sua saída no EA Wizard. Há vários indicadores que eu gostaria de usar com um problema semelhante ao descrito abaixo, portanto, deve haver uma solução simples. Imagino que eu simplesmente não consiga encontrar o NULL/EMPTY no Assistente de EA, pois ele deveria estar lá.

O indicador tem dois buffers.

Output1=Longo
Output2=Curto

Condição longa #1
Output1=100
Output2=NULL/EMPTY

Condição curta #1
Output1=NULL/EMPTY
Output2=100

Condição curta #2
Output1=100
Output2=100

A condição curta #2 é a que dificulta as coisas.

Não posso simplesmente programar
if OutPut1 is100 then long
ou
Se OutPut2 for 100, então Short
Por causa da condição curta #2, em que ambos os buffers contêm o mesmo valor ao mesmo tempo, se eu fizesse o procedimento acima apenas quando a condição curta #2 fosse alterada para longa/curta, entendeu?

Eu deveria ser capaz de programar algo assim buffer1[0]==100 && buffer2[0]==NULL then long
No MQ4, você pode usar NULL ou EMPTY para condicionar onde está no EA Wizard, como faço para conseguir a mesma coisa? No passado, precisei disso várias vezes para outros indicadores com problemas semelhantes.

Como exatamente faço isso no Assistente de EA... lembre-se de que não posso reescrever o indicador, portanto, tenho que fazer isso no Assistente de EA.
Isso é o que preciso fazer para lidar com a condição curta #2. Tenho que inserir os 3 itens abaixo no Assistente de EA.

Condição longa#1
Output1=100 & Output2 = NULL then LONG

Condição curta #1
Output1=NULL e Output2=100

Condição curta #2
Output1=100 e Outpout2=100

Onde exatamente devo ir no Assistente do EA para fornecer um valor NULL/EMPTY para programar as três condições acima, conforme descrito? Se não houver acesso a NULL/EMPTY (não tenho certeza do motivo) para executar o que foi descrito acima, existe alguma outra maneira de escrever essas três condições para que sejam executadas corretamente no Assistente de EA? Isso deveria ser muito simples, portanto, acho que estou deixando passar alguma coisa quando me deparo com esse problema. Agradecemos a ajuda. Muito obrigado.

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

6 anos atrás #196080

Olá,

a versão atual não pode trabalhar com o valor NULL como você descreve. Poderíamos acrescentar isso ao Assistente 4 para que você possa adicionar essas condições quando indicadores personalizados forem usados. Acrescentarei isso às solicitações para a nova versão

0

realizar agora

Assinante, bbp_participante, comunidade, 2 respostas.

Perfil da visita

6 anos atrás #196901

Tomas262, obrigado pela resposta.

Já que o assistente atual do EA não pode trabalhar com valores NULL. Existe alguma solução alternativa que alguém possa imaginar? Deve haver uma maneira de fazer isso, pois o valor NULL é um valor identificável.

Por exemplo, se soubermos que Output1=NULL, talvez possamos contornar isso no EA existente de duas maneiras.

#1, eu poderia definir algo assim no EA IF Output1=99996666 (# específico para usar a pesquisa no editor do mt4) e, em seguida, pesquisar esse número e substituí-lo por NULL em vez do número, isso funcionaria?

#2 Talvez haja uma maneira de usar o assistente do EA como está agora, mas não tenho certeza de como o programaria. Se alguém pudesse dar um exemplo específico usando a interface, seria ótimo. O que estou pensando é o seguinte. Um NULL é vazio. Portanto, Output1 NÃO é maior que 0, não é menor que 0 e não é igual a 0. Isso funcionaria e como eu colocaria isso no assistente de EA existente?

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

6 anos atrás #196930

Olá,

talvez haja uma opção. Você teria que adicionar essa função ao arquivo Wizard / code / CustomFunction.mq4

void nullFunction() {
   return NULL;
}

Então, você poderá usar uma comparação como esta

Se "SomeIndicatorValue" = CustomFunction(nullFunction()) então ...

É uma ideia que ainda não testei, mas que poderia testar amanhã. Você pode fornecer um indicador que emita o valor NULL para que eu não tenha que procurar por algum 🙂

0

realizar agora

Assinante, bbp_participante, comunidade, 2 respostas.

Perfil da visita

6 anos atrás #197979

tomas262,

Desculpe-me por não ter recebido a notificação de que você respondeu. Neste momento, acho que vou esperar que o programa ofereça a opção NULL. Eu altero muito o código para ajustá-lo dentro do SQ EA Wiz, provavelmente será um grande incômodo ficar entrando e alterando.

 

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

6 anos atrás #197986

Ok, consideraremos a possibilidade de adicionar isso ao EA Wizard 4.

0

Visualizando 5 respostas - 1 até 5 (de um total de 5)