Questions d'un "mannequin - page 213

 
lazarev-d-m:

L'une des façons les plus simples d'insérer

où vous voulez vérifier si le code fonctionne ou vérifier si une condition est vraie (c'est-à-dire si toutes les conditions sont vraies et qu'une action doit être entreprise)

Par exemple, j'insère une alerte à l'intérieur de chaque fonction complexe avec un texte différent, afin de vérifier si la fonction a été exécutée et si l'EA l'atteint.

Peut-être que vous utilisez certaines conditions et qu'elles sont toujours fausses.

Merci.
L'EA cesse simplement de fonctionner, sans aucune erreur, et après avoir redémarré le terminal, il recommence à fonctionner.
J'ai besoin de savoir comment vérifier par programme si cela fonctionne ou non. Bien qu'il soit vert et qu'il n'y ait aucune erreur dans le journal.
Et après cette fonction de contrôle, je mettrai une alerte ou une impression ou un commentaire.
 
G001: Pouvez-vous me dire comment vérifier si le conseiller expert fonctionne ou non ?

Le problème est qu'il n'y a pas d'erreurs dans le journal, mais l'EA cesse parfois de fonctionner, et n'est rétabli qu'après le redémarrage du terminal.

Je ne comprends pas très bien comment vous définissez l'expression "le conseiller expert cesse parfois de fonctionner". Peut-être, ça commence juste une boucle sans fin. Son journal est vide et le conseiller expert fonctionne sans interruption. Ou peut-être qu'il a une autre caractéristique spéciale.

 

J'ai besoin d'une réponse à la question posée dans ce post : https://www.mql5.com/ru/forum/3775/page215#comment_379520

Quelqu'un connaît-il la réponse ?

 
tol64: J'ai besoin d'une réponse à la question posée dans ce post : https://www.mql5.com/ru/forum/3775/page215#comment_379520 Quelqu'un connaît-il la réponse ?

Il semble qu'il n'y ait pas de réponse directe, nous sommes donc laissés aux spéculations.

Ainsi, le type de licence peut être trouvé en utilisant Mql5InfoInteger(MQL5_LICENSE_TYPE). C'est-à-dire que parmi toutes les valeurs possibles de l'énumération ENUM_LICENSE_TYPE , une seule sera renvoyée. En outre - par la méthode des exceptions : la limite de temps de fonctionnement(LICENSE_TIME) ne peut pas être retournée avec les trois valeurs précédentes de l'énumération spécifiée. En particulier, LICENSE_TIME ne doit pas être renvoyé en même temps que LICENSE_DEMO .

Avec ce raisonnement, je donnerais une réponse négative à la question "est-il sous-entendu qu'un programme payant pour le Marché peut être limité dans le temps dans un test de démo ?". Parce quela démo d'un produit payant du marché a son propre identifiant - LICENSE_DEMO.

 
Yedelkin:

Il semble qu'il n'y ait pas de réponse directe, nous sommes donc laissés aux spéculations.

Ainsi, le type de licence peut être trouvé en utilisant Mql5InfoInteger(MQL5_LICENSE_TYPE). C'est-à-dire que parmi toutes les valeurs possibles de l'énumération ENUM_LICENSE_TYPE , une seule sera renvoyée. En outre - par la méthode des exceptions : la limite de temps de fonctionnement(LICENSE_TIME) ne peut pas être retournée avec les trois valeurs précédentes de l'énumération spécifiée. En particulier, LICENSE_TIME ne doit pas être renvoyé en même temps que LICENSE_DEMO .

Avec ce raisonnement, je donnerais une réponse négative à la question "est-il sous-entendu qu'un programme payant pour le Marché peut être limité dans le temps dans un test de démo ?". Parce quela démo d'un produit payant du marché a son propre identifiant - LICENSE_DEMO.

Je pense que LICENSE_TIME peut contenir à la fois LICENSE_DEMO et LICENSE_TIME. Un exemple clair est donné par des identifiants tels que MQL5_VISUAL_MODE et MQL5_TESTING. Donc, ils nous ont tous les deux fait savoir que nous sommes dans un testeur. ))

Je me demande donc ce que les développeurs ont réellement mis dans cet identifiant. Et en général, s'il n'y a pas de possibilité de limiter le temps de certains programmes payants en mode démo, il serait bien d'avoir une telle possibilité. Car il peut y avoir des options très rentables à utiliser pour vos propres programmes, même sans les acheter. )))

 
tol64: Et je pense queLICENSE_DEMO et LICENSE_TIME peuvent toutes deux être contenues dans LICENSE_TIME en même temps.

Je suis d'accord pour dire que je suis passé complètement à côté des particularités terminologiques des matériaux de référence, en raison desquelles la méthode d'exclusion peut conduire à des résultats incorrects pour une raison ou une autre. ...Au moins, les malentendus sur le sujet ont été exprimés, et seuls les auteurs de cette liste peuvent y répondre.

 
tol64: Et en général, s'il n'y a pas de possibilité de limiter le temps de certains programmes payants en mode démo, il serait bien d'avoir une telle option. Parce qu'il peut y avoir des options qui peuvent être très rentables à utiliser pour vos programmes, même sans les acheter. )))
Et vous faites cette proposition directement au Service Desk. En même temps, vous découvrirez la réalité des choses :)
 
Yedelkin:

Je ne sais pas exactement comment vous déterminez que "l'EA cesse parfois de fonctionner". Peut-être, ça commence juste une boucle sans fin. Le journal est vide, mais le conseiller expert fonctionne sans arrêt. Ou peut-être qu'une autre particularité est déclenchée.

Il n'y a pas de boucles. Il s'ouvre assez souvent, 10-20 fois par jour, lorsque je vois des signaux d'indicateurs sur le graphique mais que l'EA n'a pas ouvert de position, cela signifie qu'il ne fonctionne pas. Je redémarre leterminal et cela fonctionne à nouveau.
 
G001 Lorsque je vois des signaux d'indicateurs sur un graphique mais que le conseiller expert n'a pas ouvert de position, cela signifie qu'il ne fonctionne pas.

On se rapproche du sujet. Il s'avère donc que votre EA ne réagit plus aux signaux des indicateurs ? Mais cela ne signifie pas que l'EA "ne fonctionne pas". Peut-être que cela fonctionne encore, mais pas de la manière prévue par l'auteur.

Essayez de régler un minuteur avec une période de 10 minutes, par exemple. Et imprimez tous les indices qui sont significatifs pour votre conseiller expert. Voyez si les chiffres évoluent dans le temps. Si le journal est vide dans ce cas également, vous devez absolument vous adresser au Service Desk avec une copie du code.

Ajout. Ou voici une autre idée. Vous avez un endroit dans votre code avec une condition comme si, après le déclenchement, quelle demande de transaction doit être envoyée. Essayez d'imprimer les cas de déclenchement/non déclenchement de cette condition, par exemple :

if ()
  {
   ... 
   Print("Сработало условие такое-то, время такое-то");
  }
else
  {
   ...
   Print("Не сработало условие такое-то, время такое-то");
  }
 
Merci. Il est peu probable que le problème vienne de l'EA, sinon la règle du redémarrage du terminal ne fonctionnerait pas toujours. C'est également un problème dans MT4 avec certains courtiers. J'ai juste besoin de vérifier par programme quand il s'arrête de fonctionner pour redémarrer avant le prochain signal. Ajouté les empreintes et les commentaires.