Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1794

 

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta de novatos sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos

MakarFX, 2021.12.06 12:14

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }

E no caso de um erro, qual será o retorno de sua função, verdade?

 
Mihail Matkovskij #:

E no caso de um erro, qual será o retorno de sua função, verdade?!

Que erro? Dê-me um exemplo.
 
MakarFX #:

Isto, sim, deve funcionar.

 
Nerd Trader #:

Você está falando de mudança de cor via propriedade? Eu tenho essa variante, preciso entender porque esta não funciona.

Funciona, mas reage a qualquer OnChartEven, ou seja, elimina ->cria com preço "0"->cria com o cursor. Daí a cintilação

 
Nerd Trader #:

Você está falando de mudança de cor através de uma propriedade? Eu tenho essa opção, preciso entender porque ela não funciona.

Não. É para que os objetos não tremulem e apareçam/desapareçam, não saltem como escaldados e a CPU não fique ruidosa ao mesmo tempo...

Então, o que está errado, quando o objeto na janela principal é "0", sua função retornará falsa? Explicar o ponto com>=0... ou igual a zero.

Veja com cuidado.

if (ObjectFind(chart, name) >= 0)

Em que faixa de valores a condição voltará a ser verdadeira?

 
MakarFX #:
Que erro? Dê um exemplo.

O que geralmente é verdade? Qualquer coisa que não seja 0 (eu mencionei acima). E você só tem verdadeiro quando a condição retorna falso a 0. O objeto está no porão (ObjectFind(ch, nome) > 0) - falso. Mas o erro (-1) é verdadeiro.

Portanto, aqui está a variante correta:

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
 
Mihail Matkovskij #:

Não. É para que os objetos não tremulem e apareçam/desapareçam, saltem como escaldados e a CPU não faça barulho...

Preste muita atenção.

Em que faixa de valores a condição voltará a ser verdadeira?

E se
ObjectFind(chart, name)=-1

o que então?

 
MakarFX #:

Funciona, mas reage a qualquer OnChartEven, ou seja, elimina ->cria com preço "0"->cria com o cursor. Daí a cintilação.

por quê? Por que isso não acontece para a linha verde? As condições são idênticas apenas inversas (preço > Perguntar) para amarelo e (preço < Lance) para verde.


Mihail Matkovskij #:

Impede que os objetos cintilem e apareçam/desapareçam, saltando como animais escaldados e ruído de CPU...

Por algum motivo, as linhas verde e vermelha têm apenas uma cópia e não cintilam quando o cursor é movido.


Mihail Matkovskij #:

Veja com cuidado.

Em que faixa de valores a função retornará à realidade?

de zero para cima?
 
Mihail Matkovskij #:

O que geralmente é verdade? Qualquer coisa que não seja 0 (eu mencionei acima). E você só tem verdade quando a condição retorna falsa com um valor de 0.

Olhe novamente com atenção

 
MakarFX #:

Olhe novamente com atenção.

Emendou a mensagem. Teste sua função e a minha com identificação incorreta do gráfico e quando o objeto é criado na subjanela. E veja o que sua função retornará e o que a minha retornará. E leia a documentação cuidadosamente. Todos os links e citações são fornecidos acima.

Razão: