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

 

J'ajoute ces lignes au code source de l'indicateur :

#property version             "1.00"
#property description         "This indicator looks for two consecutive fractal and puts signal pointers"
#property description         "Flag DrawArrowSig : true = Set signal arrow, false = No set signal arrow"
#property icon                "\\files\\FindTwoFractals32x32.ico";

C'est ce que nous avons en fin de compte :


D'où la question :

  1. Est-il possible d'utiliser les ressources dans les indicateurs ?
  2. Le chemin d'accès au fichier icône "\files\\\FindTwoFractals32x32.ico" est-il correctement spécifié ; si l'emplacement réel du fichier est D:\NewMT4\MQL4\files et que le terminal avec ME est lancé /portable
  3. Quelle taille en pixels est acceptable pour une icône ?
Merci.
 
artmedia70:

J'ajoute ces lignes au code source de l'indicateur :

C'est ce que nous avons en fin de compte :


D'où la question :

  1. Est-il possible d'utiliser les ressources dans les indicateurs ?
  2. Le chemin d'accès au fichier icône "\files\\\FindTwoFractals32x32.ico" est-il correctement spécifié ; si l'emplacement réel du fichier est D:\NewMT4\MQL4\files et que le terminal avec ME est lancé /portable
  3. Quelle taille de pixel est acceptable pour une icône ?
Merci.


1. c'est possible. nous allons modifier la fenêtre pour qu'elle ait la même taille que MT5.

2. Regardez "File - Open data directory". C'est l'endroit où le chemin sera lu

3. il est préférable d'utiliser un jeu complet (plusieurs icônes dans un seul fichier) de 16x16 à 64x64 (128x128) fichiers .ico. Les programmes seront bientôt affichés avec leurs icônes natives directement dans l'interface du système d'exploitation.

Vous pouvez également en savoir plus sur les ressources :

 

Vous avez fait une astuce très pratique lors de la création de paramètres externes et d'entrée, pour remplacer la variable par sa description après //.

Est-il possible de remplacer les descriptions des fonctions personnalisées, maintenant je fais une initialisation vide d'une variable de type string dans mes fonctions pour voir tous les paramètres des valeurs passées

 
double  iBands(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          period,           // период
   int          deviation,        // отклонение
   int          bands_shift,      // сдвиг относительно цены
   int          applied_price,    // тип цены
   int          mode,             // индекс линии
   int          shift             // сдвиг
   );
У deviation тип double должен быть.
 

La plupart des problèmes sont résolus en nommant explicitement les variables dans le prototype. C'est-à-dire, non pas typ1, typ2, mais transaction_type, trade_operation, etc.

S'il existe des valeurs énumérées, il est préférable de les décrire avec enum, ce qui permet ensuite une substitution automatique lors de l'édition.

 
Renat:
Nous ramenons tout dans la même vue pour des raisons de compatibilité avec l'UAC. La migration des répertoires dans la version 534 est terminée.

C'est-à-dire qu'il y a plus d'une construction 534 ? La question se pose d'elle-même, car j'ai la version 534, le terminal n'est pas installé dans X:\Program Files (x86) ni dans X:\Program Files, le système d'exploitation est Windows 7, les droits sont ceux d'un administrateur, au cas où j'aurais défini un accès complet aux répertoires et sous-répertoires du terminal, mais les "déchets" sont toujours créés dans X:\Users\xxx\AppData\Roaming\MetaQuotes\. Dans le même temps, des "déchets" sont également créés dans X:\ProgramData\MetaQuotes. Dans la version 529 avec tout ce qui est mentionné ci-dessus, les déchets dans X:\Users\xxx\AppData\Roaming\MetaQuotes\ n'ont pas été créés.

J'ai oublié, le paramètre /portable est activé.

 
Quel est ce mystérieux paramètre "/portable" ? Où doit-elle être incluse ? Ou pas ?
 
Zhunko:
Quel est ce mystérieux paramètre "/portable" ? Où doit-elle être incluse ? Ou pas ?
Ce paramètre démarre de manière forcée le terminal dans sa sandbox et est activé au démarrage du terminal ou de l'unitor. En théorie, cela devrait empêcher le programme de créer des déchets dans le système. J'ai créé un fichier batch - démarrer terminal.exe /portable
 
Barbarian:

C'est-à-dire qu'il y a plus d'une construction 534 ? La question se pose d'elle-même, car j'ai la version 534, le terminal n'est pas installé dans X:\Program Files (x86) ni dans X:\Program Files, le système d'exploitation est Windows 7, les droits sont ceux d'un administrateur du système, au cas où je définirais un accès complet aux répertoires et sous-répertoires du terminal, mais les "déchets" sont toujours créés dans X:\Users\xxx\AppData\Roaming\MetaQuotes\. Dans le même temps, des "déchets" sont également créés dans X:\ProgramData\MetaQuotes. Dans la version 529 avec tout ce qui est mentionné ci-dessus, les déchets dans X:\Users\xxx\AppData\Roaming\MetaQuotes\ n'ont pas été créés.

Oublié, le paramètre /portable est activé.

Construisez-en un.

Les applications 32 bits sur Windows 64 bits sont installées exclusivement dans Program Files (x86) - c'est l'exigence de compatibilité de Microsoft.

Les répertoires de données dans la zone Users/AppData ne sont plus des déchets, ni des recommandations de Microsoft (dont tous les développeurs se sont moqués pendant de nombreuses années), mais la dure vérité de la vie. Dans les systèmes d'exploitation récents, Microsoft a donné un coup de massue à tout le monde pour qu'il fonctionne correctement, parce qu'il n'y a pas d'autre moyen de faire face à l'UAC. Dans le marché de masse, c'est le seul moyen qui reste. C'est comme si l'UAC était activé partout et ne pouvait jamais être désactivé.

Pour forcer le terminal à sauvegarder la plupart des données dans un répertoire local, ou pour travailler en mode portable/transportable (par exemple sur un flash), vous devez utiliser le drapeau /portable. Mais cela ne s'applique toujours pas au stockage de données générales non personnalisées dans Users/AppData.

 
Barbarian:
Ce paramètre force le terminal à s'exécuter dans sa sandbox et est activé au démarrage du terminal ou de l'unicast. Il est censé empêcher le programme de créer des déchets sur le système. J'ai créé un fichier batch - démarrer terminal.exe /portable
C'est étrange... Ne devrait-il pas s'agir de la valeur par défaut, comme c'était le cas auparavant ?
Raison: