Questions des débutants MQL5 MT5 MetaTrader 5 - page 476

 
Sergei Vladimirov:
Au fait, pourquoi déclarer une fonction comme int si elle renvoie vrai dans votre version, et toujours ? )
Je l'ai corrigé pour l'annuler, j'ai changé la boucle pour l'inverser, tant que les commandes des autres n'y touchent pas, merci !
 
Pouvez-vous me dire comment faire pour que OnCalculate de l'indicateur ne soit pas appelé à chaque tick, mais seulement avec une nouvelle barre?
 
Hexen:
Pouvez-vous me dire comment faire pour que l'indicateur OnCalculate ne soit pas appelé à chaque tick, mais seulement à chaque nouvelle barre?
Cette fonction sera appelée à chaque tick, mais vous pouvez créer un nouveau contrôle de barre dans la fonction.
 
Victor Nikolaev:
Cette fonction sera appelée à chaque tick, mais vous pouvez faire un nouveau contrôle de barre à l'intérieur de la fonction.

Merci, ça s'est plus ou moins arrangé. En comparantprev_calculated et rates_total vous pouvez voir l'apparition de nouvelles barres. Et dans EA, c'est plus compliqué avec la nouvelle barre - contrôle de l'heure, etc.

 

Ne les comparez pas, ce n'est pas un moyen très fiable : la variable prev_calculated peut être mise à zéro dans certaines conditions. Mémorisez l'heure du bar actuel et vérifiez son changement lors du prochain appel :

// в самом начале функции OnCalculate()
bool bNewBar = false;

static datetime dtLastBarTime = time[rates_total-1];

if(time[rates_total-1] > dtLastBarTime)
{
   bNewBar = true;
   dtLastBarTime = time[rates_total-1];
}

PS. Il s'agit d'un exemple pour MT5. En quatre (et en cinq si le tableau time[] est une série temporelle), remplacez time[rates_total-1] par time[0].

 
Bonjour,

J'ai décidé de créer un conseiller expert simple après avoir lu l'article "A Step-by-Step Guide to Writing".
MQL5 Expert Advisor pour les débutants" (https://www.mql5.com/ru/articles/100).

J'ai testé le conseiller expert sur l'historique et je me suis demandé comment l'améliorer.
La première chose qui m'est venue à l'esprit, en dehors de l'optimisation
Appliquer un stop-loss de suivi. Il existe un bon article sur ce sujet :
"Comment créer un stop suiveur - Articles MQL5" ().
(https://www.mql5.com/ru/articles/134). Cependant, un
Cependant, un problème s'est posé, l'Expert Advisor joint à l'article ne fonctionne pas... c'est-à-dire.
(mon_premier_ea_sartrailing.ex5) compile mais ne négocie pas
le journal dit :
2015.11.28 22:54:38.973 2015.02.04 17:00:00 Alert : La demande d'établissement d'un ordre de vente a échoué - code d'erreur:4756
2015.11.28 22:54:38.973 2015.02.04 17:00:00 échec de la vente instantanée de 0.10 EURUSD à 1.14051 sl : 1.17051 tp : 1.04051 [Requête invalide].
Aidez-nous à résoudre ce problème.
 
Sergei Vladimirov:

PS. Il s'agit d'un exemple pour MT5.

Merci !
 

Bonjour.

Pouvez-vous me dire quelle est la méthode la plus rapide et la plus correcte pour supprimer tous les ordres existants placés par l'EA ? Est-il vraiment possible de créer un tableau avec des numéros de commande et de supprimer chacun d'entre eux ? Est-il impossible d'obtenir également une liste des commandes en cours ?

 
Антон:

Bonjour.

Pouvez-vous me dire quelle est la méthode la plus rapide et la plus correcte pour supprimer tous les ordres existants placés par l'EA ? Est-il vraiment possible de créer un tableau avec des numéros de commande et de supprimer chacun d'entre eux ? Peut-on également obtenir une liste des commandes en cours ?

Nous n'avons pas besoin d'un tableau. Quel terminal ?

 
Sergei Vladimirov:

Vous n'avez pas besoin d'un tableau. Quel terminal ?

MT5

Oui, j'aurais dû dire que cela doit être implémenté dans une EA.

J'ai trouvé un script sur mql4 - n'est-il pas pertinent pour 5 ? Il y a quelques jours, j'ai vu quelque part une ligne avec une fonction du type "orderscancelbymagicnumber", mais je ne trouve rien dans la documentation... Confus.

Raison: