Que diable se passe-t-il ? - page 8

 
Сергей Таболин:

Chéri, juste un mot, parce que personne pour qui travailler avec des fichiers est important, jusqu'à ce que je l'imprime, non plus, n'a suggéré que cela pourrait être le problème ;) :) Bref, c'est réglé.

Maintenant une question distraite : quelle est la différence entre les lignes suivantes ?

   filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_OPTIMIZATION) ? ".opt" : ".tst");
   filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_TESTER) ? ".tst" : ".opt");

Et, si possible, des explications - pourquoi ?

Mode d'optimisation

Mode testeur

Le mode testeur inclut le mode optimisation, mais pas l'inverse.

Vos deux lignes sont fausses.

Le premier :

En mode optimisation, l'extension est .opt, sinon l'extension est .tst. Mais en cas de "sinon", il se peut que ce ne soit pas du tout un testeur.

Deuxièmement :

En mode testeur, l'extension est .tst, sinon l'extension est .opt. Mais dans le cas d'un "autre", il peut ne pas être un testeur du tout.

Bien :

  • Si mode testeur.
    • En mode optimisation, l'extension .opt
      • sinon, l'extension .tst
 
Artyom Trishkin:

Mode d'optimisation

Mode Testeur

Le mode test inclut le mode optimisation, mais pas l'inverse.

Vos deux lignes sont toutes deux fausses.

Le premier :

En mode optimisation, l'extension est .opt, sinon l'extension est .tst. Mais en cas de "sinon", il se peut que ce ne soit pas du tout un testeur.

Deuxièmement :

En mode testeur, l'extension est .tst, sinon l'extension est .opt. Mais dans le cas d'un "autre", il peut ne pas être un testeur du tout.

Bien :

  • Si mode testeur.
    • En mode optimisation, l'extension .opt
      • sinon, l'extension .tst

ça suffit.

Sauf, bien sûr, si vous voulez vérifier si l'EA fonctionne en mode graphique ou en mode test.

 
Andrey Dik:

c'est suffisant.

Et si ce n'est pas un testeur, qu'est-ce que c'est ?

 
Artyom Trishkin:

Et si ce n'est pas du tout un testeur, alors quoi ?

il n'a pas pour tâche de vérifier dans le testeur ou sur une exécution graphique, mais seulement de déterminer s'il s'agit d'une simple exécution sur l'historique ou dans le cadre d'un paquet d'optimisation, si je comprends bien TC

 
Andrey Dik:

il n'a pas pour tâche de vérifier dans le testeur ou dans l'exécution graphique, mais seulement de déterminer s'il s'agit d'une simple exécution sur l'historique ou dans le cadre d'un paquet d'optimisation, si je comprends bien TC

Exactement. Si ce n'est pas un testeur ou un optimiseur, il ne vient pas du tout ici ;)))

Artem, si j'ai bien compris, ma telle conception

if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))

est superflue ?

Ce sera suffisant

if(MQLInfoInteger(MQL_TESTER))

?

 
Maxim Kuznetsov:

si le fichier est écrit dans COMMON, il doit avoir SHARE_READ et un contrôle de course en écriture plutôt délicat. C'est plutôt décent de ne pas tirer sur le talon en public.

En général, il est de bonne pratique que les conseillers n'écrivent rien dans le commun. Ils peuvent le lire, mais il est écrit ou copié là par le commerçant qui en est personnellement responsable. Pour tous les conseillers experts dans tous les terminaux, ce sont des mots donnés d'en haut.

Si un fichier est écrit dans un répertoire normal sans SHARE_XXX, mais que l'optimiseur génère des erreurs d'accès partagé, il s'agit d'un bug des développeurs de terminaux.

Ainsi, le conseiller expert n'écrit rien à cet endroit, il ne fait que lire.


P.S. En plus, c'est le seul qui le lit (jusqu'à présent).
 
Сергей Таболин:

Mais le conseiller expert lui-même n'écrit rien à cet endroit, il ne fait que le lire.


P.S. D'ailleurs il ne lit que lui (le seul exemplaire jusqu'à présent).

Si dans COMMON, SHARE_READ est obligatoire.

comme dans la blague - "vous ne pouvez pas le comprendre, vous devez vous en souvenir" :-)

PS/ lorsqu'il est dans le testeur - il lit non seulement à partir du commun (séparé par groupe) mais aussi à partir de toutes les copies testées en parallèle. À propos, il s'agit également d'un bug potentiel - il semble qu'il soit possible de tromper le testeur et de dessiner un graal.

 
Maxim Kuznetsov:

si dans COMMON, SHARE_READ est obligatoire.

Eh bien, ce n'est pas obligatoire.

Le multi-accès n'est pas aussi bon que vous le souhaiteriez.

 
Andrey F. Zelinsky:

Eh bien, ça n'a pas à l'être.

Le multi-accès n'est pas tout à fait ce qu'il est censé être.

J'espère qu'il n'y a pas de problèmes avec le multi-accès en mode lecture seule ? Ou est-ce qu'il y en a ?

 
Сергей Таболин:

Exactement. À moins que vous ne soyez un testeur ou un optimiseur, vous ne venez pas du tout ici ;)))

Artem, si j'ai bien compris, alors ma telle construction

est superflue ?

Ce sera suffisant

?

Non. Au contraire.
Eh bien, c'est si vous avez besoin de demi-mesures.