Erreurs, bugs, questions - page 2557

 

Et voici une capture d'écran du chargement du système lors du défilement - le GP est presque dans un état mort - pourquoi ne se charge-t-il pas ?


 
Aleksey Vyazmikin:

Je parle d'un processeur FX-8350 et d'une carte graphique Radeon HD 7950. Je n'ai pas l'impression que la carte graphique soit chargée par le MT5.

Pourtant, c'est le cas. La carte graphique a un impact important sur la vitesse de rendu car c'est elle qui est utilisée pour le rendu.

Votre question manque d'informations sur l'environnement dans lequel le défilement a lieu.

Par exemple :

  • combien d'indicateurs, de quel type d'indicateurs il s'agit - la complexité du rendu est complètement différente
  • combien de programmes sont sur le tableau
  • si les programmes réagissent aux événements, en particulier aux mouvements, à la souris, etc.
  • le défilement vers le bord gauche du graphique, qui entraîne une pagination et une reconstruction automatiques des données.
  • nombre d'objets graphiques dans la zone visible et au total sur le graphique, y compris les objets cachés

Si la situation est stable, que toutes les données sont calculées et qu'il n'y a pas de demandes induites, alors la carte vidéo et le CPU sont responsables de la charge.


Étant donné que vous avez clairement indiqué "sauter jusqu'à 100 % sur UN cœur, et non sur tous les cœurs", il s'agit d'une situation parfaitement normale. L'ordinateur fait son travail - il charge le cœur sélectionné et, ce faisant, il a une utilisation du CPU = 12,5 % des 8 cœurs, et non 100 %.

 
Renat Fatkhullin:

1) vous devez tronquer l'esturgeon ici avec INT_MAX(2 bln) :

Nous allons corriger cela aussi.

2) Toute la mémoire doit être gérée de manière très stricte, il n'y a pas de GC ici.

3) la réinitialisation des indicateurs lors d'un changement d'horizon temporel est chaude sans réinitialisation physique à partir de zéro, donc vous devez libérer de la mémoire par vous-même. surtout les ressources au niveau global

4) utiliser la POO, cela vous donnera au moins la possibilité de décrire et de contrôler correctement les ressources.

Pour continuer sur le même sujet, veuillez consulter ce post - il n'est pas clair d'où proviennent ces ticks lorsque le marché est fermé - dois-je contacter le courtier ou le marché ?

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

MQL5 Délais propres

Aleksey Vyazmikin, 2019.09.07 09:50

Je ne sais pas quoi faire avec eux, je ne sais pas quoi faire avec eux, et je ne sais pas s'ils sont justes... Et pendant le nettoyage.



 
Aleksey Vyazmikin:

Et voici une capture d'écran de la charge du système lors du défilement - le GP est presque à l'état mort - pourquoi n'est-il pas chargé ?

Donc, rien de sérieux ne lui est transmis cette fois-ci.

Et voici mon test, sur un écran complètement vide avec un défilement actif : vous pouvez clairement voir le pic de charge, c'est le contrôle interne de Windows 10.


 
Renat Fatkhullin:

Pourtant, c'est le cas. La carte graphique a une forte influence sur la vitesse de rendu car c'est elle qui est utilisée pour le rendu.

Votre question manque d'informations sur l'environnement dans lequel le défilement a lieu.

Par exemple :

  • combien d'indicateurs, quel type d'indicateurs - la complexité du rendu est totalement différente
  • combien de programmes sont sur le tableau
  • si les programmes réagissent aux événements, en particulier aux mouvements, à la souris, etc. - ils peuvent créer du mouvement dans leurs fils
  • le défilement vers le bord gauche du graphique, qui entraîne une pagination et une reconstruction automatiques des données.
  • nombre d'objets graphiques dans la zone visible et au total sur le graphique, y compris les objets cachés

Si la situation est stable, que toutes les données sont calculées et qu'il n'y a pas de demandes induites, alors la carte vidéo et le CPU sont responsables de la charge.


Étant donné que vous avez clairement indiqué "sauter jusqu'à 100 % sur UN cœur, et non sur tous les cœurs", il s'agit d'une situation parfaitement normale. L'ordinateur fait son travail - il charge le cœur sélectionné et, ce faisant, il a une utilisation du CPU = 12,5 % des 8 cœurs, et non 100 %.

Je donne des informations sur l'environnement :

- Les indicateurs sont au nombre de 16, le rendu n'est pas compliqué, sans kanvas, barres d'outils, et autres fioritures - bâtons/rayures - je joins une capture d'écran.

