Erreurs, bugs, questions - page 1432

 
Ilya Malev:

Merci, Capitaine O. Et comment est déterminé l'ordre des index dans la liste de tous les ordres ?

OrderGetTicket renvoie le ticket de commande avec le numéro passé dans la liste, et non le numéro de la commande actuellement sélectionnée sur laquelle portait ma question.

Autant que je me souvienne, le plus ancien (premier) = 0 etc. Regarde, c'est un travail de 5 minutes.

C'est l'ordre que vous avez choisi. Comment a-t-il été sélectionné ? Par numéro ou par ticket ?

En résumé, il y a deux façons de procéder : par numéro et par ticket. Jusqu'à présent, dans ma pratique, il n'y a eu aucune situation où cela ne serait pas suffisant.

 
Alexey Kozitsyn:

Vérifiez-le, ça ne prendra que cinq minutes.

Bien sûr, je peux le vérifier moi-même. Je n'écrirais pas ici si cela pouvait résoudre le problème. Vous avez besoin d'une confirmation des développeurs, car le résultat de la vérification peut être situationnel ou changer arbitrairement dans le futur.

>>Votre commande a été sélectionnée. Comment a-t-il été sélectionné ? Par numéro ou par ticket ?

C'est une question supplémentaire dans MT4, je ne me souciais pas de la façon dont elle était sélectionnée mais j'avais besoin de connaître son ticket pour faire quelque chose avec elle en dehors de la fonction qui l'a sélectionnée. Dans MT5, il semble que ce problème doive être résolu de manière programmatique, ainsi que de nombreuses autres choses.

Alexey Kozitsyn:

Jusqu'à présent, il n'y a eu aucune situation dans ma pratique où cela n'a pas été suffisant.

Il y a beaucoup de situations de ce genre dans ma pratique. Cela se produit chaque fois que vous voulez économiser sur la taille du code en termes de paramètres passés lors de l'appel de fonctions qui traitent des commandes.
 

Et ce n'est pas tout : imaginez une situation où vous travaillez avec un ordre que vous venez de sélectionner, mais où vous devez appeler une fonction pour obtenir des informations provenant d'autres ordres.

Après avoir appelé cette fonction, vous devrez sélectionner à nouveau l'ordre, car cette fonction modifie la sélection actuelle en obtenant certaines informations d'autres ordres.

Il serait logique, dans toutes ces fonctions, de se souvenir de la sélection de l'ordre en cours avant de les exécuter et de la resélectionner avant de revenir, de sorte que la sélection de l'ordre en cours ne change pas lorsque ces fonctions sont appelées, ce qui peut contribuer à éviter certaines erreurs logiques difficiles à trouver dans le code. Mais dans MT5, ce n'est tout simplement pas possible, car il n'y a pas d'analogue de la fonction OrderTicket et nous devons inventer une enveloppe de programme sous la forme d'une classe spéciale pour la sélection des ordres et l'obtention de leur ticket.

 
Ilya Malev:

Et ce n'est pas tout : imaginez une situation où vous travaillez avec un ordre que vous venez de sélectionner, mais où vous devez appeler une fonction pour obtenir des informations provenant d'autres ordres.

Après avoir appelé cette fonction, vous devrez sélectionner à nouveau l'ordre, car cette fonction modifie la sélection actuelle en obtenant certaines informations d'autres ordres.

Il serait logique, dans toutes ces fonctions, de se souvenir de la sélection de l'ordre en cours avant de les exécuter et de la resélectionner avant de revenir, de sorte que la sélection de l'ordre en cours ne change pas lorsque ces fonctions sont appelées, ce qui peut contribuer à éviter certaines erreurs logiques difficiles à trouver dans le code. Mais dans MT5, ce n'est tout simplement pas possible, car il n'y a pas d'analogue de la fonction OrderTicket et nous devons inventer une enveloppe de programme sous la forme d'une classe spéciale pour la sélection des ordres et l'obtention de leur ticket.

Je ne vois pas de problème. Nous avons sélectionné la commande. Nous nous sommes souvenus de son billet. Nous avons besoin d'une autre commande - nous avons trouvé une autre commande. Nous le traitons. Nous devons revenir à la commande précédente, nous utilisons OrderSelect(). C'est tout.
 
Alexey Kozitsyn:
Je ne vois pas le problème. J'ai choisi une commande. Il s'est souvenu de son billet. Besoin d'une autre commande - trouvé une autre commande. Nous le traitons. Nous devons revenir à la commande précédente, nous utilisons OrderSelect(). C'est tout.
Si le problème est quelque chose qui ne peut être contourné et réglé d'une autre manière, alors il n'y a pas de problème. Mais il n'existe pas non plus d'analogue de la fonction OrderTicket de MQL4 qui soit utile.
 
Ilya Malev:
Si le problème est quelque chose qui ne peut être contourné et réglé d'une autre manière, alors il n'y a pas de problème. Mais il n'existe pas non plus d'analogue de la fonction utile OrderTicket de MQL4.
Si vous en avez vraiment besoin, vous savez où demander. Toutefois, il est peu probable que vous y soyez heureux.
 
MT4, build 910. Aucune rétrocompatibilité avec la version précédente. Je donne un fichier indicateur compilé à une personne dans la 910ème build et il ne peut pas le lancer dans la 902ème build avec une erreur :

a une version plus récente non supportée, veuillez mettre à jour votre terminal client


C'est comme ça que ça va se passer maintenant ?

 
Artyom Trishkin:
MT4, build 910. Aucune rétrocompatibilité avec la version précédente. Je donne un fichier indicateur compilé à une personne dans la 910ème build et il ne peut pas le lancer dans la 902ème build avec une erreur :

a une version plus récente non supportée, veuillez mettre à jour votre terminal client


C'est comme ça que ça va se passer maintenant ?

C'était la même chose dans MT5 quand ils ont introduit les ticks.
 
Artyom Trishkin:
MT4, build 910. Aucune rétrocompatibilité avec la version précédente. Je donne un fichier indicateur compilé à une personne dans la 910ème build et il ne peut pas le lancer dans la 902ème build avec une erreur :

a une version plus récente non supportée, veuillez mettre à jour votre terminal client


C'est comme ça que ça va se passer maintenant ?

Oui, c'est comme ça que c'est censé fonctionner. Des modifications ont été apportées au compilateur dans la version 910. Par conséquent, les fichiers ex4 générés par le compilateur mis à jour ne peuvent pas être exécutés dans les versions précédentes du terminal.

 

Bonjour.

Voici une question : hier, avant la mise à jour de MT5, mon script a été compilé en 2 secondes. Aujourd'hui, après la mise à jour, il a fallu presque 5 minutes pour compiler... Est-ce que ce sera toujours comme ça ? :(