Discussion de l'article "Les bases de la programmation MQL5 : Temps"

 

Un nouvel article Les bases de la programmation MQL5 : Temps a été publié :

L’article se concentre sur les fonctions MQL5 standard pour travailler avec le temps, ainsi que sur les techniques de programmation et les fonctions pratiques utiles pour travailler avec le temps nécessaire à la création d’Expert Advisors et d’indicateurs. Une attention particulière est accordée à la théorie générale de la mesure du temps. Cet article devrait intéresser principalement les programmeurs MQL5 novices.

MQL5 offre un certain nombre de fonctions simples pour travailler avec le temps et vous ne devriez pas avoir de difficulté à vous familiariser avec elles. La gamme de tâches qui nécessitent l’utilisation de la date et de l’heure est assez petite. Les tâches principales sont les suivantes :

  • Pour effectuer certaines actions à un moment donné (Fig. 1). Il peut s’agir d’actions effectuées à la même heure chaque jour ou à une heure donnée de la journée et d’un jour donné de la semaine sur une base hebdomadaire ou simplement effectuées à une date et une heure données.

    Fig. 1. Point de temps.
    Fig. 1. Point de temps.

  • Pour activer ou désactiver certaines actions dans une plage de temps donnée (session de temps). Cela peut inclure une session de temps dans la journée (tous les jours d’un point de temps à un autre), l’activation / désactivation de certaines actions à des jours particuliers de la semaine, des sessions de temps d’un moment donné un jour de la semaine à un moment donné un autre jour de la semaine et juste des actions se situant dans une plage de dates et heures spécifiée.

    Fig. 2. Plage de temps.
    Fig. 2. Plage de temps.

Auteur : Dmitry Fedoseev

 
"01.12.2012 - premier janvier 2012". - peut-être décembre ?
 
Ou peut-être le 01.01.2012 :)
 
En attendant... ils vont le réparer.
[Supprimé]  
Integer:
Ou peut-être le 01.01.2012 :)
Corrigé, merci.
 

Vous n'auriez pas dû utiliser le terme "heure d'hiver" .

Il faut parler d'heure normale , car selon les règles (et même dans Windows), il s'agit de l'heure normale.

L'hiver est un nom commun, ce n'est pas l'été.

Lorsque vous l'appelez été ou standard, il est immédiatement clair qu'il s'agit de l'heure d'été qui n' est pas standard, qui a une heure de plus.

 
Que signifie la phrase "All chart elements are set to invisible colour" et où se trouve-t-elle dans le code du script ? Je vous remercie.
 
Ce n'est pas dans le code, c'est sur l'image, pour plus de clarté, afin que le script soit mieux visible. Il est désactivé manuellement.
 
Bonjour, cher programmeur. Pour moi, les programmeurs sont comme des dieux - créer quelque chose qui fonctionne à partir de rien, à partir d'air et même créer des choses matérielles est tout simplement fantastique... Vous déterminez seulement le moment depuis le début, mais comment définir la périodicité. Jusqu'à présent, je dois renommer les EA pour que chacun démarre et s'arrête à sa propre heure, mais comme dans MT5 il n'y a qu'une seule paire - un seul EA, je dois changer manuellement. Merci de votre compréhension.
 

Excellent article. C'est bien quand tout est rassemblé et qu'après avoir lu, tout s'accumule dans votre tête pour former un système.

J'aimerais avoir plus d'informations sur le passage (ou non) des différentes bourses à l'heure d'été.

Je suis également intéressée par la question de savoir comment programmer les tests en tenant compte des fuseaux horaires de Forex, si certaines bourses passent à l'heure d'été et d'autres non.

En même temps, les dates de transition sont différentes partout, et les règles de sélection de ces dates peuvent avoir changé au fil des ans.

Quelqu'un a-t-il déjà codé quelque chose de ce genre ?

 

J'ajouterai mon grain de sel. Fonction pour obtenir le paramètre de temps (l'utiliser dans le code est plus compact).

//=====================================================================================================================
// Renvoie le paramètre de temps requis
// int TimeGet(datetime).year ; // year
// int TimeGet(datetime).mon ; // month
// int TimeGet(datetime).day ; // day
// int TimeGet(datetime).hour ; // hour
// int TimeGet(datetime).min ; // minutes
// int TimeGet(datetime).sec ; // seconds
// int TimeGet(datetime).day_of_week ; // jour de la semaine (0-dimanche, 1-lundi, ...,6-samedi).
// int TimeGet(datetime).day_of_year ; // numéro ordinal de l'année (le 1er janvier porte le numéro 0)
//=====================================================================================================================
MqlDateTime TimeGet(datetime par_time) {
   MqlDateTime stm;
   TimeToStruct(par_time, stm);
   return(stm);
}

Cela semble fonctionner, mais lorsque vous entrez un point, la liste déroulante des éléments de la structure MqlDateTime n'apparaît pas :(