FORTS. Questions relatives à l'application de la loi - page 62
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
Bon après-midi à tous !
J'ai une situation légèrement différente. Courtier BCS. Un ordre au marché n'est pas exécuté la première fois.
Envoi d'un ordre d'achat au marché. La fonction renvoie "Commande passée" et le numéro de commande, mais la commande n'est pas réellement exécutée !
Et donc le robot fait de nombreuses tentatives. Envoie un ordre d'achat au marché, reçoit une réponse positive, mais pas d'échange. Dans le même temps, le numéro de commande dans la réponse est nouveau à chaque fois.
En conséquence, la position s'ouvrira tôt ou tard, mais vous devez bombarder le courtier d'ordres, ce qui est clairement faux.
S'il vous plaît, aidez-moi, je ne comprends pas si mon robot est bogué ou si le courtier se trompe? Il n'y a rien à redire sur le robot, toutes les fonctions de vérification se déroulent comme prévu et les réponses sont vérifiées.
Les courtiers ont appelé, mais le "consultant" a haussé les épaules, comme si une affaire était ouverte avec ses mains, alors il y avait une erreur dans le robot , mais ici, ils sont en faillite.
Bonjour à tous !
Ma situation est un peu différente. Mon courtier est BCS. L'ordre de marché n'est pas exécuté à la première tentative.
J'envoie un ordre d'achat au marché. La fonction renvoie "Ordre placé" et le numéro de l'ordre, mais en réalité l'ordre n'est pas exécuté !
Et ainsi le robot fait de nombreuses tentatives. Il envoie un ordre d'achat sur le marché, obtient une réponse positive, mais pas de transaction. Le numéro d'ordre dans la réponse est nouveau à chaque fois.
Par conséquent, la position s'ouvrira tôt ou tard, mais je dois bombarder le courtier d'ordres, ce qui est manifestement une erreur.
Je ne sais pas si mon robot forex a un problème ou si mon courtier fonctionne mal. Je n'ai aucun droit sur le robot, toutes les routines de contrôle fonctionnent correctement et les réponses sont vérifiées.
J'ai appelé les courtiers, mais le "consultant" a secoué ses mains et a dit que si une transaction est ouverte à la main, cela signifie que le robot est mauvais et qu'ils n'ont rien à voir avec cela.
Sergiy !
Il est difficile de se prononcer sans avoir vu votre code.
Mais, à en juger par l'impression, vous ne contrôlez pas correctement le placement des commandes.
Sergei !
C'est très difficile à dire sans voir votre code.
Mais à en juger par l'impression, vous ne contrôlez pas correctement le réglage de la commande.
Mikhail, voici le journal du terminal, c'est-à-dire qu'il accepte l'ordre, dit qu'il est correct, renvoie le code de réussite et le numéro de l'ordre, c'est-à-dire qu'il met l'ordre dans la file d'attente d'exécution mais ne l'exécute pas. Et tellement, beaucoup de fois.
Mais je crois que j'ai compris.
Selon l'algorithme, le risque autorisé vous permet d'ouvrir une transaction pour la totalité du dépôt. Volume de transaction = fonds disponibles / GO, c'est-à-dire que le dépôt est utilisé presque jusqu'au dernier centime. (C'est une erreur, bien sûr, et il ne faut pas procéder de cette façon).
Techniquement, nous avons assez d'argent pour ouvrir une transaction dans ce volume et l'ordre est vérifié par le terminal et accepté par le noyau MT5(la fonction OrderSend renvoie true et le numéro de l'ordre),
Mais l'ordre est rejeté quelque part dans la file d'attente d'exécution (chez le courtier ou à la passerelle avec la bourse) et n'est donc pas exécuté. C'est là qu'intervient la faille de MT5 du côté de Metacquotes.
Le problème est que, en tant que client, je ne suis pas informé de cette situation de quelque manière que ce soit. Tout s'est bien passé pour le robot, mais en fait l'ordre a été rejeté par le courtier/la passerelle/la bourse (je ne peux que spéculer ici).
La fonction OrderSend aurait dû rejeter l'ordre et renvoyer le code d'erreur TRADE_RETCODE_NO_MONEY au robot mais cela ne s'est pas produit pour une raison quelconque.
Il semble que nous devions retracer l'exécution de OnTradeTransaction en détail.
Michael, c'est le journal du terminal, c'est-à-dire qu'il accepte l'ordre, dit qu'il est correctement rempli, renvoie le code de réussite et le numéro de l'ordre, c'est-à-dire qu'il met l'ordre dans la file d'attente d'exécution, mais ne l'exécute pas. Et tellement, beaucoup de fois.
Mais je crois que j'ai compris.
Selon l'algorithme, le risque autorisé vous permet d'ouvrir une transaction pour la totalité du dépôt. Volume de transaction = fonds disponibles / CS, c'est-à-dire que le dépôt est utilisé presque jusqu'au dernier centime. (C'est bien sûr une erreur, vous ne pouvez pas faire cela).
Techniquement, nous avons assez d'argent pour ouvrir une transaction dans ce volume et l'ordre est vérifié par le terminal et accepté par le noyau MT5(la fonction OrderSend renvoie true et le numéro de l'ordre),
Mais l'ordre est rejeté quelque part dans la file d'attente d'exécution (chez le courtier ou à la passerelle avec la bourse) et n'est donc pas exécuté. C'est là qu'intervient la faille de MT5 du côté de Metacquotes.
Le problème est que, en tant que client, je ne suis pas informé de cette situation de quelque manière que ce soit. Pour le robot, c'est réussi, mais en fait l'ordre a été rejeté par le courtier/la passerelle/la bourse (je ne peux que spéculer ici).
La fonction OrderSend aurait dû rejeter l'ordre et renvoyer le code d'erreur TRADE_RETCODE_NO_MONEY au robot mais, pour une raison quelconque, elle ne l'a pas fait.
Une fois de plus, vous ne contrôlez pas correctement le réglage de la commande.
Ce n'est pas parce que vous avez reçu une FACTURE d'un ordre que l'ordre est placé sur l'échange !
Une fois encore, je répète que vous ne contrôlez pas correctement la mise en place de l'ordre.
Le fait que vous ayez reçu une FACTURE d'un ordre ne signifie pas du tout que l'ordre a été placé sur l'échange !
Je suis d'accord, il s'avère que j'ai un manque de connaissances sur cette question ici.
Je n'ai jamais rencontré ce comportement auparavant, j'ai trivialement envoyé par marché et il a toujours soit ouvert ou obtenu une erreur immédiatement.
Je n'avais pas besoin d'entrer dans les détails des nuances de bas niveau de l'exécution des ordres dans la file d'attente. Et là...
Je suis d'accord, il s'avère que j'ai un manque de connaissances sur ce sujet.
Je n'ai jamais rencontré ce comportement auparavant, j'ai envoyé trivialement par marché et il s'est toujours ouvert ou a obtenu une erreur immédiatement.
En général, je n'avais pas besoin d'entrer dans les détails de bas niveau de l'exécution des ordres dans la file d'attente. Et là...
Après avoir reçu un ordre, utiliser la fonction OrderRealSelect()
https://www.mql5.com/ru/forum/67298/page2#comment_2089220
C'est à peu près ce que vous devez faire :
C'est à peu près ce que vous devez faire :
Aitugan, peut-être y aura-t-il des commentaires après tout ? :((
Je comprends bien sûr, je ne veux surtout pas vous distraire de vos vacances à Chypre, mais d'une manière ou d'une autre, le silence s'est prolongé pendant une durée obscène. :((