Experts: Programmation MQL5 pour les Traders - Codes Source du livre. Partie 4

 

Programmation MQL5 pour les Traders - Codes Source du livre. Partie 4:

Dans la quatrième partie du livre, nous nous concentrerons sur la maîtrise des fonctions intégrées (API MQL5) et nous nous pencherons progressivement sur les sous-systèmes spécialisés. Tout programme MQL5 peut utiliser de nombreuses technologies et fonctionnalités. Il est donc logique de commencer par les fonctions les plus simples et les plus utiles qui peuvent être utilisées dans la plupart des programmes.

Programmation MQL5 pour les Traders - Codes Source du livre. Partie 4

Auteur : MetaQuotes

 

Bonjour,

L'algorithme utilisé pour calculer le décalage GMT et l'heure d'été du courtier dans le script "TimeSummer.mq5" est totalement erroné.

https://www.mql5.com/fr/book/common/timing/timing_daylight_saving

L'algorithme correct se trouve ici : https://www.mql5.com/fr/code/48650

Determine Broker's Daylight (DST) schedule
Determine Broker's Daylight (DST) schedule
  • www.mql5.com
Script to determine whether your Broker follows the US, UK or AU daylight (DST) schedule.
 
ok
 

Il est possible de trier les structures par plus d'un champ, en créant une version légèrement modifiée de la macro SORT_STRUCT. Par exemple, pour un tri sur 2 champs, on peut utiliser la macro SORT_STRUCT :

//+------------------------------------------------------------------+
//| Macro pratique pour trier un rayon 'A' de type 'T' en fonction de deux champs 'F'.
//+------------------------------------------------------------------+
#define  SORT_STRUCT_2(T,A,F1,F2)                                     \
{                                                                    \
   class InternalSort : public QuickSortStructT<T>                   \
   {                                                                 \
      virtual bool Compare(const T &a, const T &b) override          \
      {                                                              \
         return (a.##F1 > b.##F1)                                    \
            || (a.##F1 == b.##F1 && a.##F2 > b.##F2);                \
      }                                                              \
   } sort;                                                           \
   sort.QuickSort(A);                                                \
}
MQL5 Book: Common APIs / Working with arrays / Comparing, sorting, and searching in arrays
MQL5 Book: Common APIs / Working with arrays / Comparing, sorting, and searching in arrays
  • www.mql5.com
The MQL5 API contains several functions that allow comparing and sorting arrays, as well as searching for the maximum, minimum, or any specific...
 
amrali #:

L'algorithme utilisé pour calculer le décalage GMT et l'heure d'été du courtier dans le script "TimeSummer.mq5" est totalement erroné.

N'hésitez pas à m'écrire les détails via PM. Votre script fait des actions similaires d'une manière plus compliquée et est lié à une table de règles préexistante, que je n'ai délibérément pas utilisée, parce que l'idée était de détecter l'heure d'été à partir de simples statistiques de cotations. La configuration du serveur peut être inexacte dans la pratique et ne pas correspondre aux normes. C'est pourquoi vos scripts ont parfois échoué à détecter le fuseau horaire réel des serveurs des utilisateurs, selon leurs commentaires.

Une version mise à jour du détecteur d'heure d'été de mon serveur a été récemment publiée.

TimeServerDaylightSavings
TimeServerDaylightSavings
  • www.mql5.com
Time-related functions for empirical detection of server time zone and daylight savings mode (DST) from history of quotes