English Русский 中文 Deutsch 日本語 Português
Estructura de datos en MetaTrader 4 Build 600 o superior

Estructura de datos en MetaTrader 4 Build 600 o superior

MetaTrader 4Ejemplos | 6 octubre 2015, 09:42
1 814 0
MetaQuotes
MetaQuotes

Introducción

Las características del MetaTarder 4 build 600, de la nueva estructura y ubicación de los archivos del cliente del terminal. Ahora, las aplicaciones MQL4 se colocan en directorios separados según el tipo de programa (asesores expertos, indicadores o scripts). En la mayoría de los casos, los datos de la terminal ahora se almacenan en una carpeta especial de datos separada de la ubicación de instalación del terminal. En este artículo, describimos al detalles cómo se transfieren los datos, así como las razones para introducir el nuevo sistema de almacenamiento.


Por qué se implementó el nuevo sistema de almacenamiento de datos

Microsoft Windows XP, lanzado hace 13 años permite a las aplicaciones escribir sus propios datos en el lugar de su instalación, aunque el último tuvo lugar en la carpeta de sistema de archivos de programa. El usuario sólo debe tener un permiso de administrador para escribir datos en cualquier carpeta.

Cuando se trabaja en sistemas de 64 bits, los directorios de instalación por separado se proporcionan para programas de 32 y 64 bits: archivos de programa y archivos de programa (x 86). las características de la operación descritas en el artículo se aplican a ambos directorios.

A partir de Windows Vista, Microsoft ha introducido una restricción de escritura al directorio de archivos de programa. Si el sistema de Control de cuentas de usuario (UAC) está habilitado, a los programas no se les permite almacenar sus datos en la carpeta archivos de programa. Todos los datos deben ser localizados en un directorio de usuario. Esta limitación se ha introducido para proteger a los usuarios contra programas maliciosos y evitar aplicaciones bajo una cuenta de usuario para cambiar o dañar los datos del mismo programa necesarios para otra cuenta de usuario. Desde entonces, los requisitos de seguridad en sistemas operativos de Microsoft han apretado más. En particular, a partir de Windows 8, sistema UAC no se puede deshabilitar si "Nunca notificar" está seleccionado en su configuración.

Microsoft ha implementado el proceso de virtualización para proporcionar compatibilidad con aplicaciones antiguas al usar UAC. Si un programa intenta guardar sus datos en el directorio de archivos de programa, los datos son realmente (físicamente) guardados en una carpeta separada, tienen el aspecto siguiente - C:\Users\<user-name>\AppData\Local\VirtualStore\Program Files, mientras que el explorador de archivos de Windows muestra los archivos como si se guardan en el directorio de instalación. Microsoft afirma que este modo se ha proporcionado solo para compatibilizar y se puede quitar más adelante.

Para cumplir con las recomendaciones de Microsoft, se ha modificado la estructura de almacenamiento de datos en el cliente del terminal MetaTrader 4 a partir de la version Build 600. Ahora, el terminal también guarda sus datos en un directorio de usuario.


Directorio de datos de usuario

En la nueva versión, todos los datos de un cierto usuario trabajan con una cierta copia del terminal MetaTrader 4 que se almacena en un lugar especial llamado terminal data folder. Puede encontrar esta carpeta en el disco de sistema (el disco con wl sistema operativo de Windows instalado) a lo largo de la siguiente ruta

C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id
donde:
  • С: - nombre de un disco de sistema;
  • User_account_name - cuenta de usuario para trabajar en Windows;
  • Instance_id - único nombre de la carpeta donde se almacenan datos del usuario para trabajar con una copia del terminal MetaTrader 4. Un nombre único que consta de 16 caracteres. El nombre se genera partiendo de la ruta del directorio de instalación del terminal, ya que la ruta del directorio de instalación del terminal no se puede utilizar explícitamente como un nombre de carpeta. La Importancia en la longitud de nombre único se explica por el hecho de que copias múltiples del terminal se pueden instalar en un PC.

Se ha añadido el comando "Abrir carpeta de datos" al menú de archivo del terminal para buscar y abrir la carpeta de datos.

Abrir la Carpeta de Datos

La raíz de cada carpeta de datos del terminal también contiene el archivo origin.txt donde se puede encontrar la ruta de la carpeta de instalación del terminal de los datos referidos. Esto permite a los usuarios que cada carpeta de datos del terminal coincida con un determinado directoria de instalación del terminal, por ejemplo, en el caso de cuando un usuario instala varias copias del terminal MetaTrader 4. Esta es la manera de trabajar del terminal cuando la carpeta de datos está separada de la instalación es el modo principal.

Para mayor comodidad, se hace en diario del terminal una entrada que contiene la ruta de la carpeta de datos cada vez que se lanza el terminal. Por ejemplo:

