Erreurs, bugs, questions - page 968

 
tol64:
On ne sait pas très bien quel type d'histogramme on ne peut pas dessiner ici. Il est tout à fait possible que vous fassiez quelque chose de mal. Vous avez besoin d'un code pour le lire, sinon vous ne pouvez pas voir ce que vous voulez dire.

L'histogramme peut être dessiné si le terminal gère les calculs. L'histogramme est dessiné, le terminal se charge, le calcul lourd de l'indicateur est effectué, l'histogramme disparaît en attendant le calcul et lorsqu'il est terminé il est affiché, il n'est donc pas visible dans le flux de cotation. Lors de la suppression, le terminal fait quelque chose à cet endroit, puis supprime le graphique. Je n'ai rien dans le bloc Deinit à part la suppression, quelle est la pause sur la suppression. Il doit y avoir une priorité, et une séquence d'actions pour sortir des états critiques du système, l'histogramme ne doit pas disparaître avant le calcul, mais avant l'affichage d'un nouvel histogramme. Et ce n'est pas le code, bien sûr il charge le terminal et l'algorithme peut être rendu plus généreux, mais le fait que 4 le gère mieux est évident.

Est-ce que OnCalculate est exécuté à chaque tick ? Et si ce n'est pas le cas, que se passe-t-il ?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
J'ai identifié un bug dans la chambre forte. Lorsque vous changez votre mot de passe sur le site, le coffre-fort ne le change apparemment pas. Et vous devez vous désinscrire du référentiel et vous réinscrire.
 
zfs:

L'histogramme peut être dessiné si le terminal peut gérer le calcul. L'histogramme est dessiné, le terminal est chargé, le calcul lourd de l'indicateur a lieu, l'histogramme disparaît, en attendant le calcul, quand il est terminé il est affiché, il s'avère qu'il n'est pas visible dans le flux de cotation. Lors de la suppression, le terminal fait quelque chose à cet endroit, puis supprime le graphique. Je n'ai rien dans le bloc Deinit à part la suppression, quelle est la pause sur la suppression. Il doit y avoir une priorité, et une séquence d'actions pour sortir des états critiques du système, l'histogramme ne doit pas disparaître avant le calcul, mais avant l'affichage d'un nouvel histogramme. Et ce n'est pas le code, bien sûr il charge le terminal et l'algorithme peut être rendu plus généreux, mais le fait que 4 le gère mieux est évident.

Est-ce que OnCalculate est exécuté à chaque tick ? Et si ce n'est pas le cas, que se passe-t-il ?

Si le code de reproduction est un grand secret que vous ne pouvez pas publier sur le forum, écrivez au Service Desk. Décrivez-la en détail et joignez le code.
 
tol64:
Si le code de reproduction est un grand secret que vous ne pouvez pas publier sur le forum, écrivez au Service Desk. Il vous sera demandé de le décrire en détail et de vous fournir le code.

J'ai déjà souligné que cela n'a rien à voir avec le code. Il suffit de charger le code avec des calculs et des éléments graphiques pour que les inconvénients disparaissent d'eux-mêmes. Tout dépend du matériel de l'ordinateur plus que du code : un ordinateur rapide supprimera l'indicateur en 2 secondes alors qu'un ordinateur lent le supprimera en 2 minutes. Il en va de même pour le graphique à barres, quelque part il sera toujours visible avec une bonne ressource et un minimum de citations, et quelque part il ne sera visible qu'au démarrage. Bien sûr, il s'agit plutôt d'une question pour le Service Desk et plutôt d'une question pour le terminal, est-il possible de minimiser la possibilité que le terminal gèle ? Ce problème se posait en 4, et la situation ici est encore pire. Cependant, c'est le raisonnement qui se cache derrière.

Est-ce que OnCalculate est exécuté à chaque tick? Et si ce n'est pas le cas, que se passe-t-il ?

 
Ou même une situation où le terminal n'est pas chargé en tant qu'application et n'est visible qu'en tant que processus dans le Gestionnaire des tâches. Le terminal doit être capable de se sortir de situations critiques, comme ControlAltDelta dans Windows avec la possibilité de désactiver les applications du terminal déjà.
 

zfs:

...

Est-ce que OnCalculate est exécuté à chaque tick ? Et si elle n'a pas le temps, que se passe-t-il ?

Je pense que les tics qui sont apparus pendant un long calcul seront ignorés.

