Rejoignez notre page de fans
- Vues:
- 89
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Il s'agit d'une version étendue du script CalendarForDates.mq5 présenté dans le livre algotrading.
Les variables d'entrée vous permettent de spécifier un code pays, un code courant et une période de temps pour filtrer les enregistrements requis. Si les entrées sont laissées vides, un calendrier complet peut être demandé (si le calendrier est demandé pour la première fois après le démarrage du terminal, il peut prendre un certain temps pour télécharger sa base ou même s'interrompre et ne produire aucun résultat - veuillez alors exécuter le script une nouvelle fois).
En conséquence, vous obtiendrez un fichier CSV contenant les enregistrements du calendrier avec les champs les plus importants (tous les champs ne sont pas exportés - n'hésitez pas à adapter le code source en fonction de vos besoins).
En option, vous pouvez saisir un fichier *.cal (copie archivée du calendrier pour une période donnée) créé par l'indicateur CalendarMonitorCached.mq5 également présenté dans le livre, qui est désormais obsolète en faveur de sa version étendue CalendarMonitorCachedTZ.mq5 (recommandée et requise pour la nouvelle fonctionnalité, décrite ci-après).
La fonctionnalité la plus intéressante : le script démontre l'utilisation de TimeServerDST.mqh pour ajuster les horodatages des événements historiques en fonction des changements de fuseau horaire du serveur dans le passé, qui sont reflétés de manière persistante dans les horodatages des bougies. Ce mode est activé en réglant l'entrée FixCachedTimesBySymbolHistory sur true.
L'enregistrement des événements dans des fichiers CSV avec et sans correction permet de comparer facilement les effets de la correction de l'heure sur l'historique.
Pour une utilisation correcte de cette fonctionnalité, il est recommandé d'exécuter le script sur les graphiques XAUUSD ou EURUSD H1. En cas d'utilisation programmatique, ces symboles doivent être transmis aux fonctions du TimeServerDST.
La même approche est utilisée dans l'indicateur CalendarMonitorCachedTZ.mq5 pour exporter les événements calendaires corrigés dans des fichiers cal archivés, prêts à être chargés à partir du testeur, ce qui garantit des backtests précis et l'optimisation des robots d'information.
La plage de dates dans laquelle les corrections temporelles sont effectuées est limitée au nombre maximal de barres sur le graphique pour le cadre temporel H1. C'est la spécificité de la méthode empirique utilisée dans TimeServerDST.mqh.
Considérons un type d'événement spécifique, de préférence avec un impact important sur le marché, tel que la publication des chiffres de l'emploi non agricole aux États-Unis (NFP).
Sur un serveur européen avec horaire DST (MQ Demo), cet événement se produit à 14h30 en hiver et à 15h30 en été. Sur la capture d'écran ci-dessous, vous pouvez voir côte à côte deux versions de l'historique complet du calendrier exporté vers des fichiers CSV, avec la date spécifique de l'été 2023.08.04 en vue. Les deux exportations ont été effectuées le 8 novembre (hiver, heure normale), de sorte que le décalage GMT+2 a été appliqué par défaut pour tous les événements, y compris l'été 2023 (et toutes les autres saisons et années également). Sans la correction (montrée à droite), les heures exportées pour les PFN de l'été sont 14:30. Ce n'est pas correct.
Après une autodétection empirique du fuseau horaire du serveur, qui était en vigueur pendant l'été, la bibliothèque effectue l'exportation du calendrier avec correction de l'heure (illustrée à gauche). En conséquence, les PFN de l'été sont déplacés à 15h30, comme il se doit. Vous pouvez consulter le graphique pour cette période afin de vous assurer que la correction est appropriée.
Ce cas spécifique n'est pas si dramatique, car l'heure annoncée non corrigée de 14:30 est antérieure à 15:30, de sorte que les conseillers experts pourraient probablement continuer à attendre les nouvelles et ouvrir des transactions. Mais lorsque le fuseau horaire du serveur passe à l'été, tous les événements d'hiver enregistrés dans le calendrier contiennent des horodatages retardés d'une heure ( !).
Ce système est encore expérimental. N'hésitez pas à nous faire part de vos commentaires.
D'autres recherches sur l'impact des corrections temporelles sur les échanges de nouvelles sont prévues. Restez à l'écoute.
Les fichiers mqh joints(CalendarFilter.mqh, CalendarCache.mqh, QuickSortStructT(Ref).mqh) contiennent des corrections de bugs et des améliorations par rapport à leurs versions originales du livre.
04.10.2024 - ajout de l'écriture/lecture du décalage du fuseau horaire du serveur dans les fichiers cal et csv.
10.11.2024 - ajout d'une option pour corriger les horodatages des événements dans l'historique en fonction des changements rétrospectifs de fuseau horaire du serveur.
11.11.2024 - petite correction de bogues et amélioration de CalendarCache.mqh et CalendarFilter.mqh.
22.11.2024 - petites corrections de bogues et améliorations dans CalendarCache.mqh.
Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/52977

L'oscillateur CG de Fisher est un oscillateur dont les valeurs sont obtenues par la transformation inverse de Fisher des valeurs de l'indicateur CG Oscillator personnalisé.

L'indicateur Mikahekin est plus un bloc analytique qu'un indicateur. La couleur des barres détermine la direction de la tendance, et leur hauteur - la force des tendances. Les points bleus et roses indiquent les niveaux de stop de suivi pour les positions longues et courtes respectivement.

Un exemple de code de pin converti en MQL

Le RVI de Fisher est un oscillateur dont les valeurs sont obtenues par la transformation inverse de Fisher des valeurs de l'indicateur RVI (Indice de Vigueur Relative).