- Il n'y a pas de programmes sur le graphique, j'ouvre une fenêtre après l'optimiseur, c'est comme un exemple - les graphiques de travail sont lents aussi, mais moins (il y a moins d'indicateurs).

- Non, les événements ne sont pas traités.

- Le mode d'affichage illimité des barres est sélectionné, c'est-à-dire que la pagination est en quelque sorte exclue.

- Il n'y a pas d'objets graphiques, ou plutôt j'ai supprimé toutes les flèches et tous les tirets. Il reste une étiquette - elle provient de l'indicateur. J'ai un jour de congé aujourd'hui et cela ne devrait pas interférer.

J'ai posté une capture d'écran ci-dessus montrant que la carte graphique n'est pas engagée, y a-t-il un moyen de vérifier si elle est engagée ou est-il normal que la charge soit proche de zéro et que le noyau soit chargé ?

Captures d'écran de la plateforme MetaTrader

Si Splice, M1, 2019.09.07

JSC ''Otkritie Broker'&#39 ;, MetaTrader 5, Real

Si Splice, M1, 2019.09.07, Otkritie Broker, MetaTrader 5, Real


 
Renat Fatkhullin:

Donc rien de sérieux ne lui est transmis cette fois-ci.

Et voici mon test, sur un écran complètement vide, avec un défilement actif : vous pouvez clairement voir le pic de charge, c'est le contrôle standard de Windows 10.


Alors peut-être qu'il devrait, mais ce n'est pas le cas - comment le savez-vous ?

 

Il semble que j'aie tout expliqué en détail et avec force détails.

L'ordinateur fait son travail. Tout travail coûte des ressources et vous voyez la consommation de ces ressources.

Qu'est-ce qui vous fait penser que, selon vous, les ressources ne devraient pas être consommées - je ne comprends pas.


Je ne sais pas exactement quelles caractéristiques du GPU MSI Afterburner prend en compte. Il existe de nombreuses caractéristiques et je ne suis pas du tout sûr de la charge globale du GPU, plutôt que d'un point particulier.

Ma preuve : je le prends et je fais défiler la fenêtre du navigateur :

La situation est exactement la même lorsque l'on fait défiler un graphique dans MetaTrader 5 :


L'utilisation de la carte graphique par le terminal est avérée.

Compte tenu du fait que j'ai déjà consacré 20 ans à des projets de terminaux de négociation et à leur optimisation, il est étrange de ne pas se fier à mes paroles.

 
Aleksey Vyazmikin:

Alors peut-être qu'il devrait, mais ce n'est pas le cas - comment le savez-vous ?

Changez le programme de test ou écoutez quelqu'un qui est directement impliqué dans le problème en question.
 
Renat Fatkhullin:

Il semble que j'aie tout expliqué en détail et avec force détails.

L'ordinateur fait son travail. Tout travail coûte des ressources et vous voyez la consommation de ces ressources.

Qu'est-ce qui vous fait penser que, selon vous, les ressources ne devraient pas être consommées - je ne comprends pas.


Je ne sais pas quelle est la spécification exacte du GPU jugée par MSI Afterburner. Il existe de nombreuses caractéristiques et je ne suis pas du tout sûr de la charge totale du GPU, plutôt que d'un point particulier.

Ma preuve : je le prends et je fais défiler la fenêtre du navigateur :

La situation est exactement la même lorsque l'on fait défiler un graphique dans MetaTrader 5 :


L'utilisation de la carte par le terminal est prouvée.

Compte tenu du fait que j'ai déjà consacré 20 ans à des projets de terminaux de négociation et à leur optimisation, il est étrange de ne pas se fier à mes paroles.

Il ne s'agit pas de te faire confiance ! Je suppose qu'il y a un problème de pilote ou autre, alors que toutes sortes de jeux 3D fonctionnent.

Le navigateur charge la carte vidéo, enfin pas toutes les pages bien sûr, mais avec des clips vidéo et quelque chose de similaire - j'ai vérifié.

J'ai également vérifié. Puis j'ai lancé tous les indicateurs MT5 intégrés sur un graphique de 40 indices et tout défile très rapidement, la charge centrale est de 20%-25%.

Le problème se situe donc dans un de mes indicateurs ? Je ne comprends pas, mais c'est déjà calculé. Pendant de nombreuses années, j'ai demandé à un gestionnaire à mettre en œuvre, ce qui serait l'utilisateur pourrait voir quel programme / indicateur / script sur le graphique, combien de temps CPU il serait très pratique.

 
Aleksey Vyazmikin:

Je vais vous donner quelques informations sur l'environnement :

- Indicateurs 16, le rendu n'est pas compliqué, sans kanvas, barres d'outils, et autres fioritures - bâtons/rayures - une capture d'écran est jointe.

- Aucun programme sur le graphique, j'ouvre la fenêtre après l'optimiseur, c'est juste à titre d'exemple - les graphiques de travail sont lents aussi, mais moins (il y a moins d'indicateurs).

- Non, les événements ne sont pas traités.

- Le mode d'affichage illimité des barres est sélectionné, c'est-à-dire que la pagination est en quelque sorte exclue.

- Il n'y a pas d'objets graphiques, ou plutôt j'ai supprimé toutes les flèches et tous les tirets. Il ne reste qu'une seule étiquette, celle de l'indicateur. J'ai un jour de congé aujourd'hui et cela ne devrait pas interférer.

J'ai une capture d'écran ci-dessus montrant que la carte graphique ne fonctionne pas, puis-je vérifier si elle fonctionne ou si c'est normal lorsque la charge est proche de zéro et que le cœur est occupé ?


Il s'agit ici d'un problème connu en soi, le fonctionnement des indicateurs dans un seul fil !
Un seul fil ne peut pas gérer la charge !
Nous avons besoin du multithreading, cela a déjà été écrit à maintes reprises.