Erreurs, bugs, questions - page 575

 
Karlson:
Si on reste assis à parler de démagogie ;)), on attendra les conséquences d'Eurochif... et la-la....

Qu'est-ce qui ne va pas avec les conséquences d'Eurochif ?

papaklass:
"Donnez-moi la liste complète, s'il vous plaît."
+1
 
Ma proposition est de rester dans l'air du temps, d'écrire quelque chose qui soit réaliste à ce stade, c'est-à-dire que je suis contre la phrase "Il ne faut pas écrire un multithreading, parce qu'il n'y a pas de multithreading", ce ne sont pas des nanorobots avec des nanalgorithmes que l'on écrit pour faire du commerce sur des canaux super rapides.La seule chose que vous devez faire lorsque vous négociez avec un potentiel d'écart de 1 à 3 (jusqu'à 10-20 points d'écart à 4 chiffres), et si vous ne l'aimez pas - un tick est suffisant pour une paire rapide ou même une barre d'une minute pour un sondage.
 
Interesting:

Quel est le problème avec les suites de l'EUROCHIFA ?

Le buck-chief... Il n'y a aucun intérêt à le négocier si l'Eurobucks est déjà négocié... Ensuite, il y a la possibilité d'une crise... Beaucoup de choses sont possibles, jusqu'à la régulation des autres monnaies...
 
papaklass:
Oui, tant que les gestionnaires d'événements OnTick() et OnTrade() et le multithreading dans les EA ne seront pas paramétrés, le multithreading normal ne sera qu'un rêve. Tous ces trucs - OnChartEvent() etc. n'ont aucun sens. Il s'agit d'une tentative de remplacer le paramétrage des gestionnaires d'événements principaux. Et pendant que MQ fera de telles bêtises, au lieu de résoudre le problème de manière cardinale (paramètres des gestionnaires d'événements et multithreading), MT5 sera au même niveau qu'aujourd'hui. Et il n'y a pas de perspectives particulières pour cette plate-forme dans sa forme actuelle. (Non visible pour les commerçants).

Vous ne vous rendez tout simplement pas compte du niveau des problèmes pour les différentes catégories d' utilisateurs, des processus internes de mise en œuvre du multithreading pour MQL5 et des implications globales pour la plate-forme.

Réfléchissez-y pendant une semaine, trouvez cinq conditions mortelles, et vous pourrez ensuite publier des informations spécifiques.

Nous nous sommes livrés à cette analyse à plusieurs reprises et pendant longtemps, grâce à la quatrième génération de la langue.

 
papaklass:
Le terminal vous permet d'ouvrir 99 graphiques. Et attendre la paire suivante pour voir ce qui s'y passe ? Et si vous analysez sur des barres minutes dans de telles conditions, vous aurez accès aux instruments une heure et demie après le dernier scrutin. Et comment font les gens pour analyser des centaines de graphiques (pour le marché boursier). Et MT5 se positionne également comme un terminal boursier. Il y a donc de telles tartes. Donc, sans le multithreading et le paramétrage des gestionnaires d'événements, il n'y a rien. Ou tradez sur 1 - 12 paires.

Vous vous trompez fondamentalement en ne le sachant pas :

  • chaque EA/script s'exécute dans son propre thread indépendamment des autres
  • chaque graphique a sa propre file d'attente indépendante
  • chaque symbole possède son propre fil d'exécution lors du travail sur les graphiques ; tous les indicateurs de ce symbole sont calculés dans ce fil, sans affecter les processus des indicateurs des autres symboles
  • le terminal dispose de nombreux threads système qui effectuent leur travail indépendamment les uns des autres et dénouent les goulots d'étranglement

Malheureusement, les déclarations "donnez-moi du multithreading et du basta" ne signifient pas que vous comprenez vraiment les processus existants. Nous avons très bien travaillé sur les processus internes du terminal et mis en place un système très productif et cohérent.

 
Loky:

Il n'y a rien de clair dans cette mise en œuvre. Intéressant d'avoir correctement formulé le problème dans le post précédent.

"Le langage lui-même (le concept même de MQL) ne permet pas d'organiser le traitement de plusieurs threads dans un programme"

Une fois la fonction OnChartEvent() exécutée et pendant que le code de traitement de l'événement d'arrivée d'un nouveau tick d'une des paires est exécuté, toutes les autres paires avec leurs événements onTick auront un repos !

Avez-vous vraiment besoin d'un trading à haute fréquence supérieur à 1 seconde ?

Je ne pense pas, alors dans OnChartEvent() ouvrir seulement les drapeaux d'état, et il n'y aura pas de retard, et déplacer les calculs eux-mêmes à OnTimer() et traiter seulement les drapeaux qui sont ouverts.

 
Urain:

Avez-vous vraiment besoin d'un trading à haute fréquence supérieur à 1 seconde ?

Je ne pense pas, alors dans OnChartEvent() n'ouvrent que les drapeaux d'état, et il n'y aura pas de retard de flux, et les calculs eux-mêmes se déplacent vers OnTimer(), et ne traitent que les drapeaux, qui sont ouverts.

1. et comment cette conception fonctionnera-t-elle dans le testeur ?

2. J'ai besoin d'une transaction dont la fréquence n'est pas inférieure à l'arrivée d'une nouvelle cotation sur une paire. Je peux analyser le temps entre les citations et leur quantité dans un certain intervalle.

Je voudrais avoir des "Calculs" pour deux paires différentes en même temps.

3. j'aimerais avoir un concept complètement différent de la boîte à outils. La liaison avec le graphique de l'EA est très ennuyeuse. J'aimerais que ce soit au niveau de la visualisation des objets, de leurs propriétés et des événements dans la fenêtre du terminal.

Par exemple

- sélectionnez un symbole dans la fenêtre des citations, cliquez sur le bouton gauche de la souris -> propriétés ->

puis observer la liste des événements -> sélectionner surtick deux fois avec le bouton gauche de la souris -> une fenêtre s'ouvre pour entrer le code mql5

De même, pour les autres objets du terminal - graphiques, indicateurs, etc.





 
Loky:

1. comment cette conception fonctionnera-t-elle dans le testeur ?

2. J'ai besoin de négocier avec une fréquence qui ne soit pas inférieure à l'arrivée d'une nouvelle cotation sur une paire. Je peux analyser le temps entre les citations et leur nombre dans un certain intervalle.

Je voudrais que les "Calculs" soient effectués pour deux paires différentes en même temps.

Comme les calculs auront lieu dans OnTimer(), il n'y aura pas de traitement simultané, seulement séquentiel.

Dans ce cas, la file d'attente des événements ne s'accumulera pas. Les événements des ticks de différentes paires qui arrivent pendant le calcul de OnTimer() seront ignorés.

 
papaklass:
.....

Je pense que tu prends trop sur toi. Au minimum, vous auriez dû être plus poli.

Si vous avez des problèmes avec le terminal ou l'exécution de programmes MQL5, contactez le bon endroit - servicedesk. Ce sera beaucoup plus utile.

 
papaklass:

1. Pourquoi tous les graphiques ouverts avec des indicateurs dans le terminal en ligne fonctionnent-ils sur un seul noyau ? J'ai 4 cœurs sur mon ordinateur et trois sont inactifs. Peut-être que le nuage est à l'origine de ces performances ?

Gonewo. Pruf - s'il vous plaît, voyons voir.

2. Pourquoi le conseiller expert multi-devises traite-t-il les ticks de chaque graphique séquentiellement, et non de plusieurs symboles à la fois ?

Est-ce qu'elle doit le faire ? Et quel est le problème de passer les événements nécessaires à partir des indices d'espionnage ? Eh bien, pas les tics, bien sûr, mais les signaux, bien sûr. Et l'EA a un fil et n'a pas besoin de plus.

Nous n'avons pas besoin de plus de douleur et de pièges avec la synchronisation et les blocages. Maîtrisez au moins la POO et demandez ensuite le multithreading.

Peut-être que j'ai mal organisé l'EA et qu'il existe des fonctions dans MT5 qui permettent d'utiliser tous les cœurs ? Si oui, expliquez ce que sont ces fonctions et comment les utiliser.

Pourquoi le conseiller expert doit-il utiliser tous les cœurs ?

Vous n'avez même pas à vous soucier du multithreading. L'Expert Advisor est un espion et un synchronisateur d'Expert Advisor. La plupart des fonctionnalités sont exécutées par les espions et le synchroniseur est responsable de l'échange correct des données dépendantes entre les espions.

Raison: