Rejoignez notre page de fans
- Vues:
- 62
- Note:
- Publié:
- Mise à jour:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Bibliothèque pour le contrôle des sessions de trading. Au démarrage, elle compte les heures des sessions de négociation pour les 7 jours de la semaine (il peut y avoir des échanges de crypto-monnaies le samedi et le dimanche), jusqu'à 10 sessions par jour. Ensuite, dans OnTick(), vous pouvez effectuer des vérifications, et si un tick est arrivé en dehors de la session de trading, vous pouvez quitter le traitement ultérieur de celui-ci.
Exemple d'utilisation :
//+------------------------------------------------------------------+ //|testControl_Trade_Sessions.mq5 | //+------------------------------------------------------------------+ // #define LoadSessionFromInputs // Lire les sessions à partir des entrées #include <Forester\Control_Trade_Sessions.mqh> // connexion du code pour le contrôle de la session de négociation int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { static TRADE_SESSIONS TradeSession(_Symbol);// récupère les heures d'ouverture et de fermeture du marché et les enregistre dans des tableaux par jour de la semaine. Appelé une fois lors du lancement du Conseiller Expert (voir statique). if(!TradeSession.isSessionTrade(TimeCurrent())){Print("Market closed. OnTick return"); return;} // vos actions }
Le résultat est une impression comme celle-ci :
2022.01.10 00:05:00 Day: 0 Trade sessions: 1: 00:00-00:00 - это воскресенье
2022.01.10 00:05:00 Day: 1 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 2 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 3 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 4 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 5 Trade sessions: 1: 00:15-23:55
2022.01.10 00:05:00 Day: 6 Trade sessions: 1: 00:00-00:00
2022.05.30 00:05:00 Market closed. OnTick return
2022.05.30 00:05:01 Market closed. OnTick return
...
2022.05.30 00:14:36 Market closed. OnTick return
2022.05.30 00:14:40 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
2022.05.30 23:55:00 Market closed. OnTick return
...
2022.05.30 23:59:30 Market closed. OnTick return
2022.05.31 00:00:01 Market closed. OnTick return
...
De nouvelles fonctions MQL5 sont utilisées pour lire la session de négociation pour n'importe quel jour, y compris les week-ends.
Travaille aussi vite que possible, seulement 1 vérification est faite sur chaque tick à l'intérieur de la session de négociation :
.
if(time < this.NextTradeStop ) { return true; }Où NextTradeStop est l'heure de fin de la séance boursière actuelle.
Une vérification est également effectuée pour chaque tick en dehors de la séance boursière :
if(time < this.NextTradeStart ) { return false; }Ce n'est qu'au moment de la transition entre les sessions que l'on accède aux tableaux pour obtenir l'heure de la prochaine session.
Par exemple, sur mon DC, la session de négociation s'étend de 00:15 à 23:55. Avec le premier tick après 00:15 NextTradeStop sera fixé à 23:55 et ensuite seulement cette condition sera vérifiée toute la journée.
Vos sessions detrading
Vous pouvez aussi spécifier l'heure des sessions de trading manuellement. Pour activer cette option, ajoutez la ligne
.
#define LoadSessionFromInputs // Lire les sessions à partir des entrées
Elle créera 7 sinputs pour entrer les sessions de trading par jour de la semaine.
Saisissez les heures des séances sans espace, strictement avec : - et ,
Voici à quoi cela ressemble dans l'onglet des paramètres :

Et voici comment cela sera affiché dans le journal :
TradeSessionsTuesday=00:15-23:55
TradeSessionsWednesday=00:10-17:45,17:55-23:00,23:05-23:55
TradeSessionsThursday=00:15-17:45,17:55-23:55
TradeSessionsFriday=00:15-23:55
TradeSessionsSaturday=00:15-23:55
TradeSessionsSunday=
EURUSD : les ticks réels commencent à partir de 2022.05.10 00:00:00, chaque génération de tick utilisée
2022.01.10 00:05:00 Day : 1 Trade sessions : 1 : 00:15-17:45, 2 : 17:55-23:55
2022.01.10 00:05:00 Day : 2 Trade sessions : 1 : 00:15-23:55
2022.01.10 00:05:00 Day : 3 Trade sessions : 1 : 00:10-17:45, 2 : 17:55-23:00, 3 : 23:05-23:55
2022.01.10 00:05:00 Jour : 4 séances de travail : 1 : 00:15-17:45, 2 : 17:55-23:55
2022.01.10 00:05:00 Jour : 5 séances de négociation : 1 : 00:15-23:55
2022.01.10 00:05:00 Jour : 6 séances de négociation : 1 : 00:15-23:55
2022.01.10 00:05:00 Marché fermé. OnTick return
...
Si l'heure de fin de la session est inférieure à l'heure de début, par exemple 20:00-8:00, la session se poursuivra jusqu'à 8:00 le jour suivant. Cela peut s'avérer utile lorsque la session de négociation se déroule dans un fuseau horaire différent de celui du serveur.
L'heure des sessions de négociation peut également être spécifiée dans le code sans entrées. La fonction LoadFromInputs() est créée à cet effet. Elle peut être appelée sans entrées, mais directement à partir du code avec un tableau de chaînes, comme dans l'exemple.
string s=["00:15-17:45,17:55-23:55","00:00-24:00",....] void LoadFromInputs(string &s[]){...}
Si le Conseiller Expert est multidevise et que les différents instruments ont des sessions de trading différentes, vous pouvez créer une instance séparée de TRADE_SESSIONS pour chaque instrument et appeler LoadFromInputs() avec les données de session et vérifier isSessionTrade(). Pour ce faire, vous devrez modifier le code comme dans cet exemple.
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/48059
Tandem
Opérations par paire. Couverture. Stratégies neutres par rapport au marché
SetSellStopLimitOrder
Ce script est conçu pour définir l'ordre SellStopLimit avec des valeurs fixes de niveaux de déclenchement, de niveau de stop loss et de niveau de take profit en pips à partir du prix actuel et des prix de déclenchement de l'ordre.
Moving Averages-14 different types
Il s'agit d'un indicateur permettant de calculer 14 types de moyennes mobiles sur la base du cours de clôture.
EMDcotir (Décomposition en mode empirique)
Décomposition en mode empirique de l'instrument actuel.