Errores, fallos, preguntas - página 2809

 
TheXpert:

En otras palabras: no hay acceso interno (por defecto), pero sí externo. Pero para utilizarlo, hay que especificarlo explícitamente. Esto tiene sentido para mí

 
Error de compilación:
template<typename T> class A {};
class B {
template<typename T> void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //Error: 'f' - member function already defined with different parameters

pero por lo demás:

template<typename T> class A {};
class B {
template<typename T> void f( A<T>& ) {} //нормально
};

bien. ¿Qué diferencia hay?

template<typename T> class A {};
template<typename T>
class B {
                     void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //нормально

también está bien. Y lo más importante es que antes (en la build 2085) todo se compilaba normalmente - ¡sin errores!

 

¡Buenas tardes, queridos expertos!

¿Podría decirme si es posible establecer un punto de interrupción para que se active en un momento determinado (en una barra determinada) durante la depuración? Es decir, quiero que la historia avance hasta un lugar determinado, y en ese lugar se dispararía un punto de ruptura, y podría pasar por el depurador en la barra que necesito.

 

Comenzó un EA en el probador, la red. No he tratado mucho con Límites, mi pregunta es sobre BuyLimit, con inversión de posiciones.
¿Realmente se deslizan hacia el mejor lado o depende del corredor? ¿O se trata de un error en el probador?

Y por alguna razón la línea de posición de venta no terminaba en el límite derribado, sino que iba más allá del borde de la pantalla.


 
1.Hay un comando "DatabaseImport", en la documentación a la explicación de las banderas de los parámetros no hay estas mismas banderas. Probado tanto "0" como los parámetros de DatabaseExport, la compilación va, pero en la ejecución devuelve el error 5131. No existe tal error en la documentación. ¿Alguien sabe a qué se debe este error? Lo que está mal en la línea;
DatabaseImport(db,"hist",FilenameHist,DATABASE_IMPORT_HEADER | DATABASE_IMPORT_CRLF | DATABASE_IMPORT_APPEND,";",0,"");
?
2. ¿Por qué la línea
         i=DatabaseExport(db,"select * from hist",FilenameHist,DATABASE_EXPORT_HEADER | DATABASE_EXPORT_CRLF | DATABASE_EXPORT_APPEND,";");
obras y
i=DatabaseExport(db,"hist",FilenameHist,DATABASE_EXPORT_HEADER | DATABASE_EXPORT_CRLF | DATABASE_EXPORT_APPEND,";");
¿No? Con lo que dice la documentación
long  DatabaseExport( 
   int           database,           // хендл базы данных, полученный в DatabaseOpen 
   const string  table_or_sql,       // 




имя таблицы  или SQL-запрос 
   const string  filename,           // имя CSV-файла для экспорта данных 
   uint          flags,              // комбинация флагов 
   const string  separator           // разделитель данных в CSV-файле 
   );
 

es decir, ¡el nombre de la tabla también debe ser reconocido! ¿Qué ocurre?


w.s. Señores desarrolladores ¿qué décimo ojo debe adivinar que la tabla donde se hará la importación no debe existir? y ¿por qué hay que exportar la importación si la carpeta en la que se puede guardaremql5/files se borra al inicio? ¿Cómo se puede trabajar con un archivo permanente? ¿O siempre es necesario comenzar a través de la depuración y tener tiempo para insertar el archivo necesario antes de la inicialización? Qué es ....
 
AlexInRush:

¡Buenas tardes, queridos expertos!

¿Podría decirme si es posible establecer un punto de interrupción para que se active en un momento determinado (en una barra determinada) durante la depuración? Es decir, quiero que la historia avance hasta un lugar determinado, y en ese lugar se dispararía un punto de ruptura, y podría pasar por el depurador en la barra que necesito.

En el probador de estrategias, justo después del inicio, se hace una pausa y el campo "Desplazarse a" está a la derecha. En el campo de la derecha se introduce la hora a la que se quiere correr. Como resultado, se detiene en el momento en que lo necesita, y entonces se pone un punto de interrupción en el código y se hace un seguimiento del mismo.
 
Alexandr Koptelov:
1.Hay un comando "DatabaseImport", en la documentación a la explicación de las banderas de los parámetros no hay estas mismas banderas. Probado tanto "0" como los parámetros de DatabaseExport, la compilación va, pero en la ejecución devuelve un error 5131. No existe tal error en la documentación. ¿Alguien sabe a qué se debe este error? ¿Qué pasa con la línea; ?
2. ¿Por qué la línea funciona y no? Con lo que dice la documentación

es decir, ¡el nombre de la tabla también debe ser reconocido! ¿Qué pasa?


s.w. Señores desarrolladores ¿qué décimo ojo debe adivinar que la tabla donde se va a realizar la importación no debe existir? y ¿por qué se necesita exportar la importación si la carpeta en la que se puede guardaremql5/filesse borra al inicio? ¿Cómo se puede trabajar con un archivo permanente? ¿O siempre es necesario comenzar a través de la depuración y tener tiempo para añadir el archivo necesario antes de la inicialización? Qué es ....

Trabaja en un probador o depurador con la base colocada en una carpeta compartida.

 
AlexInRush:

¡Buenas tardes, queridos expertos!

¿Podría decirme si es posible establecer un punto de interrupción para que se active en un momento determinado (en una barra determinada) durante la depuración? Es decir, quiero que la historia esté activa hasta un determinado lugar y que se dispare un breakpoint en ese lugar, para poder pasar por el depurador en la barra que necesito.

Establezca la condición

if(TimeCurrent() == nnnTime)
  DebugBreak();
y empezar a depurar. Tan pronto como el tiempo alcance el valor especificado, la depuración se detendrá y después de todas las manipulaciones pulse Shift+F11 para continuar con el probador.
 

¿No hay forma de activar la impresión en modo de optimización? La opción "Registros de optimización completos" está activada, pero sólo entra en los registros la impresión de OnInit, mientras que yo la necesito de OnTester, por ejemplo.

 
Error de compilación
#define  MACRO( X ) aaa##X = X
#define  bbb  5
void OnStart()
{
    int MACRO(         bbb );
    printf( "%d",   aaabbb ); //Error: 'aaabbb' - undeclared identifier
}

Y en C++ está bien. ## tiene mayor prioridad - bbb es sustituido primero, y luego bbb es reemplazado por 5, y no debería terminar así:

    int aaa5 = 5; //неправильно (*)

Así es como debe ser:

    int aaabbb = 5; //правильно (**)

Debido a este error, una operación rutinaria no puede ser sustituida por una macro. (*) puede obtenerse mediante otra forma de registro si es necesario, pero (**) no puede obtenerse en MQL de ninguna manera