|
La fonction if() (" si() ") est utilisée pour créer une expression conditionnelle du type "if-then-else" ("si-alors-sinon"). C’est peut-être la fonction la plus utilisée du langage de formule de MetaStock. Elle contient trois paramètres comme nous le voyons dans l'exemple suivant.
if( close > mov(c,10,s), rsi(9), rsi(14) )
La formulation conditionnelle if (" si ") apparaissant ci-dessus se traduit de la sorte en anglais courant : si le cours de clôture du jour est supérieur à la moyenne mobile à 10 jours des cours de clôture, tracez un RSI à 9 jours, autrement, pointez un RSI à 14 jours.
La formule suivante permet de pointer des " positive volume/volumes positifs " si la clôture est supérieure au prix médian, sinon ce sont les " negative volume/volumes négatifs " qui seront tracés.
if( CLOSE > (HIGH+LOW)/2, +V, -V )
Un bon exemple d'une fonction if() peut être vu dans la fonction de l'On Balance Volume
.Si vous voulez tout simplement qu’une expression soit évaluée suivant le critère true or false (" vrai ou faux "), vous pouvez le faire sans faire appel à la fonction if(). La formule suivante aboutira soit à une valeur de 1 (true/vrai) soit à 0 (false/faux).
rsi(14) > 70
Si le RSI à 14 unités de temps est supérieur à 70, la formule sera assimilée à vraie et prendra une valeur de 1. S’il est inférieur à 70, la formule sera assimilée à fausse et prendra la valeur 0. Cela est fait sans faire usage de la fonction if(). La formule suivante utilise la fonction if() et aboutira aux mêmes résultats, elle est seulement plus longue.
if(rsi(14) > 70, 1, 0 )