- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnCalculate
La fonction est appelée dans les indicateurs lorsque l'évènement Calculate se produit pour gérer les changements de prix. Il y a 2 types de fonctions. Un seul peut être utilisé dans un indicateur simple.
Calculs basés sur un tableau de données
int OnCalculate(
|
Calculs basés sur les séries de la période courante
int OnCalculate(
|
Parameters
rates_total
[in] Taille du tableau price[] ou des séries d'entrée disponibles pour l'indicateur pour le calcul. Dans le 2ème type de fonction, la valeur du paramètre correspond au nombre de barres du graphique sur lequel il est lancé.
prev_calculated
[in] Contient la valeur retournée par la fonction OnCalculate() pendant l'appel précédent. Il est conçu pour ignorer les barres qui n'ont pas changé depuis le lancement précédent de cette fonction.
begin
[in] Indice des données du tableau price[] à partir duquel les données utiles commencent. Il vous permet d'ignorer les données initiales ou les données manquantes, pour lesquelles il n'y a pas de valeurs correctes.
price[]
[in] Tableau de valeurs pour les calculs. L'une des timeseries des prix ou le buffer d'un indicateur calculé peuvent être passés comme tableau price[]. Le type des données passées pour le calcul peut être défini avec la variable prédéfinie _AppliedTo.
time{}
[in] Tableau contenant les heures d'ouverture des barres.
open[]
[in] Tableau contenant les prix Open des barres.
high[]
[in] Tableau contenant les prix High des barres.
low[]
[in] Tableau contenant les prix Low des barres.
close[]
[in] Tableau contenant les prix Close des barres.
tick_volume[]
[in] Tableau contenant les volumes des ticks.
volume[]
[in] Tableau contenant les volumes réels.
spread[]
[in] Tableau contenant les spreads des barres.
Valeur de Retour
Valeur de type int à passer dans le paramètre prev_calculated au prochain appel de la fonction.
Note
Si la fonction OnCalculate() est égale à zéro, aucune valeur pour l'indicateur n'est affichée dans la fenêtre des Données du terminal client.
Si le prix a changé depuis le dernier appel à la fonction OnCalculate() (un historique plus profond a été chargé ou des sauts dans l'hisrtorique ont été remplis), la valeur du paramètre d'entrée prev_calculated est mise à zéro par le terminal lui-même.
Pour définir la direction d'indexation dans les tableaux time[], open[], high[], low[], close[], tick_volume[], volume[] et spread[], appelez la fonction ArrayGetAsSeries(). Pour ne pas dépendre des valeurs par défaut, appelez la fonction ArraySetAsSeries() pour les travaux sur lesquels vous souhaitez travailler.
Lors de l'utilisation du premier type de la fonction, une timeserie ou un indicateur est sélectionné par l'utilisateur comme tableau price[] dans l'onglet Paramètres lors du lancement de l'indicateur. Pour cela, spécifiez l'élément nécessaire dans la liste déroulante dans le champ "Appliquer à".
Pour obtenir les valeurs d'un indicateur personnalisé depuis d'autres programmes mql5, la fonction iCustom() est utilisée. Elle retourne un handle sur l'indicateur pour être utilisé par la suite. Il est également possible de spécifier le tableau price [] ou le handle d'un autre indicateur. Ce paramètre doit être passé en dernier dans la liste des variables d'entrée d'un indicateur personnalisé.
Il est nécessaire d'utiliser le lien entre la valeur retournée par la fonction OnCalculate() et le deuxième paramètre d'entrée prev_calculated. Lors de l'appel à la fonction, le paramètre prev_calculated contient la valeur retournée par la fonction OnCalculate() pendant l'appel précédent. Ceci permet d'implémenter des algorithmes permettant d'économiser les ressources pour calculer un indicateur personnalisé afin d'éviter les calculs répétitifs pour les barres qui n'ont pas changé depuis l'appel précédent à cette fonction.
Indicateur exemple
//+------------------------------------------------------------------+
|
Voir également
ArrayGetAsSeries, ArraySetAsSeries, iCustom, Fonctions de gestion des évènements, Exécution du programme, Evènements du terminal client, Accès aux timeseries et aux indicateurs