![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
alors pourquoi écrivez-vous ici ?
à volonté
disparu
Alena Lysenkova
Vous perdez votre temps, les clients attendent...
C'est ce que je dis "les scribouillards" et leurs défenseurs.
Pourquoi copier tous les tics quand ce sont les transactions qui vous intéressent ?
Dans le code.
C'est forcément ça.
Qu'est-ce qu'il y a de mal à ça ?
Il ne sait même pas ce que devrait être le résultat ou ce qu'il faut faire pour l'obtenir.
même les plus expérimentés ne m'ont pas donné la réponse à cette question délicate, car il est interdit d'en parler à tout bout de champ.
Mais je sais comment obtenir le bon résultat, car j'étudie ce sujet depuis environ 5 ans.
Je n'ai pas remarqué ça, honnêtement. La fille a posé une question, dont l'essence et vous ne savez pas vraiment et peu de gens sur ce forum pour le comprendre, l'admettre franchement.
C'est-à-dire le reste des détails qu'elle peut évidemment régler, contrairement à de nombreux "scribouillards" qui posent des questions de première classe.
Et farfouiller dans les menus détails, faire étalage de leur prétendu savoir universel, et même se tromper à la volée dans les petites questions, ce n'est pas ça qui n'est pas professionnel, et comme ce n'est même pas comme un homme, et comme une mamie grincheuse en colère sur le banc.
Je n'ai pas remarqué ça, honnêtement. La jeune fille a posé une question, dont vous ne connaissez pas vraiment l'essence et que peu de personnes sur le forum comprennent, admettez-le franchement.
C'est-à-dire qu'en ce qui concerne le reste des détails, elle trouvera évidemment la solution, contrairement à de nombreux "scribouillards" qui posent des questions de première classe.
Et fouiller dans les moindres détails, montrer leur prétendue connaissance universelle, et même faire des erreurs à la volée sur des questions mineures, ce n'est pas si professionnel, et d'une certaine manière, ce n'est même pas comme un homme, et comme une mamie grincheuse sur un banc.
C'est justement ça.
L'OI n'est pas une chose aussi simple qu'il n'y paraît à première vue, qu'ils sont heureux d'écrire pour quelques centimes à qui le veut.
et ce qui a été discuté ici depuis la page 2 n'est même pas proche.C'est justement ça.
L'IO n'est pas une chose aussi simple qu'il n'y paraît à première vue, qu'ils sont heureux d'écrire pour quelques centimes à qui le veut.
Et ce qui a été discuté ici depuis la page 2 n'est même pas proche.Bienvenue à nouveau)
C'est justement ça, que la question soit difficile et spécifique et posée avec le degré de compréhension nécessaire (enfin, peut-être sans connaissance profonde), alors que tous les "méga-gourous" montrent leur ego en reprenant les virgules du code de vérification des tests sur un ton péjoratif, alors qu'ils sont eux-mêmes encore confus sur les concepts.
Non professionnel et laid. Les hommes normaux ont répondu en substance, je pense que la question est résolue)
Je peux être franc : j'ai besoin d'un moteur asynchrone, mais le mécanisme avec les mages véreux que prostotrader utilise ne me convient pas du tout.
Comment écrire ce moteur correctement, je ne comprends pas encore. Et vous ? ;)
Pourquoi avez-vous besoin d'un moteur asynchrone ? Si vous conduisez deux jambes, vous citez la première jambe avec la limite et frappez la seconde jambe avec le marqueur lorsque la première jambe est déclenchée. Il est possible et utile de se passer d'asynchrone ici. Synthétiques composites à plusieurs caractères - oui, l'asynchrone sera utile. Mais vous devrez toujours faire face au contrôle de liquidité de chaque symbole. Il ne suffira pas de créer une position avec des entrées cohérentes. Au fait, l'asynh fonctionne aussi lentement que les commandes non synchrones. Par conséquent, si vous avez besoin de rapidité pour passer une seule commande, elle ne doit certainement pas être asynchrone.
Pourquoi dans le changement terminal de l'intérêt ouvert :
SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST)
vit sa vie par rapport à la bande ?
void OnBookEvent(const string& symbol)
D'après ce que je comprends du marché à terme, les transactions sur le ruban ne peuvent pas faire varier l'OI. Mais pourquoi l'OI change-t-il tout seul sans aucune transaction ?
Cela a déjà été vu auparavant :
https://www.mql5.com/ru/forum/165157/page2#comment_3989978
L'OI dans le terminal est mis à jour avec quelle périodicité, de quoi dépend-il ?
Comment synchroniser les changements d'OI avec les transactions dans le flux ? Je veux obtenir un flux complet avec OI.
L'OI change si et seulement s' il y a une transaction (Last). À proprement parler, un participant peut entrer sur le marché après avoir conclu une transaction et l'autre participant sortir du marché avec la même transaction. Dans ce cas, même si un accord est conclu, l'OM ne changera pas. Ainsi, l'événement OnTick() doit être synchronisé avec les changements OI. Si ce n'est pas le cas pour MT, cela signifie que les canaux commerciaux pour les OI et les ticks sont différents. Ce sont des sources différentes qui seront légèrement désynchronisées dans le temps. Toutefois, c'est le maximum qui peut être atteint. L'analyse des flux commerciaux, les timers - tout cela n'est qu'un algo sans signification. Dans ce cas, le programmeur n'a qu'une seule possibilité : obtenir la valeur connue la plus proche de OM, au moment de l'arrivée d'un nouveau tick. Les deux valeurs seront synchronisées l'une avec l'autre dans la mesure du possible. Mais il n'y aura pas de synchronisation parfaite.
Mais l'accès à l'OI en temps réel, fourni par la bourse, est l'exception plutôt que la règle. Sur les autres bourses, l'OI n'est qu'une valeur de référence publiée en fin de journée. Il convient donc de féliciter le MEX pour cette occasion exceptionnelle d'observer la MO en temps [presque] réel.
Dans ce cas, le programmeur n'a qu'une seule option : obtenir la valeur OI connue la plus proche, au moment où le nouveau tick arrive. Les deux valeurs seront autant que possible en phase l'une avec l'autre. Mais il n'y aura pas de synchronisation parfaite.
Je l'ai donc fait, et j'ai déjà découvert que les données ne sont pas synchronisées.
L'analyse du flux des transactions, les timers sont tous des algos sans intérêt.
Il s'agit plutôt d'expérimenter afin de comprendre au moins une certaine corrélation.
Toutefois, je noterai que l'accès en temps réel à l'OI fourni par la bourse est l'exception plutôt que la règle. Sur les autres bourses, l'OI n'est qu'une valeur de référence publiée en fin de journée. Il convient donc de féliciter le MEX pour cette formidable occasion d'observer l'OM en temps [presque] réel.
Ce serait bien de comprendre comment cela fonctionne en général dans le terminal. L'OI se met-il à jour à une certaine périodicité, ou est-il simplement décalé ?
Cela permettrait au moins de lier le changement d'OI à la bande, avec le même décalage.
Pourquoi avez-vous besoin d'un moteur asynchrone ? Si vous conduisez deux jambes, vous citez la première jambe avec la limite et frappez la seconde jambe avec le marqueur lorsque la première jambe est déclenchée. Ici, vous pouvez vous passer de l'asynchrone et de l'utile. Synthétiques composites à plusieurs caractères - oui, l'asynchrone sera utile. Mais vous devrez toujours faire face au contrôle de liquidité de chaque symbole. Il ne suffira pas de créer une position avec des entrées cohérentes. Au fait, l'asynh fonctionne aussi lentement que les commandes non synchrones. Donc si vous avez besoin de vitesse pour l'ouverture d'un seul ordre, vous ne devez pas vous concentrer sur l'asynchrone.
En fait, il n'est nécessaire que pour les arbitres à trois ou quatre pattes. Je n'en ai pas tant que ça, seulement quelques dizaines, et pour l'instant je n'utilise que le moteur synchrone.
Je sais que l'asynchrone n'augmente pas la vitesse, je comprends la physique du processus et je comprends aussi pourquoi les chiffres affichés par le terminal pour l'asynchrone sont inférieurs à ceux du synchrone.
C'est pourquoi je commence à penser que je ne veux pas m'occuper moi-même de l'asynchrone. Je préfère faire quelque chose de plus utile pour le commerce. Et il n'y a personne à qui le commander, parce qu'il n'y a pas de spécialistes qui comprennent tous les pièges qui se présentent dans le trading réel, pas dans le trading test.
Et à propos de vitesse, il n'y a qu'un seul rêveur ridicule sur ce forum qui prévoit de gagner un jour le LCI avec HFT :) sur MT5 et ce n'est certainement pas moi.Je l'ai fait, et j'ai découvert que les données n'étaient pas synchronisées.
Il s'agit plutôt d'une expérience pour voir s'il y a une corrélation.
Volfix sur les mêmes instruments donne un changement d'OI immédiatement dans la bande. C'est pourquoi le MEX fournit de telles données. Mais dans Mt5, il n'y a pas de synchronisation pour une raison quelconque.Ce serait bien de comprendre comment cela fonctionne en général dans le terminal. La mise à jour de l'OI se fait avec une certaine périodicité, ou avec un certain décalage.
Car cela permettrait au moins de lier le changement d'OI au ruban, avec le même décalage.
Eh bien, comment le lieriez-vous ? Supposons que l'arrivée de l'OI soit en retard sur les ticks. Ensuite, dans OnTick, vous devez obtenir le dernier et ancien OI (il n'y en a pas encore de nouveau dans MT5) et vous en contenter. Si, au contraire, les ticks sont à la traîne, alors, d'une manière générale, il s'agit d'ales, car les ticks dans MT5 sont alors à la traîne par rapport à l'ensemble du flux de données, qui est vu par les autres participants au marché. Mais supposons. Ensuite, nous réglons la minuterie afin de recevoir une nouvelle valeur de tick dès que possible, et l'ancien tick est sauvegardé et combiné avec cet OM. Tout de même, c'est mauvais - il y aura un OM actuel et un dernier tic-tac ancien et non pertinent qui lui sera associé. En outre, la minuterie normale est inférieure à 16 msec. Vous ne le ferez pas - le multithreading préemptif. Vous obtiendrez un timer tordu avec un écart assez important de plusieurs msec, ce qui est difficile à comprendre quand il sera appelé. Vous ne pourrez pas non plus bourrer le conseiller expert de Sleep() de manière normale. Il faut une résolution trop élevée. Dans tous les cas, vous aurez soit un OM décalé, soit un tick.