2014.02.10 12:48:28.477 Carpeta de Datos: C:\Users\JohnSmith\AppData\Roaming\MetaQuotes\Terminal\9F86138A4E27C7218E9EC98A5F8D8CA1


Copiar archivos de la aplicación MQL4 cuando se actualiza a MetaTrader 4 Build 600 y superior

Cuando se inicia el terminal recientemente actualizado, verifica si existe la carpeta de datos. Si la carpeta de datos aún no está presente, entonces se crea. Si esa carpeta es diferente de la instalación, los datos periódicos del terminal (programas de MQL4 estándar, datos históricos, archivos de configuración, plantillas, etc.) se copian en él. Los archivos que no cambian durante la operación del terminal (archivos ejecutables, mql.dll compilador, archivos de sonido, etc.) se quedan en el directorio de instalación. La carpeta de datos del terminal es diferente de la instalación de uno de los siguientes casos:

  • El sistema UAC está habilitado. La excepción es cuando el terminal se instala en un dispositivo portátil (disco duro externo, memoria USB, etc.).
  • El usuario de PC actual ha limitado los derechos de escribir datos en el directorio de instalación.
  • Un usuario está trabajando a través de conexión remoto (RDP).

Si ninguna de las anteriores condiciones se cumplen, el terminal datos se almacenan en el directorio de instalación.

A continuación, los archivos de usuario se mueven a la carpeta de datos. En esta etapa, se determina el directorio donde se almacenaron los datos de usuario del terminal. Si los datos han sido almacenados en la carpeta de instalación del terminal, se copian de la siguiente manera:

Carpeta de origen en el directorio de instalación
Contenido Carpeta de destino en el directorio de datos del terminal
\experts
Asesores Expertos (robots de trading)
Nota: se copian sólo los archivos en el directorio raíz \experts. No hay subdirectorios que se copien, ya que es imposible determinar con fiabilidad su contenido
\MQL4\Experts
\experts\indicators Indicadores personalizados
\MQL4\Indicators
\experts\scripts
Scripts (aplicaciones MQL4 para una única prueba en la gráfica) \MQL4\Scripts
\experts\include Código fuente de los ficheros MQH y MQ4 implementados en otros programas \MQL4\Include
\experts\libraries Las librerías en forma de código fuente MQ4 y archivos ejecutables EX4 compilados. Se utilizan para la llamada dinámica de las funciones allí contenidas por otros programas del MQL4 \MQL4\Libraries
\experts\files Especial "file sandbox". Las aplicaciones MQL4 pueden ejecutar operaciones de archivo sólo dentro de este directorio \MQL4\Files
\experts\logs
Archivos de registro de aplicaciones MQL4
\MQL4\Logs
\experts\presets
Archivos de configuraciones para aplicaciones MQL4
\MQL4\Presets
\experts\images
Archivos imagen para ser usado como recursos \MQL4\Images


A continuación, se comprueba si el terminal de cliente ha almacenado los datos en el directorio virtualizado (de almacenamiento virtual del sistema operativo descrito anteriormente). Si el terminal se ha instalado en el directorio archivos de programa y el sistema operativo es Windows Vista o superior, probablemente los datos del terminal se almacenan en ese directorio. Si se encuentran los datos, se copian según la tabla anterior.

Los archivos son copiados y no deben moverse durante la migración. Los archivos copiados no son eliminados de las carpetas de origen.

Durante la migración, las entradas que contienen rutas de origen y destino de los archivos copiados se hacen en el diario del terminal. Para ver todos los registros, abra la ventana de la ficha del diario del Terminal y ejecutar el comando Abrir en el menú contextual. Se abrirá la carpeta que contiene los archivos de registro del terminal.

Si la migración de la copia actual del terminal se ha completado con éxito, no se repite más en posteriores actualizaciones del terminal MetaTrader 4. Si la carpeta de datos es diferente de la instalación, y las aplicaciones personalizadas de MQL4 han sido copiadas junto con los archivos estándar durante la migración, aparecerá la siguiente ventana de diálogo:

Migración completada con éxito


Modo Portátil

Se proporciona el lanzamiento del modo portátil para operar el terminal en dispositivos portátiles y en directorios de sin sistema, así como para trabajar en Windows XP. Cuando se pone en marcha este modo, el terminal intenta guardar sus datos en la carpeta de instalación. Sin embargo, usando el modo portátil no garantiza que un sistema operativo permita almacenar datos en la carpeta de instalación (por ejemplo, si el terminal se instala en el directorio archivos de programa y el sistema UAC está habilitado).

Las siguientes condiciones deben cumplirse para trabajar en modo Portable:

