Discussion de l'article "Limitations et vérifications dans Expert Advisors"

 

Un nouvel article Limitations et vérifications dans Expert Advisors a été publié :

Est-il permis d’échanger ce symbole lundi ? Y a-t-il assez d’argent pour ouvrir une position ? Quelle est l’ampleur de la perte si le Stop Loss se déclenche ? Comment limiter le nombre d’ordres en attente ? L’opération de trade a-t-elle été exécutée à la barre actuelle ou à la barre précédente ? Si un robot de trading ne peut pas effectuer ce type de vérifications, toute stratégie de trade risque de se transformer en une stratégie de perte. Cet article présente les exemples de vérifications utiles dans n’importe quel Expert Advisor.

Les messages du fichier CheckVolumeValue.mq5 qui vérifie que le volume est correct.

Auteur : MetaQuotes

 

article utile

 
Je suis d'accord, beaucoup de choses utiles... S'il vous plaît, ne considérez pas que c'est difficile, expliquez le concept de "session de négociation" et de "session de cotation".
 

Je comprends qu'une séance de négociation diffère d'une séance de cotation en ce sens qu' il est déjà possible de passer des ordres.

mais il n'y a pas encore de cotation, c'est-à-dire qu'il n'y a pas de négociation, mais il est possible de passer des ordres.

Il est clair que les cotations sont en cours, ce qui signifie que des transactions ont lieu sur cet instrument.


Corrigez-moi si je me trompe

 
Lors de la séance de négociation, vous pouvez négocier, lors de la séance de cotation, les prix sont reçus comme lors de la séance de négociation, mais vous ne pouvez pas négocier.
 
Rosh:
Dans la session de négociation, vous pouvez effectuer des transactions, dans la session de cotation, les prix sont affichés comme dans la session de négociation, mais vous ne pouvez pas effectuer de transactions.

Merci, c'est logique.
 
En raison d'une modification du langage MQL5, le volume cumulé maximum autorisé pour un symbole doit désormais être obtenu de cette manière :
//--- obtenir la limite de caractères sur le volume
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

L'ancienne variante était ainsi et ne devrait plus être utilisée:

//--- obtenir la limite de caractères sur le volume
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);


L'article a été corrigé et le nouveau code de l'Expert Advisor Check_Order_And_Volume_Limits.mq5 a été joint.

 

En raison des modifications apportées à MQL5, le volume global maximal autorisé pour un symbole peut désormais être obtenu comme suit :

//--- Obtenir la limitation des symboles pour le volume
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

N'utilisez pas l'ancienne variante ! Elle se présentait comme suit :

//--- obtenir la limitation des symboles pour le volume
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);
L'article a été corrigé et le nouveau code expert Check_Order_And_Volume_Limits.mq5 y a été joint.
 

(bâtiment 306)

void OnStart()
{
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);
}

erreurs de compilation :

'SYMBOL_VOLUME_LIMIT' - identifiant non déclaré test.mq5 4 46
'SymbolInfoDouble' - aucune des surcharges ne peut être appliquée à l'appel de fonction test.mq5 4 20

 

Citation de l'article : "Pour obtenir l'heure d'ouverture de la dernière barre, vous pouvez utiliser la fonction SeriesInfoInteger(), qui doit recevoir le nom du symbole, la période et la propriété SERIES_LASTBAR_DATE".

Dans une version antérieure du livre de référence, il y avait un exemple d'obtention de l'heure d'ouverture de la dernière barre à l'aide de la fonction CopyTime, à peu près comme ceci :

datetime lastbar_time[1];

CopyTime(Symbol(),0,0,1,lastbar_time);

Question : laquelle de ces deux options pour obtenir la dernière heure d'ouverture de la barre est préférable en termes de rapidité de recherche d'informations et d'efficacité d'utilisation ?

 
Yedelkin:

Citation de l'article : "Pour obtenir l'heure d'ouverture de la dernière barre, vous pouvez utiliser la fonction SeriesInfoInteger(), qui doit recevoir le nom du symbole, la période et la propriété SERIES_LASTBAR_DATE".

Dans une version antérieure du manuel de référence, il y avait un exemple d'obtention de l'heure d'ouverture de la dernière barre à l'aide de la fonction CopyTime, comme ceci :

Question : laquelle de ces deux options pour obtenir l'heure d'ouverture de la dernière barre est préférable en termes de rapidité de recherche d'informations et d'efficacité d'utilisation ?

Elles devraient être équivalentes en termes de temps, mais l'option SERIES_LASTBAR_DATE avec semble meilleure.