Fonctionnalité de veille
La capacité de rester en attente jusqu'à une heure spécifique est essentielle pour les cBots, en particulier pour ceux qui doivent être programmés ou activés lors de la survenue d'un événement (par exemple, une annonce publique). La méthode Sleep() dans cTrader permet de suspendre les algorithmes jusqu'à ce que le temps spécifié s'écoule ou approche.
Remarque
La fonctionnalité de veille n'est disponible que pour les cBots et les indicateurs.
Ce guide API vous présentera la méthode Sleep() et comment l'utiliser correctement.
Méthode Sleep() en une minute !
- La méthode
Sleep()permet aux développeurs de suspendre l'exécution d'un algorithme avec des paramètres de temps flexibles établis. - Si vous connaissez la date et l'heure d'un événement spécifique auquel votre cBot doit réagir avec une stratégie personnalisée, utilisez la fonctionnalité de veille pour trader les actualités et réagir aux événements programmés.
- Définissez une période à écouler pour la fonctionnalité de veille, de quelques millisecondes à n'importe quel intervalle de temps.
- La méthode
Sleep()n'est disponible que pour les algorithmes .NET 6 et fonctionne comme prévu dans le test inversé.
Fonctionnement de la méthode sleep()
La fonctionnalité de mise en veille n'est disponible que pour les algorithmes .NET 6. Lorsqu'un cBot reste en mode veille, tous les autres événements du code seront ignorés.
Exemple
Si l'événement BarOpened s'est produit cinq fois pendant le mode veille, aucun des gestionnaires OnBar() manqués ne sera invoqué après le réveil du cBot. Seuls les nouveaux événements à venir seront déclenchés dans ce cas.
Néanmoins, les cBots traitent tous les messages de données tout en restant en mode veille (par exemple, si RefreshData() est appelé).
Remarque
En spécifiant le temps de veille, vous définissez un intervalle minimum de suspension de l'algorithme. Le temps de veille réel sera toujours égal ou supérieur au temps de suspension demandé.
Pour appliquer la méthode Sleep(), les développeurs d'algorithmes doivent utiliser l'une de ces signatures en fonction de leur objectif.
Pour suspendre l'algorithme jusqu'à l'écoulement de la période spécifiée :
void Sleep(Timespan timespan)
Pour suspendre l'algorithme jusqu'à l'écoulement du nombre de millisecondes spécifié :
void Sleep(int milliseconds)
Pour suspendre l'algorithme jusqu'à l'approche de l'heure et de la date spécifiées :
void Sleep(DateTime dateTime)
Exemple
Nous supposerons que le prochain discours de l'actuel président de la Réserve fédérale Jerome Powell est prévu pour le 11 décembre 2023 à 11h00. Vous attendez des annonces susceptibles d'affecter la tendance EURUSD et avez développé un cBot qui poursuivra une stratégie pertinente dès le début du discours. Dans ce cas, vous pouvez appliquer la méthode Sleep() comme suit.
DateTime doomsday = new DateTime(2023, 12, 11, 11, 0, 0);
Sleep(doomsday)
Avertissement
Si le paramètre DateTime ne provient pas du fuseau horaire de l'algorithme, une ArgumentException sera levée.
La méthode Sleep() fonctionne comme prévu en backtesting. Si vous souhaitez arrêter un cBot en veille depuis l'interface utilisateur, vous n'avez pas besoin d'attendre qu'il se réveille. Cliquez sur le bouton Stop et il cessera de fonctionner sans délai d'attente.
Créer un exemple de cBot
L'exemple de cBot suivant se met en veille pendant 30 secondes après son lancement, avec le message correspondant affiché dans le journal. Ensuite, il place un ordre d'achat au marché pour USDJPY.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |

Résumé
La fonctionnalité de mise en veille permet aux développeurs d'algorithmes de suspendre l'exécution d'autres méthodes même si le cBot a été lancé. En appliquant la méthode Sleep() avec ses paramètres de temps flexibles, vous réagirez toujours aux événements programmés avec votre stratégie personnalisée en temps voulu.