MetaTrader 4 Build 529 beta liberado con nuevo compilador - página 82

 

komposter Al parecer me expresé mal :). Te alegras cuando ves que está "disponible". Después de haber actualizado a una nueva construcción, en lugar de disminuir la alegría tengo más esperanza y creencia en la siguiente :) Bueno, ahí tienes .... Intenté expresar mis emociones lo más correctamente posible.

Renat, gracias por tu respuesta. Estamos a la espera de nuevos cambios, esperemos que mis observaciones (al menos 5 ya lo han sido) también sean tenidas en cuenta y no haya que volver a leerlas.

 

He hecho en todos los terminales (MT4/MT5) en la carpeta Files una subcarpeta MyCommon, los he mapeado todos a un disco virtual (el disco estaba configurado para autoarrancarse). // Ahora esta carpeta es visible en todas partes.

En esta carpeta hice una subcarpeta Include (también visible ahora en todas partes).

En esta carpeta (y subcarpetas) he creado archivos de inclusión universales mql4/5 que son accesibles en todos los terminales a la vez. // Las directivas de la familia #ifdef han aparecido por fin y ahora funcionan perfectamente.

Ahora es realmente muy conveniente. // Lo recomiendo a todo el mundo.

PERO :

Me he encontrado con un problema de edición no sincronizada de archivos. // Estoy editando simultáneamente en MT4/ME4 y MT5/ME5, para probar el código de mql4 y mql5 simultáneamente, mientras lo escribo.

El problema: Cuando cambias un archivo en uno de los editores, el otro no nota los cambios. No lo hace. No detecta, no capta, y ni siquiera informa de un cambio de archivo "externo" con una opción de "recargar/ignorar".

Es decir, para que el segundo reactor vea los cambios, hay que cerrar el archivo en él y volver a abrirlo. Esto es extremadamente inconveniente.

Una petición muy grande a los desarrolladores: por favor, hagan la "autodetección" y el procesamiento de la modificación externa del archivo cargado en ME.

// Creo que solía ser, simplemente dejó de funcionar ?

--

Y otra pregunta: ¿por qué no puedes definir tus propios símbolos para la compilación condicional? Una vez más, no es una función completa. ¿O es que no estoy buscando lo suficiente?

 
MetaDriver:

He hecho en todos los terminales (MT4/MT5) en la carpeta Files una subcarpeta MyCommon, los he mapeado todos a un disco virtual (el disco estaba configurado para autoarrancarse). // Ahora esta carpeta es visible en todas partes.

En esta carpeta hizo una subcarpeta Incluir (ahora también visible en todas partes).

En esta carpeta (y subcarpetas) he creado archivos de inclusión universales mql4/5 que son accesibles en todos los terminales a la vez. // Las directivas de la familia #ifdef finalmente aparecieron y ahora funcionan perfectamente.

Ahora es realmente muy conveniente. // Lo recomiendo a todo el mundo.

PERO :

Me he encontrado con un problema de edición no sincronizada de archivos. // Estoy editando simultáneamente en MT4/ME4 y MT5/ME5, para probar el código de mql4 y mql5 simultáneamente, mientras lo escribo.

El problema: Cuando cambias un archivo en uno de los editores, el otro no nota los cambios. No es así. No detecta, no capta, y ni siquiera informa de un cambio de archivo "externo" con una opción de "recargar/ignorar".

En otras palabras, para que el segundo reactor vea los cambios, hay que cerrar el archivo en él y volver a abrirlo. Esto es muy inconveniente.

Una petición muy grande a los desarrolladores : por favor, hagan la "autodetección" y manejen la modificación externa del archivo cargado en ME.

// Me parece que era antes, sólo que dejó de funcionar ?

¿Dónde está escrito lo de ifdef? No lo encuentro en la ayuda de MQL

 
MetaDriver:

1. He hecho en todos los terminales (MT4/MT5) en la carpeta Files una subcarpeta MyCommon, los he mapeado todos a un disco virtual (he puesto el disco en autostart). // ahora esta carpeta es visible en todas partes.

Hice una subcarpeta Include en esta carpeta (también visible en todas partes ahora).

En esta carpeta (y subcarpetas) he creado archivos de inclusión universales mql4/5 que son accesibles en todos los terminales a la vez. // Las directivas de la familia #ifdef han aparecido por fin y ahora funcionan perfectamente.

Ahora es realmente muy conveniente. // Lo recomiendo a todo el mundo.

PERO :

2. Me he encontrado con un problema de edición no sincronizada de archivos. // Estoy editando simultáneamente en MT4/ME4 y MT5/ME5, para probar el código de mql4 y mql5 simultáneamente, mientras lo escribo.

El problema: Cuando cambias un archivo en uno de los editores, el otro no nota los cambios. No lo hace. No detecta, no capta, y ni siquiera informa de un cambio de archivo "externo" con una opción de "recargar/ignorar".

Es decir, para que el segundo reactor vea los cambios, hay que cerrar el archivo en él y volver a abrirlo. Esto es extremadamente inconveniente.

Una petición muy grande a los desarrolladores: por favor, hagan la "autodetección" y el procesamiento de la modificación externa del archivo cargado en ME.

// Creo que ya estaba ahí, sólo que dejó de funcionar ?

1. En mi opinión, es más cómodo y fiable utilizar enlaces simbólicos, blandos y duros que un disco virtual. Aun así, las opciones del sistema operativo son más fiables que el software.
2. Si el autoguardado no quiere hacer, entonces la detección de los cambios de un editor externo no lo hará.
 
MetaDriver:

Hice que todos los terminales (MT4/MT5) de la carpeta Files fueran una subcarpeta MyCommon, y los asigné a una unidad virtual

¿Te refieres a hardlink?

¿Por qué no en MQL4\ MQL5\? ¿Por qué en Files\?

 
MetaDriver:

He hecho en todos los terminales (MT4/MT5) en la carpeta Files una subcarpeta MyCommon, los he mapeado todos a un disco virtual (el disco estaba configurado para autoarrancarse). // Ahora esta carpeta es visible en todas partes.

Hice una subcarpeta Incluir en esta carpeta (también visible en todas partes ahora).

En esta carpeta (y subcarpetas) he creado archivos de inclusión universales mql4/5 que son accesibles en todos los terminales a la vez. // Las directivas de la familia #ifdef han aparecido por fin y ahora funcionan perfectamente.

Ahora es realmente muy conveniente. // Lo recomiendo a todo el mundo.

PERO :

Me he encontrado con un problema de edición no sincronizada de archivos. // Estoy editando simultáneamente en MT4/ME4 y MT5/ME5, para probar el código de mql4 y mql5 simultáneamente, mientras lo escribo.

El problema: Cuando cambias un archivo en uno de los editores, el otro no nota los cambios. No lo hace. No detecta, no capta, y ni siquiera informa de un cambio de archivo "externo" con una opción de "recargar/ignorar".

Es decir, para que el segundo reactor vea los cambios, hay que cerrar el archivo en él y volver a abrirlo. Esto es extremadamente inconveniente.

Una petición muy grande a los desarrolladores: por favor, hagan la "autodetección" y el procesamiento de la modificación externa del archivo cargado en ME.

// Creo que ya estaba ahí, sólo que dejó de funcionar ?


Zhunko:
1. En mi opinión, es más cómodo y fiable utilizar enlaces simbólicos, blandos y duros que un disco virtual. Aun así, las opciones del sistema operativo son más fiables que el software.
2. Si no quieren hacer autoguardado, entonces la detección de cambios desde un editor externo no servirá.

komposter:

¿Te refieres al enlace duro?

¿Por qué no en MQL4\MQL5? ¿Por qué en Files\?

¿Puedo tener una ilustración?
 
Barbarian:

¿Dónde está escrito lo de ifdef? No lo encuentro en la ayuda de MQL

Estaba en los anuncios(en las actualizaciones de MT5 seguramente). Entonces se puso en práctica.

//\files\MyCommon\Include\StatBasket_01.mqh
//+------------------------------------------------------------------+
//|                                                StatBasket_01.mqh |
//|                                           © 2013, MetaDriver Lab |
//|                       https://www.mql5.com/ru/users/MetaDriver |
//+------------------------------------------------------------------+
#property copyright "© 2013, MetaDriver Lab"
#property link      "https://www.mql5.com/ru/users/MetaDriver"

#ifndef __MQL5__
    #property strict
#endif 

#ifdef _DEBUG
class CLogPrint  // дебаг версия лог-файла (расширенная)
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#else 
class CLogPrint  // релиз версия
  {
public:
                     CBebugLog(void);
                    ~CBebugLog(void);
  };
#endif 

class CSBasket
  {
public:
                     CSBasket(void);
                    ~CSBasket(void);
  };

--

Todo esto funciona. Puedes usarlo.

 
Zhunko:
1. En mi opinión, es más cómodo y fiable utilizar enlaces simbólicos, blandos y duros que un disco virtual. Aun así, las opciones del sistema operativo son más fiables que el software.
2. Si el autoguardado no quiere hacer, entonces la detección de cambios de un editor externo no lo hará.

1. No entiendo lo de los enlaces blandos / duros. ¿Cómo hacerlas, cómo utilizarlas?

2. Veamos. No hay que ser tan categórico. Te lo dije, antes lo era (en ME5. el editor decía "archivo cambiado, recarga...")

 
komposter:

¿Te refieres al enlace duro?

¿Por qué no en MQL4\MQL5\? ¿Por qué Files\?

No entiendo muy bien lo de la conexión dura. Pero debe ser eso.

La razón está en Files - porque los programas mql pueden ser escritos allí. A menudo lo necesito para autogenerar inclusiones con algunas fuentes masivas de Enum o rutinas, donde la lógica y/o los datos pueden ser cambiados en el generador de código.

// No suelo generar nada complicado, pero a veces necesito algo sencillo y regular (en términos de estructura) y muy rutinario (como cincuenta variables externas, por ejemplo, coeficientes de redes neuronales para la optimización de MT).

 
tara:

¿Y se puede con las ilustraciones?

Alexei, he adjuntado un trozo de código fuente. ¿Es suficiente?

No he entendido qué ilustraciones quieres.

aquí hay más. este es el aspecto de una carpeta virtual en el explorador:



Y así puedes añadir rutas a la asignación de unidades virtuales: