![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Et avez-vous déjà posé une nouvelle question ?
Il n'est pas approprié pour un modérateur de commencer une inondation. Pour clarifier. Lorsqu'un utilisateur (y compris un modérateur) ajoute un nouveau message à un fil de discussion, il est courant de l'appeler une "réponse". Même si c'est une réplique de nature sarcastique.
Par conséquent, une fois de plus, avec une précision : si vous le percevez comme un cirque, n'hésitez pas à le supprimer, ou essayez de soumettre un nouveau message sur ses mérites. En revanche, des informations inexactes peuvent induire les utilisateurs en erreur.
A ajouter. Je serai le premier à vous remercier s'il s'avère officiellement (si vous contribuez à le découvrir) que les événements des utilisateurs remplissent la file d'attente selon les anciennes règles.
Je vais ajouter. Je serai le premier à vous remercier s'il s'avère officiellement (si vous aidez à le découvrir) que les événements personnalisés remplissent la file d'attente selon les anciennes règles.
Grosso modo, le traitement des événements n'a jamais changé. C'est juste que ce n'était pas écrit correctement dans l'aide.
...
J'utilise activement le message d'inactivité créé dans chacune de mes applications. Tout fonctionne.
J'utilise activement le message d'inactivité créé dans chacune de mes applications. Tout fonctionne.
sergeev:
J'ai attrapé un virus.Cela se produit en raison de l'envoi de l'événement EventChartCustom par le conseiller expert à lui-même. Il s'avère que cet envoi d'événement provoque la mise à jour du graphique par la fenêtre principale (ChartRedraw).
//---
J'ai fait un tel expert pour tester votre solution et en même temps j'ai essayé de résoudre le problème du clignotement très fréquent du texte lors de l'édition d'un objet OBJ_EDIT.
//---
//---
Après avoir lancé le conseiller expert, vous verrez ce qui suit sur le graphique dans le coin supérieur gauche :
//---
En cliquant sur le bouton"START event_idle++", vous accédez à votre solution(Alex). Nous voyons le compteur event_idle++ s'incrémenter sur le graphique.
Tant que le bouton est enfoncé, votre code fonctionne. Mais il consomme beaucoup de ressources. La charge du CPU (testée sur un double cœur) varie de ~90% à ~100%. La charge du CPU varie de ~5% à ~10% avant le démarrage ou lorsque le bouton est relâché. En cliquant (avec le bouton gauche de la souris) sur le graphique, le compteur est remis à zéro.
La saisie de texte dans le champ de saisie ne provoque pas de scintillement, car au moment de la saisie, votre code est désactivé par la variable globale"On/Off event_idle++". C'est une béquille bien sûr, mais comme solution temporaire, c'est bien pour certaines solutions simples.
La charge du processeur n'est pas le seul problème. Lorsque le compteur fonctionne, les fenêtres du terminal de trading s'ouvrent rapidement, mais le redimensionnement des fenêtres est sensiblement ralenti. Pas toujours, mais ces moments existent.
La charge du processeur n'est pas le seul problème. Lorsque le compteur fonctionne, les fenêtres du terminal de trading s'ouvrent rapidement, mais le redimensionnement des fenêtres est sensiblement ralenti. Pas toujours, mais il y a de tels moments.
Le problème de la charge du CPU peut être résolu comme suit. Spécifiez que le compteur d'événements est mis à jour une fois par seconde. Nous ajoutons le code suivant :
Dans OnInit() :
//---
Dans le corps du programme :
//---
Au code d'Alex(marqué en rouge) :
//---
Dans le bloc du gestionnaire d'événementCHARTEVENT_CLICK(marqué en rouge) :
//---
Le bloc de gestion de l'événement CHARTEVENT_OBJECT_CLICK doit être modifié comme suit + L'état du bouton doit tout de même être vérifié, car il arrive qu'en appuyant "à tort" sur le bouton, celui-ci reste enfoncé, s'il était comme ça avant, mais le reste du code du bloc fonctionnera et la confusion commencera :
//---
Maintenant, ça devient plus intéressant. :)
//---
P.S. Si vous avez beaucoup de secondes, vous pouvez essayer de jouer avec GetTickCount().
Qu'est-ce que je peux dire ?
1. c 'est une charge pour l'unité centrale. Enlevez-le et il sera silencieux.
2. La boucle d'inactivité elle-même n'a pas d'effet notable sur le CPU.
3. Le problème du clignotement de l'edith n'est pas un problème avec une seule carte 0, mais un problème d'envoi d'un événement à la carte objet. Cela entraîne un redécoupage de la carte principale 0 et donne du scintillement.
Qu'est-ce que je peux dire ?
1. c'est une charge pour l'unité centrale. Enlevez-le et il sera silencieux.
2. La boucle d'inactivité elle-même n'a pas d'effet notable sur le CPU.
3. Le problème du clignotement de l'edith n'est pas un problème avec une seule carte 0, mais un problème d'envoi d'un événement à la carte objet. Cela entraîne une redéfinition de la carte principale 0 et donne du scintillement.