Directorio de instalación
Sistema operativo
Requisitos
Archivos de programa o en otro directorio del sistema (por ejemplo, Windows)
Windows XP
Permiso para escribir en la carpeta de instalación
Otro directorio sin sistema
Windows XP
Permiso para escribir en la carpeta de instalación
Disco duro externo, memoria USB, etc.. Windows XP El terminal se lanzará siempre en modo Portable.
Archivos de programa o en otro directorio del sistema (por ejemplo, Windows) Windows Vista\Windows 7
Lanzamiento del terminal como administrador y UAC discapacitado
Otro directorio sin sistema Windows Vista\Windows 7
Permiso para escribir en la carpeta de instalación
Disco duro externo, memoria USB, etc.. Windows Vista\Windows 7 El terminal se lanzará siempre en modo Portable.
Archivos de programa o en otro directorio del sistema (por ejemplo, Windows)
Windows 8 y superior
Es imposible utilizar el modo Portable, ya que el sistema UAC no se puede desactivar
Otro directorio sin sistema Windows 8 y superior
Permiso para escribir en la carpeta de instalación
Disco duro externo, memoria USB, etc.. Windows 8 y superior El terminal se lanzará siempre en modo Portable.


  • No se recomienda utilizar el modo portátil en caso de usar Windows Vista o superior, y el terminal se instala en archivos de programa. Este modo se proporciona para la operación del terminal en dispositivos portátiles y Windows XP.
  • Si ha actualizado el terminal y todos los datos han sido copiados a una carpeta de datos de usuario, tampoco no se recomienda cambiar al modo portátil.
  • Debe copiar manualmente los datos a la carpeta de instalación para utilizar de modo portátil después de copiar los datos en la carpeta de datos de usuario. Lanzar el terminal en modo Portable no copiar los datos desde la carpeta de datos de la instalación.

Para iniciar el terminal en modo Portable, usar tecla "/ portátil". Para mayor comodidad, puede crear un acceso directo para que el terminal adicional se inicie con el nombre apropiado en su escritorio y agregue la clave directamente en el acceso directo:

Lanzamiento 4 de MetaTrader en modo Portable


Conclusión

Para cumplir con los requisitos de los sistemas operativos Windows desarrollados por Microsoft se han hecho cambios en el sistema de almacenamiento de datos de la terminal MetaTrader 4. Este sistema de almacenamiento de datos se implementó originalmente en MetaTrader 5, y muchos traders lo utilizan con éxito por el momento.

Los datos del terminal MetaTrader 4 se transfieren automáticamente al directorio de usuario. No se requieren acciones adicionales de los usuarios en la mayoría de los casos. La información sobre todas las operaciones de copia de datos se muestra en la revista de MetaTrader 4.

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/1388

Cómo hemos desarrollado el servicio de señales comerciales MetaTrader y el trading social en general Cómo hemos desarrollado el servicio de señales comerciales MetaTrader y el trading social en general
Estamos perfeccionando activamente el servicio Señales, deshaciéndonos en el proceso de los anteriores desarrollos e introduciendo cambios en los mecanismos existentes. El MetaTrader Signals de hace dos años y el MetaTrader Signals actual son dos servicios totalmente diferentes.
Actualización de MetaTrader 4 Build 600 o superior Actualización de MetaTrader 4 Build 600 o superior
La nueva versión del terminal MetaTrader 4 cuenta con la estructura actualizada de almacenamiento de datos de usuario. En versiones anteriores todos los programas, plantillas, perfiles etc. se almacenan directamente en la carpeta de instalación del terminal. Ahora todos los datos necesarios requeridos para un determinado usuario se almacenan en un directorio llamado carpeta de datos. Leer el artículo para encontrar respuestas a preguntas frecuentes.
Errores comunes en los programas MQL4 y cómo evitarlos Errores comunes en los programas MQL4 y cómo evitarlos
Para evitar la conclusión crítica de programas, la versión anterior del compilador maneja muchos errores en el entorno de ejecución. Por ejemplo, división por cero o array fuera de rango son errores críticos y generalmente conducen al desplome del programa. El nuevo compilador puede detectar fuentes reales o potenciales de errores y mejorar la calidad del código. En este artículo, discutimos los posibles errores que pueden ser detectados durante la compilación de programas viejos y ver como solucionarlos.
Gráficos sin conexión en el nuevo MQL4 Gráficos sin conexión en el nuevo MQL4
El MQL4 actualizado tiene un nuevo formato para almacenar datos históricos y proporciona la estructura adecuada de MqlRates para el almacenaje conveniente de los valores tiempo, apertura, bajo, alto, cierre y volumen. Durante muchos años, los traders han desarrollado sus aplicaciones MQL4 que recogen y almacenan sus datos en ficheros HST para generar gráficos offline. Podemos asegurar que todos los archivos EX4 previamente compilados trabajarán en la nueva terminal MetaTrader 4 del mismo modo que antes.