Página 1 de 402 12 ÚltimoÚltimo
Resultados 1 al 10 de 11

Tema: La compilación de la línea de comandos MQL4 produce un EX4 no válido (resuelto)

  1. #1
    Oye,

    Estoy usando MT4 Construct 1090 y MetaEditor V5 Build 1601. Necesito volver a compilar automáticamente algunos indicadores MT4. Para hacerlo, escribí un pequeño script que se llama periódicamente a través del Planificador de tareas de Windows:
    Código insertado @echo C C: \ Archivos de programa (x86) \ SomeBrokerName \ metaeditor.execompile:...\MetaQuotes\Terminal\...\ MQL4\Indicators\MyIndicator.mq4log Esto funciona bien hasta ahora. La salida del archivo de registro indica que se compiló correctamente, 0 advertencias, 0 errores. Pero cuando intento colocar el indicador en un gráfico, sucede que de vez en cuando no funciona. En su lugar, la pestaña Pros muestra un error:
    El código insertado no puede cargar C: \ ... \ AppData \ Roaming \ MetaQuotes \ Terminal \ ... \ MQL4 \ Indicators \ MyIndicator.ex4 Por lo tanto, tengo que volver a compilar el indicador y luego funciona. A veces no, hasta que funciona y tengo que recompilar una y otra y otra vez.

    Ya lo probé en otra computadora, SO diferente (Windows 7, Windows 10, ...). Mismo resultado A veces funciona, a veces no funciona.

    ¿Tiene alguna idea de lo que está mal aquí y por qué parece producir un archivo EX4 no válido con frecuencia? ¿Hay algo que pueda hacer para prevenir este problema?

    Gracias de antemano.

  2. #2
    ¿Estás utilizando archivos de inclusión? También hay una nueva variante para MT4 (terminal: compilación 1126, metaeditor: compilación 1861). Puede descargarlo aquí o crear una cuenta demo en el servidor de presentación de metaquotes y debería actualizarse automáticamente.

  3. #3
    Sí, estoy usando incluir archivos. ¿Esto causa problemas? Voy a probar la nueva construcción. ¡Gracias por la pista!

  4. #4
    Cita Iniciado por ;
    Sí, estoy usando incluir archivos. ¿Esto causa problemas? Voy a probar la nueva construcción. ¡Gracias por el consejo!
    Sí. Debe especificar la ruta a sus archivos de inclusión. Código insertado C: \ Archivos de programa \ TradingPlatform \ metaeditor64.execompile: C: \ Archivos de programa \ TradingPlatform \ MQL5 \ Scriptsinclude: C: \ Archivos de programa \ TradingPlatform two \ MQL5

  5. #5
    Hmm, esto lo intentará. ¿Pero no causaría un error de compilación, si no puede encontrar los archivos de inclusión?

  6. #6

    Cita Iniciado por ;
    Hmm, puedo intentar esto. ¿Pero no causaría un error de compilación, si no puede encontrar los archivos de inclusión?
    Sí, debería producir errores si no puede encontrar el archivo mqh ...

  7. #7
    Temo que haya escrito por error el factor estático inicial (en algunos casos). De modo que debes compilarlo cada vez que quieras que se ejecute.

  8. #8
    Cita Iniciado por ;
    cita Sí, debería producir errores si no puede encontrar el archivo mqh ...
    Ok, pero no lo hace. Desde el archivo de registro indica 0 advertencias y 0 errores y genera el archivo MyIndicator.ex4. Sin embargo, el problema es que una vez que necesito asignar el indicador a un gráfico, dice No se puede cargar ... \ MyIndicator.ex4 y he comenzado el proceso de recompilación una y otra vez antes de que finalmente funcione en algún momento. A veces tengo que recompilarlo 2-3 veces antes de que funcione. A veces funciona después del primer momento. Eso es lo que me desconcierta. Parece que produce un archivo EX4 no válido por cualquier motivo. Ese es el registro: código insertado C: \ Projects \ 2018 \ 08 \ ... \ Compiler \ Data \ MyIndicator_123456_20180930. Mq4: consejo: Compilar'MyIndicator_123456_20180930. Mq4 'C: \ Projects \ 2018 \ 08 \ ... \ Compiler \ Data \ Include \ MyIndicator.mqh: consejo: Add'MyIndicator.mqh' Impacto: 0 error (s), 0 advertencia (s), tiempo de compilación: 207 mseg. Pero cuando lo puse en la tabla: Código insertado 2018.08.29 23: 22: 58.074 no se puede cargar'C: \ Users \ ... \ AppData \ Roaming \ MetaQuotes \ Terminal \ ... \ MQL4 \ indicator \ MyIndicator_123456_20180930. Ex4 'Además, solo lo probé con las últimas compilaciones de MT4 y MetaEditor, el mismo resultado. El error todavía existe.

  9. #9

    Cita Iniciado por ;
    has escrito incorrectamente la primera variable estática (en algunos casos).
    Qué significa eso? Estoy usando algunos factores que son estáticos, sí. Sin embargo, son similares a esto: Código insertado void OnCalculate (...) static datetime _lastCheck = 0; datetime barTime = Time # 91; 093 ;; if (barTime gt; _lastCheck) _lastCheck = barTime; ... Como dije: a menudo ni siquiera se carga en el gráfico. Tengo que recompilarlo un par de veces y luego funciona cada vez. Además, el problema nunca ocurre cuando lo compilo manualmente en MetaEditor. Cuando lo compilo a través de la línea de comando parece ocurrir.

  10. #10
    Ok, encontré el problema ...
    La práctica es un poco más compleja. La compilación se produce en una máquina diferente (Build Server). Y después de la compilación, subo el archivo a un servidor FTP y luego lo coloco. Y parece que durante la transferencia de FTP algo sale mal. No sé si es el modo de transferencia (ASCII vs Binario), hay que comprobarlo. Contrasté Son diferentes y los hashes del documento EX4 que descargué del EX4 y aquí en el Build Server. Cuando copio el archivo EX4 a través de RDP directamente desde el Build Server y lo uso, funciona, mientras que el documento descargado no ... ¡AAAARG!

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •