Aprender y escribir juntos en MQL5 - página 27

 
Khomtchenko:

¿Puede decirme qué significan esas barras verdes de la parte inferior? En MT4 significaban volumen de lote y se dibujaban cuando el lote cambiaba. ¿Pero para qué sirve aquí? ¿O mi volumen de lote cambia? Parece que no lo cambio.

Lo dice en la esquina superior izquierda: "Nivel de margen".

 

Otra pregunta: a juzgar por el gráfico del probador, hay muchas veces menos entradas en el mercado en mql5 o el probador muestra los resultados de varias operaciones de forma generalizada o suave. Bueno, los resultados de las pruebas son diferentes y eso es todo.

Por cierto, he oído muchas cosas ingeniosas como "limpiar los faros", "tocar el volante" y EAs pero nadie me ha explicado nada en concreto ni me ha señalado los errores. También resumiré en un informe todos los comentarios de los moderadores y expertos para que quede claro si el superproducto mql5 tiene un soporte técnico normal.

 
Khomtchenko:
Por cierto, escuché un montón de cosas inteligentes como "limpiar los faros" y "golpear el volante", publiqué EAs, pero nadie me explicó específicamente nada y no señaló mis errores. También resumiré todos los comentarios de los moderadores y expertos en un informe para que quede claro si el superproducto mql5 tiene un soporte técnico decente.

¿Ha adjuntado a sus mensajes los informes del personal de pruebas en formato zip?

En cuanto les eches un vistazo y hagas un análisis posterior, lo entenderás todo de inmediato. No hay que perder el tiempo con estimaciones superficiales como "los totales y el número de acuerdos no cuadran".

Se le han dado las vías de búsqueda: comprobar el historial (se basa en la creencia errónea de que el historial es el mismo en todas partes) y el análisis caso por caso.

Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 

En la última versión, han aparecido constructores con parámetros. ¡Muchas gracias a los desarrolladores!

Pero ha surgido un problema al heredar dichos constructores. Al compilar el siguiente código se produce un error "clsBase - cuenta de parámetros incorrecta" y el compilador señala la línea roja en negrita:

class clsBase {
    protected:
        string __strSymbol;
        ENUM_TIMEFRAMES __enumTF_thisTF;

    public:
        void clsBase(int intX);
        void ~clsBase();
};


void clsBase::clsBase(int intX) {

}


class clsInherit:public clsBase{

    public:
        void clsInherit(int intX,double dblY);
        void ~clsInherit();
};


void clsInherit::clsInherit(int intX,double dblY):clsBase(int intX){

}

Además, si se comenta la línea verde en negrita, la compilación procede sin errores.

Es decir, si no es un bug, estoy declarando mal el constructor de una clase heredada.

Hasta ahora no hay nada nuevo en la ayuda, es decir, dice sobre los constructores con parámetros que no son posibles.

Por favor, explique la sintaxis de la llamada al constructor con parámetros para la clase heredada.

 

Inténtalo de esta manera:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class clsBase
  {
protected:
   string            __strSymbol;
   ENUM_TIMEFRAMES   __enumTF_thisTF;

public:
   void              clsBase(int intX);
   void             ~clsBase() {};
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void clsBase::clsBase(int intX)
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class clsInherit:public clsBase
  {
public:
                     clsInherit(int intX,double dblY):clsBase(intX)
     {
     }
                    ~clsInherit()
     {

     }
  };
 

¡Ya lo he probado!

Todo lo mismo

void clsInherit::clsInherit(intX,double dblY):clsBase(intX)

void clsInherit::clsInherit(intX,double dblY)


El compilador dice lo mismo

PD Mientras escribía esto, se actualizó su puesto. Lo intentaré de nuevo ahora.


PPS Lo he probado, pero es lo mismo que escribí antes, es decir, sin cuerpo constructor la compilación pasa.

Pero no necesito escribir el constructor en el cuerpo de la declaración de la clase, sólo necesito declararlo allí y escribir el propio cuerpo del constructor (tengo uno largo) más adelante, como se hace habitualmente.

En otras palabras, voy a repetir la pregunta :)

¿La sintaxis para llamar a un constructor con parámetros en una clase heredada?

 
falkov:

Pero no necesito escribir el constructor en el cuerpo de la declaración de la clase, sólo necesito declararlo allí y escribir el propio cuerpo del constructor (tengo uno largo) más adelante, como se hace habitualmente.

En MQL5 se recomienda no dividir las clases en archivos MQH/MQ5 y no separar la descripción de la implementación en un archivo, sino escribir el cuerpo directamente en el bloque de la clase.


¿La sintaxis de una llamada a un constructor con parámetros en una clase heredada?

El error anterior ya ha sido corregido - estará disponible en la próxima compilación. Será posible llevar la implementación de constructores complejos fuera del bloque de descripción de la clase.


ps: mi código de ejemplo compila bien, lo he comprobado

 

Tu ejemplo compila sin errores, eso es lo que he dicho, pero no es lo que necesito.

¡Gracias por la siguiente construcción, la espero con ansias!

 
¿Ha adjuntado a sus mensajes los informes del personal de pruebas en formato zip?

Te he presentado a los asesores. ¡Ve todo lo que quieras! 10 segundos para compilar y probar otro 1 minuto. Tú quieres las propiedades del objeto y yo te doy el objeto completo.

Se obtienen resultados diferentes, y los resultados son dramáticamente diferentes. Los Asesores Expertos tienen un código muy pequeño. Un par de funciones estándar para abrir una posición y 4 líneas de la propia estrategia.

Bien. ¿Existe algún otro sitio donde los desarrolladores de productos mql5 puedan respaldar su desarrollo? Aquí no hay ayuda. Sólo excusas. Como si pudieras descubrirlo por ti mismo... GRACIAS A TODOS.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 
Khomtchenko:

¿Hay algún otro sitio donde los desarrolladores de productos mql5 puedan defender su desarrollo?

Aquí no hay ayuda. Sólo hay excusas. Como si fueras a descubrirlo por ti mismo...

En primer lugar, estos son sus expertos en desarrollo.

En segundo lugar, si tú eres perezoso, ¿por qué los demás deberían hacer lo mismo?

Razón de la queja: