Erreurs, bugs, questions - page 940

 

Bon après-midi.

Pouvez-vous me dire ce que l'on peut faire ...

A la place de C:\Program files\MT 5 ......... toutva dans C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\...

J'ai désinstallé et installé MT 5 plusieurs fois - même résultat. Tout cela s'est produit après l'installation de Windows 8.

Salutations, E.Kovalev

 
erkov:

Bon après-midi.

Pouvez-vous me dire ce que l'on peut faire ...

A la place de C:\Program files\MT 5 ......... toutva dans C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\...

J'ai désinstallé et installé MT 5 plusieurs fois - même résultat. Tout cela s'est produit après l'installation de Windows 8.

Cordialement, E. Kovalev

J'ai le même sur mon bureau 7 et tous les Expert Advisors, inductions, etc. sont installés dessus.

Apparemment, il s'agit d'un "défaut".

je voudrais aussi le changer ? ce n'est pas pratique pour se rendre au dossier....

 
Violation d'accès en écriture à 0x000000001535C1D8


voici ce que le script donne, le script appelle le même indicateur en boucle, seuls les paramètres changent, après environ 300 appels ce message

au début de la boucle, je crée un handle

appeler l'indicateur

à la fin de chaque cycle, mettre IndicatorRelease(...) ;

peut-être que quelque chose d'autre doit supprimer l'indicateur

 
vgeny:

J'ai la même chose sur mon 7, toutes les EAs, inductions, etc. sont placées là.

cela doit être le "défaut".

Je me demande aussi comment le changer ? Ce n'est pas pratique pour se rendre sur le dossier.....

Consultez l'aide intégrée du terminal - Aide de MetaTrader 5 → Menu DémarrerExécuter le terminal:

Mode invité

La distinction du mode invité du lancement du terminal client est l'emplacement de ses fichiers modifiables séparément des fichiers non modifiables. Ce mode est utilisé lorsque le terminal est installé dans le dossier système (dossier OS, Program Files) et que les droits d'écriture de l'utilisateur sont limités.

Le mode invité est également activé dans les situations suivantes :

  • Si l'UAC (User Account Control) est activé.
  • Si vous vous connectez à un ordinateur à distance (protocole de bureau à distance, RDP).

Dans les situations ci-dessus, tous les fichiers modifiables du terminal, selon le système d'exploitation utilisé, sont stockés dans les répertoires suivants :

Microsoft Windows XP :

  • C:\N- Documents et Paramètres\N- Nom d'utilisateur\N- Données de l'application\N- MetaQuotes\N- Terminal\N- Identité de l'instance\N-.

Microsoft Windows Vista et versions ultérieures :

  • C:\Users\Nsername\NApplication Data\NRoaming\NMetaQuotes\Terminal\Ninstance_id\N

Ici, "C" est la lettre d'un lecteur logique où le système d'exploitation est installé, "username" est le nom du compte dans le système d'exploitation, sous lequel le terminal a été installé, et "instance_id" est un identifiant unique généré sur la base du chemin vers un répertoire, où le terminal est installé.

Pour accéder rapidement à ces dossiers, le terminal fournit une commande spéciale - "Ouvrez le répertoire de données Ouvrir le répertoire de données " située dans le menu " Fichier ".

  • En mode invité, chaque compte Windows aura un répertoire différent pour stocker les fichiers modifiés du terminal.
  • Pour forcer le terminal à démarrer en mode principal, lancez-le depuis la ligne de commande avec le commutateur /portable.
  • Une description détaillée de la structure des fichiers des terminaux clients et de leurs fonctions est donnée dans la section correspondante.

Si vous ne voulez pas avoir de problèmes avec le système de sécurité, n'installez pas le terminal dans le dossier/Program Files/ .

Lire aussi l'article Une plongée rapide dans MQL5


 
vgeny: avant l'impression

k2 = NormalizeDouble(k2, 2);

Dans le journal de bord, cela donne ceci

0.07000000000000001

et seulement lorsque le coefficient est de 0,07

type k2 double k2 ;

qu'est-ce que ça peut être ?

Apparemment, c'est exactement ce à quoi ressemble ce chiffre après normalisation. Regardez dans la référence la note décrivant la fonction NormalizeDouble() : que va imprimer la ligne suivante ?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny: Violation d'accès en écriture à 0x000000001535C1D8

voici ce que le script donne, le script appelle le même indicateur en boucle, seuls les paramètres changent, après environ 300 appels ce message

Je forme le handle au début de la boucle, appelle l'indicateur, met IndicatorRelease(...) à la fin de chaque boucle ;

peut-être que quelque chose d'autre doit supprimer l'indicateur

Un appel d'indicateur continu dans une boucle ? C'est une méthode très difficile. Ici, trouvez le début et lisez attentivement tout le sujet : En fait, dans 99% des cas, l'appel à IndicatorRelease est une erreur logique du programmeur.
 
vgeny:

Veuillez expliquer pourquoi cela arrive à la ligne de boucle

for(k2 = 0,01 ; k2 < 0,1 ; k2 += 0,01)

J'envoie le coefficient k2 à l'impression

Imprimer(k2) ;

avant l'impression

k2 = NormalizeDouble(k2, 2) ;

ça ressemble à ça dans le journal

0.07000000000000001

et seulement lorsque le coefficient est de 0,07

type k2 double k2 ;

qu'est-ce que ça peut être ?

Cette question a déjà été discutée à de nombreuses reprises.

Lisez-le ici.

 
Yedelkin:
Appeler continuellement l'indicateur dans une boucle ? C'est une façon très difficile de le faire. Ici, trouvez le début et lisez attentivement tout le sujet : En fait, dans 99% des cas, l'appel à IndicatorRelease est une erreur logique du programmeur.

ok 900 pages))

Je vous conseille une autre façon d'inspecter la ligne de l'indicateur, 10000 variantes différentes du paramètre de l'indicateur, le résultat de chacune d'entre elles est inspecté pour l'écart, etc, sauvegarder le résultat, prendre le paramètre suivant, etc.

Par exemple, si vous considérez le MA, 10000 périodes, comment le mettre en œuvre ?

 
alexvd:

La question a déjà été abordée à de nombreuses reprises.

Lisez-le ici.

OK, merci de votre patience et de votre compréhension))))))).
 

vgeny:

Yedelkin:
Un appel d'indicateur continu dans une boucle ? C'est une méthode très difficile. Ici, trouvez le début et lisez attentivement tout le sujet : En fait, dans 99% des cas, l'appel à IndicatorRelease est une erreur logique du programmeur.

ok 900 pages))

Non, pas 900 pages. Il est peu probable que le sujet concernant l'utilisation inefficace de IndicatorRelease() obtienne plus de 10 pages à proximité de ce lien. C'est pourquoi je vous ai conseillé de "trouver le début" du sujet. Il n'est pas nécessaire de relire la branche générale "Erreurs, bugs, questions" pour cela.

vgeny : Je vais vous conseiller une autre façon d'examiner la ligne de l'indicateur, je vais examiner le résultat de chaque paramètre, je vais enregistrer le résultat et prendre le suivant et ainsi de suite.

C'est-à-dire que vous avez besoin de 10 000 indicateurs pour l'analyse (10 000 versions d'un indicateur avec des paramètres différents) ? Je pense que la réponse à cette question a déjà été donnée - essayez de chercher dans les fils du forum avec le mot-clé IndicatorRelease.

vgeny : par exemple, si vous envisagez une MA, 10000 périodes, comment l'implémenteriez-vous ?

Il est difficile de répondre lorsque l'on ne comprend pas la signification de l'utilisation d'un si grand nombre de périodes/paramètres. Mais théoriquement, je renoncerais à l'idée d'utiliser 10 mille indicateurs standard (10 mille versions d'un indicateur standard avec des paramètres différents) et j'écrirais mon propre indicateur (un seul) qui recalcule 10 mille valeurs à chaque tick et d'autres paramètres dérivés. Et il minimise le nombre de tampons d'indicateurs - vous avez besoin des données calculées, pas de leur reflet sur le graphique. Et il faut vérifier si un tel hybride effectue tous les calculs en une seule fois. Ou dans une minute, si votre analyse permet de faire un recalcul minute par minute au lieu de tic par tic.

Voici un exemple simple : les bandes de Bollinger. Vous pouvez utiliser trois indicateurs distincts - pour la ligne médiane, supérieure et inférieure. Ou vous pouvez les combiner élégamment dans un seul programme indicateur.