Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1358
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¡Hola!
Tal vez hay alguien "en el saber" ... Estoy buscando una solución para convertir un archivo ZIP secuencia de bytes obtenido utilizando WebRequest en un archivo ZIP y descomprimirlo en el disco utilizando herramientas MQL5.
La búsqueda de una solución me llevó al artículo "Handling ZIP archives using MQL5 tools without third-party libraries" publicado en 2015 ( https://www.mql5.com/ru/articles/1971 ). Aquí el autor mostró la solución y publicó la clase CZip para trabajar con archivos ZIP. Sin embargo, esta solución no se puede aplicar - al compilar, MetaEditor no puede construir el archivo ejecutable, citando errores en la biblioteca de clases CZip.
La esencia de mi pregunta puede reducirse a lo siguiente: - ¿Cómo puedo utilizar por separado los métodos de la clase CZip, en particular CreateFromCharArray() y UnpackZipArchive(), incluyéndolos directamente en el código del script?
Hay un servicio que crea periódicamente archivos (cierro todo correctamente mediante FileClose).
Después de iniciar normalmente el primer archivo se crea normalmente, luego FileOpen empieza a devolver el error 5001.
Pero todo esto es aleatorio - luego funciona, luego no. Al mismo tiempo, nunca he notado el problema cuando ejecuto el mismo código en un script o Asesor Experto.
¿Cómo eludir esta prohibición?
Permítame repetir mi pregunta.
Hay un servicio que crea periódicamente archivos (cierro todo correctamente mediante FileClose).
Después de iniciar el primer archivo está bien, y luego FileOpen me da error 5001.
Pero es aleatorio - a veces funciona, a veces no. Al mismo tiempo, nunca he notado el problema cuando ejecuto el mismo código en un script o Asesor Experto.
¿Cómo eludir esta prohibición?
¿Quieres que alguien escriba un servicio similar con los mismos errores que el tuyo y te diga lo que hay que arreglar?
¿Quieres que alguien escriba un servicio similar con los mismos errores que el tuyo y te diga lo que hay que arreglar?
En la función de búsqueda de archivos, la búsqueda no se cerraba a través de FileFindClose().
De todos modos, gracias por la respuesta.
Empezó a cortar el lishee para publicar el código y todo funcionó ))
En la función de búsqueda de archivos, la búsqueda no se cerró a través de FileFindClose().
De todos modos, gracias por la respuesta.
Sí, todo lo que utiliza un archivo lo abre (abre el acceso al archivo) ))) Y se requiere el cierre del archivo (acceso).
Cerrar un archivo innecesariamente devolverá -1 sin consecuencias, pero un archivo abierto olvidado puede causar muchos problemas)
Recuérdame que en el bloque de entrada no puede aparecer el comentario en los parámetros del robot?
para que los parámetros sigan mostrando MagicNumber en lugar de MagicNumber (este es un ejemplo)
Recuérdame que en el bloque de entrada no puede aparecer el comentario en los parámetros del robot?
para que los parámetros sigan mostrando MagicNumber en lugar de MagicNumber (este es un ejemplo)
'sinput' emite un parámetro, pero no se puede incluir en la optimización.
Variables con modificador sinput#
Las variablescon modificador de entradano sólo permiten establecer los valores de los parámetros externos al lanzar los programas, sino que también son necesarias al optimizar las estrategias de negociación en el probador. Todas las variables de entrada declaradas en el Asesor Experto, excepto el tipo de cadena, pueden participar en la optimización.
A veces, es necesario excluir algunos parámetros externos del programa del área de todos los pases en el probador. Existe un modificador de memoriasinputespecífico para estos casos. sinput es una forma abreviada de declaración de una variable externa estática: sinput = static input. Es decir, una declaración de este tipo en el código EA
será equivalente a una declaración completa
Una variable declarada con el modificador sinput es un parámetro de entrada de un programa MQL5. El valor de este parámetro se puede cambiar al lanzar el programa. Pero esta variable no participa en el proceso de optimización de los parámetros de entrada, es decir, sus valores no se buscan cuando se busca el mejor conjunto de parámetros según el criterio dado.
La imagen muestra que el Asesor Experto tiene 5 parámetros externos de los cuales el parámetro "Número de Capas" ha sido declarado comosinputy es igual a 6. Este parámetro no puede ser cambiado en el procedimiento de optimización de la estrategia comercial pero se puede establecer el valor requerido para que sea utilizado. Los campos Inicio, Paso y Parada no están disponibles para establecer valores para dicha variable.
Así, al establecer el modificador sinput para una variable, prohibimos que un usuario optimice este parámetro. Significa que en el probador de estrategias, un usuario del terminal no puede establecer los valores de inicio y parada para la enumeración automática dentro del rango especificado durante el proceso de optimización.
Sin embargo, hay una excepción a esta regla: las variables sinput pueden variarse en las tareas de optimización utilizando la funciónParameterSetRange(). Esta función ha sido desarrollada específicamente para controlar mediante programación el rango de valores disponibles para cualquiervariable de entrada, incluyendolas declaradas como entradaestática(sinput). Otra función,ParameterGetRange(), permite recibir los valores de las variables de entrada cuando se lanza la optimización (en el manejadorOnTesterInit()) y, si es necesario, redefinir un paso de cambio y un rango dentro del cual se enumerarán los valores de un parámetro optimizado.
Así, la combinación del modificador sinput y de dos funciones para el manejo de las variables de entrada permite crear reglas flexibles para definir intervalos de optimización de algunas variables de entrada en función de los valores de otras variables de entrada.
si recuerdo bien, la pregunta es sobre la visualización de un comentario, ¿es posible mostrar el nombre de la variable en lugar de un comentario, en los parámetros de EA?
cadena ps con sinput accidentalmente por ejemplo)
si recuerdo bien, la pregunta es sobre la visualización de un comentario, ¿es posible mostrar el nombre de la variable en lugar de un comentario, en los parámetros de EA?
ps la línea de sinput acaba de ser un ejemplo)
No escribas nada después de ';'
Ejemplo: hay una descripción:
y ahora quita la descripción:
y veremos el nombre de la variable
No escribas nada después de ';'
Esa era la pregunta, el comentario está ahí, pero el nombre de la variable tiene que salir en los parámetros,
tal vez hay un truco para ello....