Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte I): Concepto, organización de datos y primeros resultados" - página 7

 
Aprovecho esta oportunidad para darles las gracias por su excelente trabajo. Por fin empiezo a entender la creación de clases.
 

Bueno, estoy estudiando el código según tu propuesta de seguir los pasos.

En este momento estoy finalizando el estudio del artículo 1. Y me detuve justo después de la implementación del constructor de la clase protegida.

Este trozo de código que te envié tiene un error tras la compilación. Está en la sección que devuelve la bandera para cerrar la posición por TakeProfit.

Aparentemente el identificador 'Estado' no está declarado.

 

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

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

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

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

Спасибо

 
albertpess :

Bueno, estoy estudiando el código según tu propuesta para seguir los pasos.

De momento estoy finalizando el estudio del artículo 1.Y me detuve justo después de la implementación del constructor de la clase protegida.

Este trozo de código que te he enviado tiene un error tras la compilación. Está en la sección que devuelve la bandera para cerrar la posición por TakeProfit.

Aparentemente el identificador 'Estado' no está declarado.

Así que, en algún sitio hicieron algo mal. Se les escapó algo.

Sólo tienes que descargar los archivos adjuntos al artículo a su carpeta de terminal y compilar el EA.

Y sólo entonces desmontar todo paso a paso como se describe en el artículo.

 
Artyom Trishkin:

Entonces, en algún lugar hicieron algo mal. Se les escapó algo.

Sólo tienes que descargar los archivos adjuntos al artículo a su carpeta de terminal y compilar el EA.

Y sólo entonces desmontar todo paso a paso como se describe en el artículo.

Gracias.

 
Very useful and well done! Thanks
 
Está bastante bien.
 

Implementación del constructor de clase protegida:

//+------------------------------------------------------------------+
//| Constructor paramétrico cerrado|
//+------------------------------------------------------------------+
COrder::COrder(ENUM_ORDER_STATUS order_status,const ulong ticket)
  {
//--- Guardar propiedades de enteros
   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();

Hola Artyom,

podemos usar:

m_long_prop[ORDER_PROP_TICKET] = (long)ticket; // ticket es el parámetro pasado.

 
Ming Ge # :
este. OrderTicket ();

Si

 this . OrderTicket ();

devuelve el valor de m_ticket establecido anteriormente, entonces es posible.

Pero escribí esto hace tanto tiempo que no puedo recordar de inmediato.

He mirado. Este método escribe el ticket en la propiedad 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
   }

Decide tú mismo si necesitas sustituirlo por una simple asignación o no.