Problema dos Terminais Globais

 

Ei, pessoal

Eu tenho algo acontecendo que está prestes a me fazer dizer adeus à programação MT. O problema está na tentativa de definir os globos terminais. O que estou fazendo é algo parecido com isto:

BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);

O conjunto continua me dando um erro 4051. O primeiro parâmetro é uma string, o segundo um duplo, como deveria ser. O motivo pelo qual ele continua alegando que um tipo de parâmetro é inválido está além de mim. Ambos os parâmetros são do tipo correto. Não entendo porque está soprando um fusível quando os parâmetros estão corretos. Sou um desenvolvedor de software personalizado por profissão e tenho a intenção de adicionar aplicativos MT às minhas ofertas. Se a plataforma não for confiável, não vou tocá-la. Algo que só me fará parecer mal e sabotará meu negócio. Se alguém tem insights a oferecer, eu ficaria muito grato.

Muito obrigado,

Prof

 
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);

Retirar a dupla declaração. A GV já é dupla, portanto não há necessidade de declará-la novamente.



BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";

Esse código também é problemático. Alguém o apontará para você, se tiver tempo.

 
ProfessorMetal:

Ei, pessoal

Eu tenho algo acontecendo que está prestes a me fazer dizer adeus à programação MT. O problema está na tentativa de definir os globos terminais. O que estou fazendo é algo parecido com isto:

O conjunto continua me dando um erro 4051. O primeiro parâmetro é uma string, o segundo um duplo, como deveria ser. O motivo pelo qual ele continua alegando que um tipo de parâmetro é inválido está além de mim. Ambos os parâmetros são do tipo correto. Não entendo porque está soprando um fusível quando os parâmetros estão corretos. Sou um desenvolvedor de software personalizado por profissão e tenho a intenção de adicionar aplicativos MT às minhas ofertas. Se a plataforma não for confiável, não vou tocá-la. Algo que só me fará parecer mal e sabotará meu negócio. Se alguém tem insights a oferecer, eu ficaria muito grato.

Muito obrigado,

Prof

Eu não tenho nenhum problema com este código:

string BuyEntrySignalGiven = Symbol() + "BuyEntrySignalGiven";
GlobalVariableSet(BuyEntrySignalGiven, (double) 1.0);     
Qual construção você está usando? Como reproduzir seu problema ?
 
Estou pensando que é uma construção mais antiga.
 

O elenco duplo não estava originalmente lá. Eu acrescentei isso por causa do erro. O segundo parâmetro é suposto ser um duplo. Meu histórico é C++/C# e eu esperava simplesmente colocar o argumento como 1,0 seria suficiente. Eu adicionei o elenco porque a chamada falhou e não tinha certeza se era alguma idiossincrasia da MQL4. Já vi que a MQL4 nem sempre joga de acordo com as regras esperadas. Quanto à atribuição das cordas, tenho outro indicador que escrevi que segue o mesmo formato e funciona perfeitamente. Não consigo ver nada de problemático aí. Symbol() retorna uma string, a concatenação é com uma string, o que é perfeitamente aceitável, e a variável à qual a expressão está sendo atribuída é também uma string. A única coisa que posso ver que pode ser um problema é concatenar o símbolo do par com uma string que é a mesma que o nome GV. Isso não deve importar porque a string "terminada" não é a mesma que o nome do GV. Talvez seja esse o problema. Se é, por que não dizer apenas isso?

De qualquer forma, obrigado pela resposta.

Prof

 

Na verdade, MetaQuotes disse que você não pode esperar o estilo e as regras de codificação C++/C# na MQL4/5.


A propósito, você não respondeu à pergunta do moderador.

 

Interessante, rapazes. Estou executando o Build 646. Eu não acho que esse seja o problema. Acho que acabei de descobrir. Sou eu que estou sendo cansado e estúpido. Os nomes GV são definidos em um método que eu pretendia chamar da OnStart() e não o fiz. DUH! Dê um tapa no americano idiota e diga a ele para ir para a cama e dormir um pouco antes que ele tente mais codificar. Estive acordado por cerca de 36 horas. Vocês definitivamente me ajudaram, inspirando-me a dar um passo atrás e dar outra olhada no que eu estava fazendo. Muito obrigado e boa noite, bom dia - o que quer que seja onde você esteja :-)

Prof

 
Eu respondi, deysmacro. Você não me deu tempo de resposta para aparecer. Como eu disse, é basicamente um não problema. O problema foi um erro de principiante da minha parte devido ao cansaço. BTW, eu sei que nem tudo na MQL4/5 funciona da mesma forma que em C++/C#. Lembro-me, no entanto, de ver uma declaração no sentido de que parte da intenção com as mudanças na MQL4/5 é torná-la mais parecida com C++. A documentação poderia ser um pouco melhor organizada e mais completa. Para ser justo, o mesmo pode ser dito da Microsoft.
 
Na verdade, é bastante simples. Se eles lhe ensinarem ou colocarem uma documentação completa, em algum momento, ... ... ... ...
 

Para ser justo com a MetaQuotes, o que eles estão fazendo não é trivial. Eu suspeito que ensinar a si mesmo será sempre a norma. Para ser honesto, isso é o mesmo que o curso para um desenvolvedor profissional. Ele vem com o território. Documentação e interação com outros desenvolvedores é normalmente o único "ensino" que você vai receber. C'est la vie. :-)

Ainda estou tentando descobrir como fazer a nova depuração para a MQL4 funcionar. Eu segui o que eu pensava que a documentação me dizia para fazer. Quando tentei iniciar o depurador, apareceu uma janela H1 e o diálogo de propriedades para o indicador que eu estava tentando depurar. Quando saí bem do diálogo, o depurador fechou e a janela desapareceu. Ah, bem. Esse é um tópico para outro tópico, eu suspeito.

 
ProfessorMetal:

Para ser justo com a MetaQuotes, o que eles estão fazendo não é trivial. Eu suspeito que ensinar a si mesmo será sempre a norma. Para ser honesto, isso é o mesmo que o curso para um desenvolvedor profissional. Ele vem com o território. Documentação e interação com outros desenvolvedores é normalmente o único "ensino" que você vai receber. C'est la vie. :-)

Ainda estou tentando descobrir como fazer a nova depuração para a MQL4 funcionar. Eu segui o que eu pensava que a documentação me dizia para fazer. Quando tentei iniciar o depurador, apareceu uma janela H1 e o diálogo de propriedades para o indicador que eu estava tentando depurar. Quando saí bem do diálogo, o depurador fechou e a janela desapareceu. Ah, bem. Esse é um tópico para outro tópico, eu suspeito.


Foi um bug duradouro, que poderia ter sido evitado quando você selecionou outro painel do diálogo de entrada do que as entradas de entrada. Então a próxima execução foi bem sucedida. Com o 646, parece ter sido corrigido. Infelizmente, não há muitas informações deste tipo neste site. Normalmente, a maioria dos problemas termina com "report to service desk" sem nenhum traço adicional.

Razão: