MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 82

 

komposter Apparemment, j'ai mal formulé mon point de vue :). Vous êtes heureux quand vous voyez que c'est "disponible". Après être passé à une nouvelle version, au lieu d'une baisse de joie, j'ai plus d'espoir et de foi dans la prochaine :) Eh bien, c'est comme ça. .... J'ai essayé d'exprimer mes émotions aussi correctement que possible.

Renat, merci pour votre réponse. Nous attendons de nouvelles modifications, en espérant que mes remarques (au moins 5 l'ont déjà été) seront également prises en compte et que nous n'aurons pas à les relire.

 

J'ai créé dans tous les terminaux (MT4/MT5) dans le dossier Files un sous-dossier MyCommon, je les ai tous mappés sur un disque virtuel (le disque était configuré pour un démarrage automatique). // Maintenant, ce dossier est visible partout.

Dans ce dossier, j'ai créé un sous-dossier Include (désormais visible partout).

Dans ce dossier (et ses sous-dossiers), j'ai créé des fichiers include mql4/5 universels qui sont accessibles dans tous les terminaux à la fois. // Les directives de la famille #ifdef sont enfin apparues et fonctionnent maintenant parfaitement.

C'est vraiment très pratique maintenant. // Je le recommande à tout le monde.

MAIS :

J'ai rencontré un problème avec l'édition non synchrone des fichiers. // J'édite simultanément dans MT4/ME4 et MT5/ME5, afin de tester le code mql4 et mql5 simultanément, tout en l'écrivant.

Le problème : Lorsque vous modifiez un fichier dans l'un des éditeurs, l'autre ne remarque pas les changements. Ce n'est pas le cas. Il ne détecte pas, ne capte pas, et ne signale même pas un changement de fichier "externe" avec un choix "reload/ignore".

En d'autres termes, pour que le second réacteur puisse voir les modifications, le fichier doit être fermé dans celui-ci, puis rouvert. C'est extrêmement gênant.

Très grande demande aux développeurs : s'il vous plaît, faites une "autodétection" et un traitement de la modification externe du fichier chargé dans ME.

// Je pense qu'il l'était avant, mais il a cessé de fonctionner ?

--

Et une autre question : pourquoi ne pouvez-vous pas définir vos propres symboles pour la compilation conditionnelle ? Une fois encore, il ne s'agit pas vraiment d'une fonctionnalité à part entière. Ou est-ce que je ne cherche pas assez ?

 
MetaDriver:

J'ai créé dans tous les terminaux (MT4/MT5) dans le dossier Files un sous-dossier MyCommon, je les ai tous mappés sur un disque virtuel (le disque était configuré pour un démarrage automatique). // Maintenant, ce dossier est visible partout.

Dans ce dossier, vous avez créé un sous-dossier Include (maintenant visible partout).

Dans ce dossier (et ses sous-dossiers), je crée les fichiers d'inclusion universels mql4/5 auxquels on peut accéder dans tous les terminaux à la fois. // les directives de la famille #ifdef sont enfin apparues et fonctionnent maintenant parfaitement.

C'est vraiment très pratique maintenant. // Je le recommande à tout le monde.

MAIS :

J'ai rencontré un problème avec l'édition non synchrone des fichiers. // J'édite simultanément dans MT4/ME4 et MT5/ME5, afin de tester le code mql4 et mql5 simultanément, tout en l'écrivant.

Le problème : Lorsque vous modifiez un fichier dans l'un des éditeurs, l'autre ne remarque pas les changements. Ce n'est pas le cas. Il ne détecte pas, ne capte pas, et ne signale même pas un changement de fichier "externe" avec un choix "reload/ignore".

En d'autres termes, pour que le deuxième réacteur puisse voir les modifications, le fichier doit être fermé dans celui-ci, puis rouvert. C'est très gênant.

Une très grande demande aux développeurs : s'il vous plaît, faites une "autodétection" et gérez les modifications externes du fichier chargé dans ME.

// Il me semble que c'était déjà le cas avant, mais que ça a cessé de fonctionner ?

Où est-il écrit au sujet de ifdef ? Je ne le trouve pas dans l'aide MQL.

 
MetaDriver:

1. J'ai créé dans tous les terminaux (MT4/MT5) dans le dossier Files un sous-dossier MyCommon, je les ai tous mappés sur un disque virtuel (j'ai mis le disque en autostart). // maintenant ce dossier est visible partout.

J'ai créé un sous-dossier Include dans ce dossier (également visible partout maintenant).

Dans ce dossier (et ses sous-dossiers), j'ai créé des fichiers include mql4/5 universels qui sont accessibles dans tous les terminaux à la fois. // Les directives de la famille #ifdef sont enfin apparues et fonctionnent maintenant parfaitement.

C'est vraiment très pratique maintenant. // Je le recommande à tout le monde.

MAIS :

2. J'ai rencontré un problème avec l'édition non synchrone des fichiers. // J'édite simultanément dans MT4/ME4 et MT5/ME5, afin de tester le code mql4 et mql5 simultanément, tout en l'écrivant.

Le problème : Lorsque vous modifiez un fichier dans l'un des éditeurs, l'autre ne remarque pas les changements. Ce n'est pas le cas. Il ne détecte pas, ne capte pas, et ne signale même pas un changement de fichier "externe" avec un choix "reload/ignore".

En d'autres termes, pour que le second réacteur puisse voir les modifications, le fichier doit être fermé dans celui-ci, puis rouvert. C'est extrêmement gênant.

Une très grande demande aux développeurs : s'il vous plaît, faites une "autodétection" et un traitement de la modification externe du fichier chargé dans ME.

// Je pense qu'il était là avant, il a juste cessé de fonctionner...

1. À mon avis, il est plus pratique et plus fiable d'utiliser des liens symboliques, souples et durs qu'un disque virtuel. Pourtant, les options du système d'exploitation sont plus fiables que les logiciels.
2. Si l'enregistrement automatique ne veut pas le faire, alors la détection des modifications provenant d'un éditeur externe ne le fera pas.
 
MetaDriver:

J'ai créé dans tous les terminaux (MT4/MT5) du dossier Files un sous-dossier MyCommon, et je les ai tous mappés sur un disque virtuel.

Vous voulez dire le lien dur ?

Pourquoi pas dans MQL4\ MQL5\ ? Pourquoi à Filesh ?

 
MetaDriver:

J'ai créé dans tous les terminaux (MT4/MT5) dans le dossier Files un sous-dossier MyCommon, je les ai tous mappés sur un disque virtuel (le disque était configuré pour un démarrage automatique). // maintenant ce dossier est visible partout.

J'ai créé un sous-dossier Include dans ce dossier (également visible partout maintenant).

Dans ce dossier (et ses sous-dossiers), j'ai créé des fichiers include mql4/5 universels qui sont accessibles dans tous les terminaux à la fois. // Les directives de la famille #ifdef sont enfin apparues et fonctionnent maintenant parfaitement.

C'est vraiment très pratique maintenant. // Je le recommande à tout le monde.

MAIS :

J'ai rencontré un problème avec l'édition non synchrone des fichiers. // J'édite simultanément dans MT4/ME4 et MT5/ME5, afin de tester le code mql4 et mql5 simultanément, tout en l'écrivant.

Le problème : Lorsque vous modifiez un fichier dans l'un des éditeurs, l'autre ne remarque pas les changements. Ce n'est pas le cas. Il ne détecte pas, ne capte pas et ne signale même pas un changement de fichier "externe" avec un choix "reload/ignore".

En d'autres termes, pour que le second réacteur puisse voir les modifications, le fichier doit être fermé dans celui-ci, puis rouvert. C'est extrêmement gênant.

Une très grande demande aux développeurs : s'il vous plaît, faites une "autodétection" et un traitement de la modification externe du fichier chargé dans ME.

// Je pense qu'il était là avant, il a juste cessé de fonctionner...


Zhunko:
1. À mon avis, il est plus pratique et plus fiable d'utiliser des liens symboliques, souples et durs qu'un disque virtuel. Pourtant, les options du système d'exploitation sont plus fiables que les logiciels.
2. S'ils ne veulent pas faire d'auto-enregistrement, alors la détection des modifications provenant d'un éditeur externe ne suffira pas.

komposter:

Vous voulez dire le lien dur ?

Pourquoi pas dans MQL4\MQL5 ? Pourquoi à Filesh ?

Puis-je avoir une illustration ?
 
Barbarian:

Où est-il écrit au sujet de ifdef ? Je ne le trouve pas dans l'aide MQL.

C'était dans les annonces(sur les mises à jour de MT5 pour sûr). Puis elle a été mise en œuvre.

//\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);
  };

--

Tout cela fonctionne. Vous pouvez l'utiliser.

 
Zhunko:
1. À mon avis, il est plus pratique et plus fiable d'utiliser des liens symboliques, souples et durs qu'un disque virtuel. Pourtant, les options du système d'exploitation sont plus fiables que les logiciels.
2. Si l'enregistrement automatique ne veut pas le faire, alors la détection des changements provenant d'un éditeur externe ne le fera pas.

1. Je ne comprends pas les liens mous et durs. Comment les faire, comment les utiliser ?

2. Voyons voir. Vous n'avez pas besoin d'être aussi catégorique. Je te l'ai dit, ça l'était avant (dans ME5. L'éditeur disait "fichier modifié, recharger ?").

 
komposter:

Vous voulez dire le lien dur ?

Pourquoi pas dans MQL4\MQL5\ ? Pourquoi Files\ ?

Je ne comprends pas vraiment le lien dur. Mais ça doit être ça.

La raison est dans Files - parce que les programmes mql peuvent être écrits là. J'en ai souvent besoin pour générer automatiquement des inclusions avec des sources massives d'Enum ou de routine, dont la logique et/ou les données peuvent être modifiées dans le générateur de code.

// Je ne génère généralement rien de compliqué, mais il faut souvent quelque chose de simple et de régulier (en termes de structure) et de très routinier (comme cinquante variables externes, par exemple des coefficients de réseaux neuronaux pour l'optimisation MT).

 
tara:

Et vous pouvez le faire avec des illustrations ?

Alexei, j'ai joint un morceau de code source. Est-ce suffisant ?

Je n'ai juste pas compris quelles illustrations tu voulais.

en voici un autre. voici à quoi ressemble un dossier virtuel dans l'explorateur :



Vous pouvez donc ajouter des chemins d'accès au mappage du lecteur virtuel :