Errores, fallos, preguntas - página 1060

 
x100intraday:
Ya ves. La falta de plazos más altos en mi mente equivale involuntariamente a un sospechoso"los desarrolladores no me están diciendo algo... "¿No es así para alguien más?
Yo no lo tengo así! Y estoy seguro de que todo se "negocia" - porque hay muy poca gente como tú que necesita ese truco
 
server:
Y estoy seguro de que todo se puede arreglar, porque hay poca gente como tú que lo necesita.

Mi opinión: nunca se tienen demasiados datos para el análisis. Incluso para el operador a corto plazo, a veces es útil saber lo que se está haciendo fuera de la jornada de hoy. La falta de información, sobre todo la que no tiene una importancia demasiado evidente, se vuelve tarde o temprano en contra del comerciante.

Sin embargo, a veces hay demasiados cálculos contradictorios para tomar una decisión, por lo que parece que no se necesitan más datos. Pero no se trata de una cuestión de redundancia de datos, sino de una correcta gestión de los mismos. Con un exceso de información de fondo se puede hacer algo, incluso ignorarlo, pero con la falta de información no se puede ir lejos y en la dirección correcta.

 
MetaDriver:
2013.09.07 02:39:36 iTester-SL (GBPUSD,M1) 1 objeto de tipo CTestStat dejado
2013.09.07 02:39:36 iTester-SL (GBPUSD,M1) 1 objetos no borrados restantes

Fuga de memoria // O fallo del compilador.

El objeto ha sido declarado como una variable global estática. (!) Es decir, no es nada dinámico.

El problema se produjo después de que la parte del código que utiliza esta variable se trasladara a un archivo .mqh y se declarara en este archivo como externa (antes no se detectó ninguna fuga):

El programa funciona bien.

// He evitado el problema declarando el objeto como dinámico. Ahora lo creo en OnInit(), lo borro en OnDeinit(). La fuga (mensajes de fuga) se detuvo.

Gracias, vamos a comprobarlo.
 

¿Alguien sabe qué tipo de herramienta de comercio es PROFIT?

 
MetaDriver:

Una gran petición a los presentes en el foro, para probar OnCalculate() para las llamadas duplicadas y anulación de prev_calculated en cada tick.

Y publica aquí tus resultados (es/no es duplicado).

Prueba el indicador aquí.

Creo que he conseguido considerar la duplicación de garrapatas. Pavel Tsatsenko (kPVT) me ha ayudado // ¡Muchas gracias!

Resulta que este problema se produce cuando se copian peticiones ( CopyXXX(...) ) fuera del rango del buffer a copiar. En particular, en el indicador, que se ofrece para la prueba, hay una inexactitud que hace que se pidan más barras de rates_total.

La versión corregida se adjunta en el trailer. Funciona en mi terminal sin duplicación de ticks en todas las configuraciones del terminal. Los compañeros interesados pueden comprobarlo. Si alguien tiene duplicados de garrapatas, por favor, señale.

Archivos adjuntos:
 
paladin800:

¿Alguien sabe qué tipo de herramienta de comercio es PROFIT?

Lo más probable es que se trate de operaciones que no han acertado con ninguno de los símbolos, tal vez una recarga.
 

La herencia de clases es un error. ¡Llevo 3 días sin poder terminar una clase porque los bichos de la compilación se están colando!

Aquí está el primer error:

class CAbstract
{
protected:
   int m_handle;

public:
   CAbstract() : m_handle(INVALID_HANDLE) {}
   int GetHandle() const {return(m_handle);}
};

class CMyObj : CAbstract
{
};

class CHandle : CAbstract
{
protected:
   CMyObj *m_objects[];

public:
   ~CHandle()
   {
      int x;
      // Error: 'CAbstract::GetHandle' - cannot call private member function
      for (x = ArraySize(m_objects)-1; x>-1;x--) Print(m_objects[x].GetHandle());
      
      Print(m_handle);
   }
};


Y aquí está la segunda:

class CAbstract
{
protected:
   int m_handle;

public:
   CAbstract() : m_handle(INVALID_HANDLE) {}
   int GetHandle() const {return(m_handle);}
};

class CMyObj : CAbstract
{
};

class CHandle : CMyObj
{
public:
   void Log()
   {
      // Error: 'm_handle' - private member access error
      Print(m_handle);
   }
};

Bueno, ¡no hay miembros privados!

El número de informe de error es #835727.

 
Roffild:

La herencia de las clases tiene errores. ¡Llevo 3 días sin poder terminar una clase porque los bichos de la compilación se están colando!

Aquí está el primer error:


Y aquí está la segunda:

Bueno, ¡no hay miembros privados!

El número de informe de error es #835727.

Sin embargo, lo hay. Pruébalo de esta manera:

class CAbstract
{
protected:
   int m_handle;

public:
   CAbstract() : m_handle(INVALID_HANDLE) {}
   int GetHandle() const {return(m_handle);}
};

class CMyObj : public CAbstract   // Наследование по умолчанию приватное. И в С++ и в mql
{
};

class CHandle : CAbstract
{
protected:
   CMyObj *m_objects[];

public:
   ~CHandle()
   {
      int x;
      // Error: 'CAbstract::GetHandle' - cannot call private member function
      for (x = ArraySize(m_objects)-1; x>-1;x--) Print(m_objects[x].GetHandle());
      
      Print(m_handle);
   }
};
La herencia privada hace que todos los miembros de una clase heredada sean privados.
 
MetaDriver:
 // Наследование по умолчанию приватное. И в С++ и в mql

De la ayuda de MQL5:

class CDerived: public CBaseClass // public наследование можно не указывать, оно по умолчанию
  {
 
Roffild:

De la ayuda de MQL5:

El que vive según las normas morirá por una errata.

Razón de la queja: