Caractéristiques du langage mql5, subtilités et techniques - page 44

 
Après un OrderSend(Async) réussi, le champ Result.request_id contient le nombre de requêtes envoyées au serveur commercial depuis ledémarrage du terminal(pas le login).
 

Je ne comprends pas, pour une raison quelconque, la classe CCanvas ne dessine les lignes sur le canevas normalement que lorsque le graphique est agrandi, et lorsque vous faites un zoom arrière, seul le canevas lui-même est dessiné, mais les lignes ne le sont pas :

 
Konstantin:

Je ne comprends rien, pour une raison quelconque, la classe CCanvas dessine normalement des lignes sur le canevas uniquement lors d'un zoom avant et lors d'un zoom arrière, le canevas seul est dessiné, mais les lignes ne sont pas dessinées :


Mais ne postez pas votre code ici - au cas où nous découvririons une erreur ;)). Une génération de clowns...

 

J'ai trouvé le problème, lors de la conversion des coordonnées temps/prix en pixels du graphique, je n'ai pas pris en compte les coordonnées du graphique, j'ai donc dû les convertir en coordonnées du canevas où je dessinais ;))


 

POSITION_TICKET peut ne pas être égal àPOSITION_IDENTIFIER uniquement s'il y a eu une transaction DEAL_ENTRY_INOUT(DEAL_ENTRY_OUT_BY).

Si une telle transaction n'a pas eu lieu, ces paramètres de position seront toujours les mêmes.

 
fxsaber:

POSITION_TICKET peut ne pas être égal àPOSITION_IDENTIFIER uniquement s'il y a eu une transaction DEAL_ENTRY_INOUT(DEAL_ENTRY_OUT_BY).

Si une telle transaction n'a pas eu lieu, ces paramètres de position correspondront toujours.

C'est faux. J'ai vu que lors de l'activation d'un ordre en attente, le ticket et l'ID ne coïncident pas, même dans le testeur de compte.

Ainsi, pour obtenir une liste d'ordres et de transactions appartenant à une position, nous devons toujours utiliser l'ID et non le ticket de la position.

 
Alexey Viktorov:

Faux. J'ai rencontré que lors de l'activation d'un ordre en attente, le ticket et l'ID ne correspondent pas, même dans le testeur de compte hadge.

Code pour le testeur, s'il vous plaît.

Par conséquent, nous devons toujours utiliser l'identifiant, et non le ticket de la position, pour obtenir la liste des ordres et des transactions appartenant à la position.

Ça n'a jamais été le but. Le point est autre chose :

  • Si TICKET != IDENTIFICATEUR, alors 100% il y a eu une transaction INOUT (BY-case n'est pas intéressant, donc je ne l'écris pas).
  • Sinon, il n'y a pas eu de transaction INOUT.
SZY En conséquence, dans les comptes de couverture, POSITION_TICKET == POSITION_IDENTIFIER est toujours utilisé, sauf si CloseBy est utilisé.
 

Sur le marché à terme, comment déterminer l'heure de clôture du marché de la veille dans différentes variantes de recherche de l'intervalle de temps actuel :

1. Nous sommes dans l'intervalle samedi - dimanche ; nous avons besoin de l'heure de clôture de la session commerciale du vendredi soir.
2. Nous sommes dans un marché fermé du lundi au vendredi ; nous avons besoin de l'heure de fermeture de la session de négociation du soir du lundi au jeudi.
3. dans la fourchette de négociation du lundi au vendredi ; nous avons besoin d'une heure de fermeture pour la séance de négociation du vendredi soir.
4. dans la plage horaire du mardi au vendredi, nous avons besoin de l'heure de clôture des sessions du lundi au jeudi soir.

Peut-être que quelqu'un a écrit une fonctionnalité similaire, je ne veux pas réinventer la roue ;))

 
fxsaber:

Le code du testeur, s'il vous plaît.


Prenez n'importe quel code avec des ordres d'ouverture en attente et faites la course, vous aurez de la chance un jour.

Mot clé dans mon article

il n'y a pas de dépendance et il ne peut pas y en avoir. Par conséquent, il ne peut pas non plus y avoir de code spécial.
fxsaber:

  • Si TICKET != IDENTIFIER, alors 100% il y a eu une transaction INOUT (BY-case n'est pas intéressant, donc je n'écris pas).

Plus précisément, c'est l'inverse :

S'il y a eu une transaction INOUT, alors 100% TICKET != IDENTIFICATEUR.

C'est indiscutable. Bien que sur les comptes hadge, une transaction INOUT est née par la contre-fermeture.

fxsaber:


  • Sinon, il n'y avait pas d'accord INOUT.

C'est discutable. C'est même très discutable.

A ce stade, je vous fais mes adieux. Je n'ai pas le droit de vous empêcher de vous perdre...

 
Konstantin:

Sur le marché à terme, comment déterminer l'heure de clôture du marché de la veille dans différentes variantes de recherche de l'intervalle de temps actuel :

1. Nous sommes dans l'intervalle samedi - dimanche ; nous avons besoin de l'heure de clôture de la session commerciale du vendredi soir.
2. Nous sommes dans un marché fermé du lundi au vendredi ; nous avons besoin de l'heure de fermeture de la session de négociation du soir du lundi au jeudi.
3. dans la fourchette de négociation du lundi au vendredi ; nous avons besoin d'une heure de fermeture pour la séance de négociation du vendredi soir.
4. pour la période du mardi au vendredi, nous avons besoin de l'heure de fermeture des sessions du lundi au jeudi soir.

Peut-être que quelqu'un a écrit une fonctionnalité similaire, je ne veux pas réinventer la roue ;))

Peut-être que ça va marcher ? Bien que cela ne soit pas toujours correct dans le domaine du forex.

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionTrade
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionTrade
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionTrade - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Raison: