Errores, fallos, preguntas - página 2462

 
astronom55:
Hola. La versión móvil de MT5 no se conecta a mi broker Alpari. ¿Cuál es el problema? ¿Se arreglará esto en algún momento?

Aquí.

 
Sergey Dzyublik:

Lo mismo se escribe enStringToShortArray:

Sin embargo, esto no impide que maneje adecuadamente los caracteres NULL en la cadena.

ShortArrayToString( array, start, count ) funcionaincorrectamente: el terminal 0 no es cualquier 0, sólo el del final. En este caso se puede determinar el fin o no fin en base a ArraySize( array ). Al menos si se establece explícitamente count, la cadena resultante no debe ser más corta que min( count, ArraySize( array ))

Y StringToShortArray( text, array, start, count ) funciona correctamente: el terminal 0 es el que está al final. Y el final se determina en base a StringLen( text )

 
Artyom Trishkin:

Aquí.

  • No ha proporcionado ningún materialespecífico para que se pueda abordar su problema. -Todos los usuarios de Android tienen este problema
  • Su pregunta es tan amplia que no puede responderse de forma inequívoca sin una aclaración: pregunte lo que no entienda.
  • Usted es simplemente una persona perezosa que no leela documentación. La mayoría de tus problemas provienen simplemente de la ignorancia de los conceptos básicos del lenguaje MQL - creo que esto no está en la documentación.
  • Estás vetado en google o simplemente no sabes utilizarla búsqueda - la búsqueda no ha dado resultados.

1


Estos son algunos de los comentarios sobre la versión móvil de MT5.

2

Este es el foro de Alpari

¿No sabes nada al respecto?

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
MetaQuotes Language 4 (MQL4) - встроенный язык программирования торговых стратегий, разработанный компанией MetaQuotes Software Corp. на основе своего многолетнего опыта в создании торгово-информационных платформ. Этот язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и...
 

al ejecutar el script


#include <Files\FileTxt.mqh>
void OnStart(){

  CFileTxt file;
  int handle = file.Open( "test.bat", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //
  if( handle == INVALID_HANDLE ){
    int error = GetLastError();
    Print("Ошибка создания файла, код ошибки ",  error );
    return;
  }
}


error





¿Cuál es la razón?


Si cambia el nombre del archivo


int handle = file.Open( "test", FILE_WRITE | FILE_ANSI | FILE_REWRITE ); //

ningún error

 
Aleksey Sergan:

al ejecutar el script

error

¿Cuál es la razón?

Si cambia el nombre del archivo

ningún error

El nombre del archivo es el problema.
Prohibido el funcionamiento de archivos "ejecutables" (exe, msi, bat, ...).

 
Sergey Dzyublik:

El nombre del archivo es el problema.
La creación de archivos "ejecutables" (exe, msi, bat, ...) está prohibida.

Sí, así es. No pude encontrar nada en la ayuda sobre eso.

 

Puede ser irrelevante, pero estrictamente hablando en el mensaje de error en la compilación

void A::operator=(const A&) aquí (donde está la flecha) es innecesario (más aún porque se genera igual por defecto)

 
Esta es la 4ª vez en un día que me encuentro con un problema de cuelgue del 100% de la CPU de ME (build 2037).

Inicialmente aparece el 100% de carga del núcleo, pero ME funciona bien - incluso se puede ejecutar la depuración de código en MT.
Sin embargo, si intentas cambiar a otra pestaña con el código fuente - ME se cuelga completamente (necesita matar el proceso), y la ventana de la nueva pestaña sigue sin abrirse (se cuelga en estado semiabierto).
Si no cambio a una nueva pestaña, sólo cierro ME, el proceso no se cerrará, sino que se convertirá en un proceso hijo de MT y seguirá cargando el 100% del kernel.

El problema surge en el sitio de la llanura, justo durante el desarrollo del código ( proyecto pequeño, 8 archivos <3K líneas en total), ME code intellisense se bloquea, presumiblemente.
 
Hurra, hemos conseguido atrapar el código que "bloquea" el analizador ME.
ME se bloquea en el arranque. Es imposible ejecutar el ME sin editar primero el código en otro editor.

Si es necesario, el código fuente se proporcionará a los desarrolladores en 5-7 días.
El problema surgió con la cuerda:
if(
Algo debe estar mal al contar los paréntesis no cerrados.
 
De nuevo una hora de búsqueda de errores en el código del proyecto ha llevado a los "específicos" de MT5 (build 2049).

En el terminal alguna parte de los registros del Asesor Experto puede simplemente no mostrarse, sin notificar al usuario sobre ello.
Los registros están en el archivo de registro - todo está bien allí.

#define  PRINT(x) Print(#x, ":", string(x))

void OnStart(){  
   string test_name;
   string test_result;  
   
   test_name = "394_TEST_____";
   for(int i = 0; i < 394; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
   
   
   test_name = "395_TEST_____";
   for(int i = 0; i < 395; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);

   
   test_name = "396_TEST_____";
   for(int i = 0; i < 396; i++){
      PRINT(test_name + string(i+1));
   } 
   test_result = "RESULT_SUCCESS";
   PRINT(test_result);
   Sleep(5000);
}

De alguna manera la cola de registro muestra de alguna manera el registro con el número 395, todos los registros antes y después de este número se muestran en el registro МТ.
Por lo tanto, la prueba #395 siempre falla.
Razón de la queja: