[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 376

 
Chiripaha:

C'est là tout l'intérêt (pour l'exactitude des paramètres de l'expérience). C'est pourquoi je pose ces questions, parce que je ne suis pas sûr de moi et que j'essaie donc d'identifier - peut-être ai-je fait quelque chose de mal si ces résultats divergent. Il s'agit plutôt d'une question de test - dans des moments comme celui-ci, un programme apparemment bien écrit échoue et vous réalisez que vous devez chercher quelque part.

J'ai eu ces "expériences" par accident. J'ai aussi écrit des programmes pour le travail en parallèle - j'ai abandonné cette méthode maintenant parce qu'elle n'a pas augmenté mon efficacité (elle peut être réalisée dans d'autres projets). Le résultat était tel, que tant que le premier programme n'était pas traité - aucune donnée n'était obtenue - le second ne démarrait pas (ou, plus précisément, échouait). Cette séquence dépendait de la fenêtre dans laquelle j'avais placé (c'est-à-dire dans quel ordre) les blocs EA. - Nous concluons donc que la séquence des fenêtres est importante, c'est-à-dire que les conseillers experts sont traités de manière séquentielle et non en parallèle. Et cette séquence dépend de la numérotation des fenêtres dans la liste du terminal.

C'est l'essence même de l'expérience.

Mais, encore une fois, il s'agit peut-être d'une interprétation incorrecte de mes résultats. C'est pourquoi je persiste à vouloir résoudre cette question maintenant, et pas seulement à propos du "glissement".

Je voulais parler du fonctionnement en ligne des EA. Et vous parlez de tests. S'agit-il du testeur ? Comment plusieurs EAs peuvent-ils fonctionner en même temps dans le testeur ?
 
TarasBY:
Je faisais référence au fonctionnement en ligne des EA. Et vous parlez de tests. S'agit-il du testeur ? Comment plusieurs EAs peuvent-ils fonctionner en même temps dans le testeur ?

Non, je l'ai mal formulé (dans le désordre). - Par test, j'entends non pas un testeur, mais des testeurs de programmes au stade du débogage et de l'identification de leurs caractéristiques. Dans ce cas, en raison du manque d'informations documentées, j'identifiais les particularités de mt4. (il faut y avoir recours de temps en temps).

Bien sûr, je parle aussi des EA qui travaillent en ligne maintenant.

 
Chiripaha:

Non - c'était incorrect (avec perte de cohérence). - Par test, je n'entendais pas les testeurs - mais les testeurs de programmes au stade du débogage et de la révélation des particularités de leur travail. Dans ce cas, en raison du manque d'informations documentées, j'identifiais les particularités de mt4. (il faut y avoir recours de temps en temps).

Bien sûr, je parle aussi des EA qui travaillent en ligne maintenant.

Si le développeur déclare la possibilité pour le terminal de donner plusieurs ordres de transactions au serveur en même temps, comment cela peut-il être fait en travaillant de manière séquentielle ?
 

Merci à tous pour vos réponses. Je vais essayer de modifier le code pour que l'EA ne s'arrête pas tant que OrdersTotal ne montre pas un ordre ouvert. Alors le 2ème verra définitivement qu'il y a un ordre. Je l'espère.

D'ailleurs, d'après mon expérience, les EAs s'exécutent séquentiellement et créent même une file d'attente d'une manière ou d'une autre, à en juger par les impressions.

 
Arles:

Merci à tous pour vos réponses. Je vais essayer de modifier le code pour que l'EA ne s'arrête pas tant que OrdersTotal ne montre pas un ordre ouvert. Alors le 2ème verra définitivement qu'il y a un ordre. Je l'espère.

D'ailleurs, d'après mon expérience, les EAs s'exécutent séquentiellement et créent même une file d'attente d'une manière ou d'une autre, à en juger par les impressions.

Print() ne peut servir de base à de telles conclusions. Avez-vous vu le code source de cette fonction ? Pour être sûr, à quel moment l'imprimante imprime-t-elle l'heure ? La sortie vers le fichier est exactement séquentielle, et l'imprimante peut écrire l'heure exactement au moment de la sortie vers le fichier, mais pas au moment où l'événement qu'elle décrit se produit.
 
TarasBY:
Si le développeur déclare la possibilité pour le terminal de donner plusieurs ordres de transactions au serveur en même temps, comment puis-je le faire en travaillant de manière séquentielle ?

C'est difficile pour moi de dire quoi que ce soit à ce sujet. Je n'ai guère d'idée sur la manière de communiquer directement avec ces développeurs pour comprendre ce qu'ils prétendent.

Mais en tant que personne habituée à se fier non pas à ce qu'ils disent, mais à ce que je retire de l'expérience, ce que je vois est ce que je chante. - Ce que je ne vois pas, je pose des questions et je clarifie ma position.

Le fait est que cette position (de travail successif), à mon avis, est tout à fait naturelle et correcte. C'est pourquoi je n'ai jamais précisé cette question auparavant. C'est correct car sinon il peut y avoir des erreurs dans la comptabilité financière des positions. Mais, cependant, cela peut être coupé au niveau du serveur - il vérifiera si quelque chose est correct ou non. Mais même dans ce cas, en travaillant avec les conseillers experts et le terminal, il y aurait trop de commandes inutiles et erronées qui encombreraient le flux de transactions de "déchets" inutiles. Et ainsi de suite.

 
Chiripaha:

C'est difficile pour moi de dire quoi que ce soit à ce sujet. Je ne sais pas comment communiquer directement avec ces développeurs pour comprendre ce qu'ils prétendent.

Mais en tant que personne habituée à se fier non pas à ce qu'ils disent, mais à ce que je retire de l'expérience, ce que je vois est ce que je chante. - Ce que je ne vois pas, je pose des questions, je clarifie ma position.

Le fait est qu'une telle position (avec un travail conséquent) est, à mon avis, tout à fait naturelle et correcte. C'est pourquoi je n'ai même pas élaboré sur cette question d'une manière ou d'une autre auparavant. C'est correct car sinon il peut y avoir des erreurs dans la comptabilité financière des positions. Mais, cependant, cela peut être coupé au niveau du serveur - il vérifiera si quelque chose est correct ou non. Mais même dans ce cas, en travaillant avec les conseillers experts et le terminal, il y aurait trop de commandes inutiles et erronées qui encombreraient le flux de transactions de "déchets" inutiles. Et ainsi de suite.

Lisez - avec un traitement cohérent, il n'y aurait pas besoin de faire un tel "potager". (Et n'oubliez pas - tout article est modéré par des développeurs).

P.S. J'avais aussi l'habitude de me fier à ma propre expérience et à ma logique, plutôt qu'aux paroles de quelqu'un d'autre. :)

 
TarasBY:

Lisez-le - avec un traitement cohérent, il n'y aurait pas besoin de faire un tel "potager". (Et n'oubliez pas - Tout article est modéré par les développeurs).

P.S. Moi aussi, j'ai l'habitude de me fier à ma propre expérience et à ma logique, plutôt qu'aux paroles des autres. :)

Gardez juste à l'esprit que je ne fais pas d'affirmation. Au contraire, je demande : est-ce vrai ou non ? : )) Et citer comme argument ce que j'obtiens dans la pratique.

Et la question du "glissement" reste toujours non confirmée pour moi. C'est-à-dire ouvert. : ))

Je pense à la modération. - Mais une fois encore, deviner ne signifie pas affirmer. Si c'est le cas, j'espère sincèrement obtenir un commentaire officiel sur Sleep. Parce que sur ce forum, il y a beaucoup d'arguments comme mes conjectures et les officiels sont difficiles à trouver (sauf pour le livre de référence, bien sûr - mais c'est là que les informations sur ce sujet sont rares et incompréhensibles. Sinon, il n'y aurait pas tant de discussions ici). Et en même temps, laissez-les clarifier la cohérence et le parallélisme. - Il me serait utile de le comprendre aussi.

 
Chiripaha:

