Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 414

 
L'objectif est d'ouvrir un ordre unique

Nous créons une fonction où nous parcourons en boucle les ordres ouverts et si 0, nous les ouvrons.

Variante 2 :
Condition ordersdtotal ==0

Cela nous donne, au minimum, une ouverture d'ordre sans fin ou une ouverture sur chaque tick

Pourquoi ?
 
Alekseu Fedotov:

Pour commencer :

variables, visibilité des variables

comment sont-elles déclarées, où ?

Je pense que le code est très clair
 
Mickey Moose:
L'objectif est d'ouvrir un ordre

Nous créons une fonction où nous parcourons en boucle les ordres ouverts et si 0, nous les ouvrons.

Variante 2 :
Condition ordersdtotal ==0

Cela nous donne, au minimum, un nombre infini d'ouvertures d'ordres sur chaque tick.

Pourquoi ?
Qu'est-ce qui n'est pas clair dans le code ? Je l'expliquerai si nécessaire.
 
ZZuretc:
Ce qui n'est pas clair, je l'expliquerai si nécessaire.
Je ne vois pas pourquoi je devrais utiliser une fonction de comptage personnalisée alors qu'il existe un total de commande prêt à l'emploi.
 
Mickey Moose:
Je ne vois pas pourquoi je devrais utiliser une fonction de comptage personnalisée s'il existe un total de commande prêt à l'emploi.

Car le standard renvoie le nombre total d'ordres et de positions dans le compte, indépendamment du symbole, du magicien et du type.

 

Bonjour à tous ! Pouvez-vous me dire comment définir la condition de franchissement d'une ligne horizontale par le prix ? Et comment réaliser cette fonction avec une précision maximale (qui réagirait à chaque tick) ?

Merci d'avance))

 
Mickey Moose:
L'objectif est d'ouvrir un ordre.
Nous créons une fonction où nous parcourons en boucle les ordres ouverts et si 0, nous les ouvrons.
Variante 2 :
Condition ordersdtotal ==0
Cela nous donne, au minimum, une ouverture d'ordre sans fin ou une ouverture sur chaque tick
Pourquoi ?

A chaque tick, le terminal reçoit la dernière cotation du serveur ainsi que les informations sur les ordres. Lorsque le terminal envoie la commande OrderSend() au serveur, ce dernier a besoin d'un certain temps pour traiter cette commande et ouvrir l'ordre. Jusque là, il enverra l'information sur l'absence d'un ordre à chaque tick (appelons-le vide). La fonction OrdersTotal() renvoie zéro, et le robot envoie un nouvel OrderSend().

Lorsque le serveur ouvre l'ordre, les ticks vides se terminent. La fonction OrdersTotal() renvoie une valeur positive, le robot se calme. Si les cotations changent fréquemment, les ticks seront fréquents, et il y aura beaucoup de ticks vides. Le robot va envoyer plusieurs OrderSend(). Le serveur va ouvrir de nombreuses commandes.

La conclusion est que nous devons faire une pause après OrderSend().

 
STARIJ:

A chaque tick, le terminal reçoit du serveur la dernière cotation ainsi que des informations sur les ordres. Lorsque le terminal envoie la commande OrderSend() au serveur, ce dernier a besoin d'un certain temps pour traiter la commande et ouvrir l'ordre. Jusque là, il enverra l'information sur l'absence d'un ordre à chaque tick (appelons-le vide). La fonction OrdersTotal() renvoie zéro, et le robot envoie un nouvel OrderSend().

Lorsque le serveur ouvre l'ordre, les ticks vides se terminent. La fonction OrdersTotal() renvoie une valeur positive, le robot se calme. Si les cotations changent fréquemment, les ticks seront fréquents, et il y aura beaucoup de ticks vides. Le robot va envoyer plusieurs OrderSend(). Le serveur va ouvrir beaucoup de commandes.

Conclusion - nous devrions faire une pause après OrderSend().

Si la réponse à OrderSend() est positive, qu'il y a un ticket et que, par conséquent, une position a été ouverte/un ordre a été placé, nous devrions redemander l'environnement de transaction, au lieu d'attendre indéfiniment.

 

Qu'en est-il de la fonction qui prend et modifie une non-magie?

Mais pourquoi les autres fonctions ne placent-elles pas des ordres multiples, mais seulement SellLimit ?

 
ZZuretc:
Qu'en est-il d'une fonction qui prend et modifie une non-magie ?

L'ordre magik ne peut pas être modifié.

Raison: