Erreurs, bugs, questions - page 969

 
tol64:

Eh bien, faites-le vérifier. Vous avez un problème, alors vous devriez le vérifier. )) Je commence généralement à vérifier quand j'ai besoin d'être sûr. Et dans les indicateurs, après le calcul principal, la dernière valeur est généralement mise à jour et je n'ai pas remarqué de problème. Et personne ne semble l'avoir remarqué, sauf vous. C'est pourquoi ça m'a rendu curieux. ))

Qu'entendez-vous par application ? Vous utilisez le mot "application" à la fois comme quelque chose de séparé du terminal et comme le terminal lui-même, il est donc difficile de vous comprendre.

Que voulez-vous dire par "fermer l'application sans fermer le terminal" ? Vous ne pouvez pas supprimer un conseiller expert, un indicateur ou un script d'un graphique ?

Oui, je dois réfléchir à la manière d'obtenir ce résultat. Si je ne peux même pas
double iCloseMQL4

Si vous ne comprenez pas, il s'avère que les ticks ne sont pas sautés, mais que les calculs sont superposés les uns aux autres. Ce n'est pas un fait, c'est plutôt un opéra différent.

Dans mon cas, les applications sont l'indicateur mais aussi le script et l'Expert Advisor. Je ne peux pas retirer l'indicateur du terminal tant qu'il n'a pas échoué les calculs, c'était aussi le cas en 4, c'est-à-dire qu'il se bloque. Je ne peux pas charger le terminal si l'indicateur était suspendu sur le graphique à la sortie, seulement en supprimant les fichiers des dossiers. Je ne peux pas compiler l'indicateur, s'il se bloque sur le graphique - il peut se bloquer à nouveau. L'application se trouve également dans le gestionnaire de tâches du terminal lui-même. Désolé pour la confusion.

Документация по MQL5: Файловые операции / FileDelete
Документация по MQL5: Файловые операции / FileDelete
  • www.mql5.com
Файловые операции / FileDelete - Документация по MQL5
 
zfs:
...

L'application dans mon cas est l'indicateur mais aussi le script et l'Expert Advisor. Je ne peux pas retirer l'indicateur du terminal tant qu'il n'a pas échoué les calculs, c'était aussi le cas en 4, c'est-à-dire qu'il se bloque. Je ne peux pas charger le terminal si l'indicateur était suspendu sur le graphique à la sortie, seulement en supprimant les fichiers des dossiers. Je ne peux pas compiler l'indicateur, s'il se bloque sur le graphique - il peut se bloquer à nouveau. L'application se trouve également dans le gestionnaire de tâches du terminal lui-même. Désolé pour la confusion.

Essayez d'utiliser IsStopped() :

for(int i=0; i<rates_total && !IsStopped(); i++)
   {
    
   }

Lorsque vous l'aurez essayé, écrivez si vous avez pu ou non arrêter les calculs de votre indicateur et supprimer le programme du graphique. En général, il serait souhaitable d'examiner le code de l'indicateur.

 
tol64:

Essayez d'utiliser IsStopped() :

Lorsque vous l'aurez essayé, écrivez si vous avez pu ou non arrêter les calculs de votre indicateur et supprimer le programme du graphique. En général, il est souhaitable d'examiner le code de l'indicateur.

Dans les indicateurs, le drapeau d'arrêt n'est pas activé.
 
uncleVic:
Dans les indicateurs, le drapeau d'arrêt n'est pas activé.

Il semble alors que la description dans l'aide doive être complétée/spécifiée :

//---

Vérifie l'arrêt forcé d'un programme mql5.

Valeur retournée

Retourne vrai, si la variable système _StopFlag contient une valeur différente de 0. Une valeur non nulle est écrite dans _StopFlag, si une commande pour arrêter le programme mql5 a été reçue. Dans ce cas, le programme doit être interrompu le plus rapidement possible, sinon le programme sera terminé de force de l'extérieur après 3 secondes.

//---

...Ou ajoutez la possibilité d'un licenciement forcé dans les indicateurs, aussi.

De nombreux indicateurs dans CodeBase utilisent cette fonction, et il s'avère qu'elle ne fonctionne pas dans les indicateurs. ))

 
tol64:

Il semble alors que la description dans l'aide doive être complétée/spécifiée :

//---

//---

...ou ajouter la possibilité d'un licenciement forcé dans les indicateurs, aussi.

Parce que de nombreux indicateurs dans CodeBase utilisent cette fonction, mais il semble qu'elle ne fonctionne pas dans les indicateurs. ))

IsStoped dans les indicateurs a été discuté sur le forum. Je ne comprends toujours pas que IsStoped est présent dans les indicateurs par défaut, mais l'administration dit que ce n'est pas nécessaire.
 
paladin800:
IsStoped dans les indicateurs a été discuté sur le forum. Le fait qu'IsStoped soit présent dans les indicateurs standard reste un mystère pour moi, mais l'administration dit de ne pas le faire.
Oui, je me souviens. J'ai eu un cas récemment où, après avoir entré dans une boucle éternelle et supprimé un indicateur d'un graphique, IsStopped() n'a pas aidé et la boucle éternelle a dû être arrêtée en fermant le terminal.
 
tol64:
Oui, je me souviens. J'ai eu un cas récemment où, après avoir entré la boucle perpétuelle et supprimé l'indicateur du graphique, IsStopped() n'a pas aidé et la boucle perpétuelle a dû être arrêtée en fermant le terminal.

IsStopped() utilisé pour aider à combattre le bouclage - c'est sûr. Depuis un certain temps, la "boucle perpétuelle" n'est pas guérie parIsStopped() et, en fait, nous devons supprimer le processus terminal afin de rétablir le fonctionnement. Bien que l'indicateur de type soit supprimé du graphique sans problème, le graphique se bloque.

Pour le plaisir, vous pouvez essayer un indicateur spécialement bouclé. D'ailleurs, comme il est supposé dans un tel cas, OnDeinit() ne fonctionne pas.

Dossiers :
test.mq5  1 kb
 
tol64:

Il semble alors que la description dans l'aide doive être complétée/spécifiée :

//---

//---

...ou ajouter la possibilité d'un licenciement forcé dans les indicateurs, aussi.

De nombreux indicateurs dans CodeBase utilisent cette fonction, mais il semble qu'elle ne fonctionne pas dans les indicateurs. ))

Je suppose que ce n'est que le début de l'histoire.

Je ne comprends pas les raisons de la division en indicateurs et Expert Advisors, comme si le compilateur ne comprenait pas ce qu'il y a là. Je ne comprends pas non plus la raison d'une telle restriction. J'avais l'habitude d'avoir des échanges d'indicateurs sur 4. Mais dans sa forme pure, si j'appelle une commande de transaction, l'indicateur se bloque et je dois le contourner par la bibliothèque.

 

Bonjour, chère MQ !

Il y a quelques questions :

1. Il a été annoncé récemment qu'il y aurait une API pour les alertes. Peut-être déjà apparu, comment l'apprendre ?

2. quelque chose est fait au sujet du bogue avec le mot-clé this. ? Aucune info-bulle avec les noms des fonctions de classe n'est affichée après elle. Encore une fois, quand cela sera-t-il corrigé, comment en serons-nous informés rapidement ?

Merci pour votre travail !

Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
  • www.mql5.com
Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this - Документация по MQL5
 
Lizar:

IsStopped() utilisé pour aider à combattre le bouclage - c'est sûr. Depuis un certain temps, la "boucle perpétuelle" n'est pas guérie parIsStopped() et, en fait, nous devons supprimer le processus terminal afin de rétablir le fonctionnement. Bien que l'indicateur de type soit supprimé du graphique sans problème, le graphique se bloque.

Pour le plaisir, vous pouvez essayer un indicateur spécialement bouclé. D'ailleurs, comme il est supposé dans un tel cas, OnDeinit() ne fonctionne pas.

C'est effrayant même de l'exécuter).