
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
Il est suggéré de revenir à plusieurs reprises jusqu'à ce que vous ayez lu toute la file d'attente actuelle ou pour un nombre donné d'événements. Lorsque les événements commerciaux sont terminés, il y aura un retour de la minuterie et vous aurez accès à tous les événements en même temps.
Eh bien, je vais dire quelque chose... Bien sûr, bien sûr, IMHO, mais c'est demander d'exécuter le handler dans un thread séparé. Alors, je pense tout haut...
Et si vous le faites pour vous-même, vous mettez tout à l'extérieur et chaque maître-chien sera quelque chose de similaire :
void OnXXX{ gOnXXXMutex.Lock(); COnXXXOverlapped overlapped=new COnXXXOverlapped(<param_list>); gOnXXXOverlappedList.PushBack(overlapped); gOnXXXMutex.Unlock(); DLLOnXXX(<param_list>,overlapped,&gOnXXXMutex); }
il existe une solution plus élégante, sans OnTimer... pensez-y
Réfléchissez par vous-même aux raisons pour lesquelles cela ne fonctionnerait pas.
Réfléchissez par vous-même aux raisons pour lesquelles cela ne fonctionnerait pas.
Et il n'y a pas besoin de réfléchir - le marché vient d'ouvrir, j'ai vérifié - tout fonctionne, jusqu'au calcul de la ligne
if (наблюдаемая позиция закрылась по тейку)
Lesévénements commerciaux ont été ajoutés à la file d'attente et peuvent être lus.
Et ici, vous n'avez pas besoin de réfléchir - le marché vient d'ouvrir, j'ai vérifié - tout fonctionne, jusqu'à la ligne
Les événements commerciaux ont été ajoutés à la file d'attente et peuvent être lus.
Désolé, mais je n'expliquerai rien dans votre compréhension du bon fonctionnement. Fatigué de devoir épeler des choses simples.
Désolé, mais je ne vais même pas expliquer quoi que ce soit dans votre compréhension du bon fonctionnement. Je suis fatigué de devoir expliquer des choses simples.
Si vous ne voulez pas l'expliquer, ne l'expliquez pas. Je viens de vous montrer qu'ajouter
bool HandleNextEvent (ENUM_EVENT_TYPE);
ne change pas fondamentalement les choses
ne change pas fondamentalement
Cela fait une grande différence. Il semble juste que cela prenne beaucoup de temps (avec un résultat inconnu) pour rendre l'idée évidente dans de nombreuses têtes.
Cela fait une grande différence. Il semble juste que cela prenne beaucoup de temps(avec un résultat inconnu) pour rendre cette idée évidente dans de nombreuses têtes.
Pas beaucoup, car selon la théorie de la simplicité d'Einstein : "Si vous ne pouvez pas l'expliquer simplement, vous ne le comprenez pas vous-même".
Ce n'est pas nécessaire, car selon la théorie de la simplicité d'Einstein : "Si vous ne pouvez pas l'expliquer simplement, c'est que vous ne l'avez pas compris vous-même."
Ouais, tu ne l'as pas eu.
Oui, ça n'a pas marché pour toi.
Et je n'ai pas essayé d'expliquer quoi que ce soit - j'ai donné un exemple et obtenu des résultats :
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
MT5 et la vitesse en action
A100, 2020.05.31 23:23
...le marché vient de s'ouvrir, j'ai vérifié - tout fonctionne, avant le calcul de la ligne
if (наблюдаемая позиция закрылась по тейку)
les événements de négociation ont été ajoutés à la file d'attente et peuvent être lus
Je n'ai pas essayé d'expliquer quoi que ce soit - j'ai donné un exemple et obtenu le résultat :
Vous n'avez rien compris. Lorsque nous revenons, nous entrons dans la fonction On de la file d'attente formée. Cela peut provoquer une pause qui empêche d'envoyer le deuxième ordre correct immédiatement après le premier OrderSend.
Vous proposez d'accumuler la file d'attente en sauvegardant toutes les On-fonctions après le retour, en attendant la On-fonction, dans laquelle il y aura un message sur la fin du premier OrderSend. Et ensuite seulement envoyer le deuxième OrderSend.
En même temps, vous ne comprenez pas que la position de prise peut être exécutée pendant le premier envoi d'ordre, mais que son OnTradeTransaction sera dans la file d'attente plus tard (dans la même microseconde, mais plus tard) que le OnTradeTransaction de fin du premier envoi d'ordre.