J'ai déjà remarqué que le code n'a rien à voir avec cela. Il suffit de charger le code avec des calculs et des éléments graphiques pour que les inconvénients apparaissent d'eux-mêmes. Tout dépend du matériel de l'ordinateur plus que du code : un ordinateur rapide supprimera l'indicateur en 2 secondes alors qu'un ordinateur lent le supprimera en 2 minutes. Il en va de même pour le graphique à barres, quelque part il sera toujours visible avec une bonne ressource et un minimum de citations, et quelque part il ne sera visible qu'au démarrage. Bien sûr, il s'agit plutôt d'une question pour le Service Desk et plutôt d'une question pour le terminal, est-il possible de minimiser la possibilité que le terminal gèle ? Ce problème se posait en 4, et la situation ici est encore pire. Cependant, c'est le raisonnement derrière le sujet.

Eh bien, préparez votre code alors. Je vais le tester par moi-même. Comparons les résultats. Sinon, nous aurons tout décrit en vain. Ils ne prennent pas ça au sérieux ici. )))

 
zfs:
Ou même une situation où le terminal n'est pas chargé en tant qu'application et n'est visible qu'en tant que processus dans le Gestionnaire des tâches. Ce qu'il faut, c'est un moyen de sortir le terminal des situations critiques, comme ControlAltDelete dans Windows avec la possibilité de désactiver les applications du terminal.
Je peux le voir à la fois comme une application et un processus. Spécifiez dans le Service Desk le système d'exploitation, la taille et le build du terminal.
 
double iCloseMQL4(string symbol,int tf,int index){
   if(index < 0) return(-1);
   double Arr[];
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   if(CopyClose(symbol,timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);

}

Donc, j'ai pris une fonction, la sortie est périodiquement -1. La question qui se pose est la suivante : quel autre paramètre de la boucle devrait être différent de -1 ? Pourquoi cette situation est-elle possible ? Pourquoi copier le tableau entier si je n'ai besoin que d'une seule valeur n'est pas rationnel.

SetLabel("LPr",chart_ID,"%="+DoubleToString(close[0]/iCloseMQL4(_Symbol,1440,1)*100-100,2),4,34,clrBrown,14);
 
tol64:

Je pense que les tics qui sont entrés pendant certains longs calculs vont nous manquer.

Alors, affichez le code. Je vais le tester sur le mien. Comparons les résultats. Sinon, nous avons tout gâché. Les gens ici ne le prennent pas au sérieux. )))

Vous pensez, mais il faut vérifier ou savoir avec certitude).

Je vois une image différente sur différents ordinateurs, ce qui me permet d'avoir un point de comparaison. Nous n'obtiendrons pas la vérité de toute façon, tout ce que nous pouvons faire est de râler sur le forum).

J'utilise un terminal avec des applications lourdes, il ne se charge pas en tant qu'application et n'est visible qu'en tant que processus. Si je lance l'application sur un terminal ouvert, elle ne se bloque pas. Mais au démarrage, il se bloque ou ne se charge pas en tant qu'application. Je dois donc désinstaller l'application avant de quitter. J'ai écrit à Servicedesk pour demander de pouvoir fermer l'application sans fermer le terminal ou vider les dossiers.

 
zfs:

Pensez-vous que vous devriez le vérifier ou en être sûr).

...

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 jamais remarqué de problème. Et personne ne semble l'avoir remarqué, sauf vous. C'est pourquoi ça m'a rendu curieux. ))

Je vois des images différentes sur différents ordinateurs, ce qui me permet d'avoir un point de comparaison. (Je ne peux pas obtenir la vérité de toute façon, alors tout ce que nous avons à faire est de râler sur le forum).

J'utilise un terminal avec des applications lourdes, il ne se charge pas en tant qu'application et n'est visible qu'en tant que processus. Si je lance l'application sur un terminal ouvert, elle ne se bloque pas. Mais au démarrage, il se bloque ou ne se charge pas en tant qu'application. Je dois donc désinstaller l'application avant de quitter. J'ai écrit à Servicedesk pour demander de pouvoir fermer l'application sans fermer le terminal ou vider les dossiers.

Qu'entendez-vous par application ? Vous appliquez 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 signifie fermer l'application sans fermer le terminal ? Vous ne pouvez pas supprimer un conseiller expert, un indicateur ou un script d'un graphique ?