C'est difficile pour moi de dire quoi que ce soit à ce sujet. Je ne sais pas comment communiquer directement avec ces développeurs pour comprendre ce qu'ils prétendent.

Mais en tant que personne habituée à se fier non pas à ce qu'ils disent, mais à ce que je retire de l'expérience, ce que je vois est ce que je chante. - Ce que je ne vois pas, je pose des questions, je clarifie ma position.

Le fait est que cette position (avec un travail conséquent) est, à mon avis, tout à fait naturelle et correcte. C'est pourquoi je n'ai jamais précisé cette question auparavant. C'est correct car sinon il peut y avoir des erreurs dans la comptabilité financière des positions. Mais, cependant, cela peut être coupé au niveau du serveur - il vérifiera si quelque chose est correct ou non. Mais même dans ce cas, en travaillant avec les conseillers experts et le terminal, il y aurait trop de commandes inutiles et erronées qui encombreraient le flux de transactions de "déchets" inutiles. Et ainsi de suite.

Tous les scripts et les conseillers experts fonctionnent dans leurs propres fils. Les ordres commerciaux sont collectés auprès d'eux dans une file d'attente séparée. Ils sont ensuite répartis entre les flux de libre-échange. Le nombre de flux de libre-échange peut être égal à 8.

Print() sort ce qui est disponible pour la sortie au moment de la sortie. La présence de plusieurs fils peut être déterminée par le journal. La sortie est affichée au tout début de la fonction start() et à la toute fin. Mettez un délai entre eux. Exécutez plusieurs Expert Advisors sur différents outils. Regardez le journal. Vous verrez qu'entre la sortie d'un conseiller expert, il y a des sorties d'autres conseillers experts.

void start()
 {
  Print(Symbol(), " Start");
  Sleep(3000);
  Print(Symbol(), " End");
 }
 
Zhunko:

Tous les scripts et les conseillers travaillent dans leur propre fil. Les ordres commerciaux de ces derniers sont rassemblés dans une file d'attente distincte. Ensuite, ils sont distribués aux filières de libre-échange. Le nombre de fils de libre-échange peut être égal à 8.

Print() sort ce qui est disponible pour la sortie au moment de la sortie. La présence de plusieurs fils peut être déterminée par le journal. La sortie est affichée au tout début de la fonction start() et à la toute fin. Mettez un délai entre eux. Exécutez plusieurs Expert Advisors sur différents outils. Regardez le journal. Vous pouvez voir qu'entre les sorties d'un conseiller expert, il y aura des sorties d'autres conseillers experts.

En d'autres termes, pour répondre à la question d'Arles, si un conseiller expert a enregistré des ordres et fait une "sieste" pendant un moment, à ce moment-là, un autre conseiller expert passera un ordre (conclura une transaction sur le marché) qui n'aura pas dépassé la limite des fonds alloués (supposons 80 % du dépôt - les deux conseillers experts auront cette taille). Et quand le 1er reprend le travail (et que le terminal de money management a déjà été calculé la veille), il pourra aussi ouvrir une transaction dépassant les limites fixées par le Conseiller Expert ?

Si ce système (hypothétiquement) est multiplié par plusieurs EE, alors peut-il y en avoir une où la gestion des risques sera dans un système critique ?

Est-ce que je comprends bien ce multithreading ? - Si c'est le cas, c'est certainement un gâchis d'un point de vue financier. Mais, comme la probabilité que cela se produise est faible pour les petits comptes, ce n'est qu'une hypothèse. Et pour les comptes plus importants, ils écriront probablement eux-mêmes quelque chose. Mais quand même, est-ce que cela s'avère être le cas ?

Et j'ai une question : est-ce la position officielle ou s'agit-il seulement de spéculations et d'expériences comme les miennes ?