Discussão do artigo "Biblioteca para criação simples e rápida de programas para MetaTrader (Parte XXVII): trabalho com ordens de negociação - posicionamento de ordens pendentes" - página 5

 
Реter Konow:
Tudo dá certo e funciona bem. Cada um tem a sua opinião.
Estou lendo artigos e não consigo encontrar o "gerador de entidades" - o princípio pelo qual tudo isso é feito. Estou tentando aprender a pensar dessa forma e a entender por que penso de forma diferente. E qual é a vantagem de pensar de forma diferente (se houver alguma). Também contei a Artyom sobre o esquema da biblioteca.


Em essência, o esquema é tão simples quanto três rublos. É estranho que ele seja necessário.
Mas se você desenhar todas as inter-relações, é mais provável que confunda o leitor. Afinal de contas, muitos objetos usam os dados de seus vizinhos. Mas todos eles estão em suas próprias coleções. E as coleções estão na base do CEngine. E quando houver funções de usuário, haverá dois pontos de acesso à biblioteca. E haverá ainda mais conexões.
 
Artyom Trishkin:
O esquema é tão simples quanto três rublos. É estranho que ele seja necessário.
Mas se você desenhar todas as inter-relações, é mais provável que confunda o leitor. Afinal de contas, muitos objetos usam os dados de seus vizinhos. Mas todos eles estão em suas próprias coleções. E as coleções estão na base do CEngine. E quando houver funções de usuário, haverá dois pontos de acesso à biblioteca. E haverá ainda mais conexões.
Bem, vamos ler e estudar os meandros...)
 
//+------------------------------------------------------------------+
//| Comparar objetos CPendingReq por propriedades
//+------------------------------------------------------------------+
int CPendingReq::Compare(const CObject *node,const int mode=0) const
  {
   const CPendingReq *compared_req=node;
   return
     (
      //--- Comparar por ID
      mode==0  ?  
      (this.ID()> compared_req.ID() ? 1 : this.ID()< compared_req.ID() ? -1 : 0)   :
      //--- Comparar por tipo
      (this.Type()> compared_req.Type() ? 1 : this.Type()< compared_req.Type() ? -1 : 0)
     );
  }
//+------------------------------------------------------------------+

Type ou Id não podem ser iguais?

 
BillionerClub:

Type ou Id não podem ser iguais?

Não estou entendendo o significado da pergunta. Por favor, esclareça-a.

 
Artyom Trishkin:

Não estou entendendo o significado da pergunta. Por favor, esclareça.

Ao comparar, sempre há uma situação em que a igualdade é possível

this.Type()>=compared_req.Type()
 
BillionerClub:

Quando você compara, sempre há uma situação em que a igualdade é possível.

Aqui, três condições são verificadas:

this.Type()>compared_req.Type() ? 1 : this.Type()<compared_req.Type() ? -1 : 0

Maior que (1), menor que (-1), resto (0)

 
Artyom Trishkin:

Três condições são testadas aqui:

Maior que (1), menor que (-1), resto (0)

Cara, eu era um tolo e não vi o significado do código)))