Les opérateurs (2.4) ne suffisent pas à exprimer les calculs nécessaires à tous les indicateurs. On utilisera alors les fonctions numériques, qui permettent d’obtenir des résultats tels que la valeur absolue, la racine-carré ou encore le cosinus d’une valeur numérique.
Pour appliquer une fonction à une valeur numérique, on écrira le nom de la fonction suivi, entre parenthèses, de la valeur que l’on souhaite lui passer, c’est à dire :
… où FONCTION est le nom de la fonction, et VALEUR la valeur que l’on souhaite lui passer. La fonction ne modifie pas la valeur, mais retourne un résultat : l’expression FONCTION(VALEUR) pourra être utilisée comme une nouvelle valeur.
Un exemple d’utilisation de fonction est l’indicateur « OBV » (On Balance Volume), dans lequel la fonction abs permet de calculer la valeur absolue d’une valeur numérique :
1
|
return Volume[0] * ((Close[0]-Close[1]) / abs(Close[0]-Close[1]))
|
L’indicateur ci-dessus retourne simplement le volume de la barre en cours, multiplié par –1 si Close[0]-Close[1] est négatif (inchangé sinon).
Ci-dessous les fonctions numériques directement utilisables dans TSL.
Opérations diverses :
| ▪ | abs(x) : Valeur absolue de x. |
| ▪ | sqrt(x) : Racine-carré de x. |
| ▪ | ceil(x) : Plus petit entier supérieur ou égal à x. |
| ▪ | floor(x) : Plus grand entier inférieur ou égal à x . |
| ▪ | round(x, n) : x arrondi à n décimales après la virgule. |
| ▪ | divmod(x, y) : Quotient et reste de la division de x par y. |
| ▪ | fmod(x, y) : x modulo y. |
Fonctions exponentielles et logarithmiques :
| ▪ | pow(x, y) : x puissance y. |
| ▪ | log(x) : Logarithme de x en base e. |
| ▪ | log10(x) : Logarithme de x en base 10. |
Trigonométrie :
| ▪ | cos(x) / sin(x) / tan(x) : Cosinus / sinus / tangente de x, en radians. |
| ▪ | acos(x) / asin(x) / atan(x) : Arc cosinus / sinus / tangente de x. |
| ▪ | cosh(x) / sinh(x) / tanh(x) : Cosinus / sinus / tangente hyperbolique de x. |