Discussão do artigo "Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte I). Conceito, gerenciamento de dados e primeiros resultados" - página 7

 
I take this opportunity to thank you for the excellent work. I'm finally starting to understand class creation.
 

Bem, estou estudando o código de acordo com a sua proposta de ir seguindo os passos.

No momento estou finalizando o estudo do Artigo 1.E parei logo após a  implementação do construtor de classe protegida.

Este trecho de código que enviei apresenta erro após compilação. Ele está no trecho que retorna a flag de fechamento da posição pelo TakeProfit.

Aparentemente o identificador 'Status' não está declarado. 

 

Нашел "проблему" .... Была между клавиатурой и компьютером ... МЕНЯ!

После вставки всех методов переменная была определена ...

Так как я еще не дошел до конца кода, то искал ошибку ... Но в последовательности переменная определена и все решено.

Извините за неудобства.

Спасибо

 
albertpess :

Bem, estou estudando o código de acordo com a sua proposta de ir seguindo os passos.

No momento estou finalizando o estudo do Artigo 1.E parei logo após a  implementação do construtor de classe protegida.

Este trecho de código que enviei apresenta erro após compilação. Ele está no trecho que retorna a flag de fechamento da posição pelo TakeProfit.

Aparentemente o identificador 'Status' não está declarado. 

So, somewhere they did something wrong. Missed something.

Just download the files attached to the article to your terminal folder and compile the EA.

And only then disassemble everything step by step as described in the article.

 
Artyom Trishkin:

So, somewhere they did something wrong. Missed something.

Just download the files attached to the article to your terminal folder and compile the EA.

And only then disassemble everything step by step as described in the article.

Obrigado.

 
Muito útil e bem feito! Muito obrigado
 
É muito bom.
 

Implementando o construtor de classe protegida:

//+------------------------------------------------------------------+
//| Construtor paramétrico fechado|
//+------------------------------------------------------------------+
COrder::COrder(ENUM_ORDER_STATUS order_status,const ulong ticket)
  {
//--- Salvar propriedades de inteiros
   m_ticket=ticket;
   m_long_prop[ORDER_PROP_STATUS]                              = order_status;
   m_long_prop[ORDER_PROP_MAGIC]                               = this.OrderMagicNumber();
   m_long_prop[ORDER_PROP_TICKET]                              = this.OrderTicket();

Olá, Artyom,

podemos usar:

m_long_prop[ORDER_PROP_TICKET] = (long)ticket; // ticket é o parâmetro passado.

 
Ming Ge # :
this. OrderTicket ();

Se

 this . OrderTicket ();

retorna o valor de m_ticket definido acima, então é possível.

Mas escrevi isso há tanto tempo que não consigo me lembrar imediatamente.

Dei uma olhada. Esse método grava o ticket na propriedade order:

 //+------------------------------------------------------------------+
 //| Возвращает тикет|
 //+------------------------------------------------------------------+
 long COrder::OrderTicket( void ) const 
  {
 #ifdef __MQL4__
   return ::OrderTicket();
 #else
   long res= 0 ;
   switch ((ENUM_ORDER_STATUS) this .GetProperty(ORDER_PROP_STATUS))
     {
       case ORDER_STATUS_MARKET_POSITION   :
       case ORDER_STATUS_MARKET_ORDER      :
       case ORDER_STATUS_MARKET_PENDING    :
       case ORDER_STATUS_HISTORY_PENDING   :
       case ORDER_STATUS_HISTORY_ORDER     :
       case ORDER_STATUS_DEAL              : res=( long )m_ticket;  break ;
       default                             : res= 0 ;               break ;
     }
   return res;
 #endif
   }

Decida por si mesmo se precisa substituí-lo por uma atribuição simples ou não.