100% ont trouvé ce document utile (2 votes)
629 vues60 pages

Pro Builder

Ce document présente le langage de programmation ProBuilder utilisé pour créer des indicateurs techniques personnalisés. ProBuilder est de type BASIC et permet de construire des programmes à partir de données de prix telles que l'ouverture, la clôture, le plus haut, le plus bas et le volume. Le document décrit comment accéder à l'environnement de programmation ProBuilder et introduit certaines notions fondamentales comme les constantes et fonctions disponibles.

Transféré par

olga
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (2 votes)
629 vues60 pages

Pro Builder

Ce document présente le langage de programmation ProBuilder utilisé pour créer des indicateurs techniques personnalisés. ProBuilder est de type BASIC et permet de construire des programmes à partir de données de prix telles que l'ouverture, la clôture, le plus haut, le plus bas et le volume. Le document décrit comment accéder à l'environnement de programmation ProBuilder et introduit certaines notions fondamentales comme les constantes et fonctions disponibles.

Transféré par

olga
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SOMMAIRE

Prsentation de ProBuilder_______________________________________
Chapitre I: Les notions fondamentales______________________________
Accder ProBuilder.....................................................................................................2
Spcificits de programmation du langage ProBuilder.................................................6
Les constantes financires ProBuilder..........................................................................7
1) Les constantes de prix et de volume adaptes lunit de temps du graphique........8
2) Les constantes journalires de prix............................................................................9
3) Les constantes temporelles.......................................................................................9
4) Les constantes drives des prix.............................................................................14
5) La constante indfinie..............................................................................................14

Utilisation des indicateurs prexistants.......................................................................14


Optimisation des variables..........................................................................................15

Chapitre II : Fonctions et instructions ProBuilder_____________________


Structures de contrle.................................................................................................18
1) Instruction conditionnelle IF.....................................................................................18
a. Une condition, un rsultat (IF THEN ENDIF)................................................................18
b. Une condition, deux rsultats (IF THEN ELSE ENDIF)................................................18
c. Conditions imbriques..................................................................................................19
d. Conditions Multiples (IF THEN ELSIF ELSE ENDIF)...................................................19

2) Boucle itrative FOR................................................................................................21


a. Avancement croissant (FOR, TO, DO, NEXT)..............................................................21
b. Avancement dcroissant (FOR, DOWNTO, DO, NEXT)...............................................23

3) Boucle conditionnelle WHILE...................................................................................24


4) BREAK.....................................................................................................................25
a. Avec WHILE.................................................................................................................25
b. Avec FOR.....................................................................................................................26

5) CONTINUE..............................................................................................................27
a. Avec WHILE.................................................................................................................27
b. Avec FOR.....................................................................................................................27

6) ONCE......................................................................................................................28

Fonctions Mathmatiques...........................................................................................29
1) Fonctions usuelles unaires et binaires.....................................................................29
2) Oprateurs mathmatiques usuels..........................................................................29
3) Fonctions de comparaisons graphiques...................................................................30
4) Fonctions de sommation..........................................................................................30
5) Fonctions Statistiques..............................................................................................30

Oprateurs logiques....................................................................................................31
Instructions ProBuilder................................................................................................31
1) RETURN..................................................................................................................31
2) REM ou //.................................................................................................................32
3) CustomClose...........................................................................................................32
4) CALL........................................................................................................................33
5) AS............................................................................................................................33
6) COLOURED............................................................................................................34

Chapitre III : Applications pratiques________________________________


Crer un indicateur binaire ou ternaire : pourquoi et comment ?...............................36
Crer des indicateurs STOP : suivez vos positions en temps rel.............................37
1) STOP prise de bnfices statique............................................................................38
2) STOP loss statique..................................................................................................39
3) STOP dinactivit.....................................................................................................39
4) STOP suiveur ou trailing stop...................................................................................41

Chapitre IV : exercices___________________________________________
Figures de chandeliers................................................................................................42
Indicateurs...................................................................................................................45

Glossaire______________________________________________________

Prsentation de ProBuilder

Prsentation de ProBuilder
ProBuilder est le langage de programmation de ProRealTime. Ce dernier sert concevoir des indicateurs
techniques personnaliss, des stratgies de trading (ProBackTest) ou des scans personnalises
(ProScreener). ProBackTest et ProScreener font lobjet de manuels individuels cause de certaines
spcificits de programmation.
Ce langage est de type BASIC, trs simple dutilisation et exhaustif dans les possibilits offertes.
Vous allez pouvoir construire vos propres programmes qui utilisent les cotations de nimporte quel instrument
inclus dans loffre ProRealTime, partir des lments de base :
le cours douverture de chaque barre : Open
le cours de clture, de chaque barre : Close
le plus haut de chaque barre : High
le plus bas de chaque barre : Low
le nombre de titres changs : Volume.
Les barres, ou chandeliers, sont les reprsentations graphiques standards des cotations reues en temps
rel. ProRealTime vous offre bien entendu la possibilit de personnaliser le type de style graphique, vous
proposant, parmi dautres, vues telles que Renko, Kagi, Heikin-Ashi.
ProBuilder value les donnes de chaque barre de prix depuis la plus ancienne jusqu la plus rcente, et
excute la formule dveloppe dans le langage afin de dterminer la valeur des indicateurs sur la barre en
question.
Les indicateurs dvelopps sous ProBuilder peuvent tre affichs sur le graphique du prix ou bien dans un
graphique individuel, selon le type dchelle utilise.
Dans ce document, vous assimilerez au fur et mesure les commandes permettant de programmer dans ce
langage grce une vision thorique claire et des exemples concrets les illustrant.
A la fin de ce manuel, vous y trouverez un Index qui vous donnera une vue de l'ensemble des commandes
de ProBuilder, des indicateurs dj cods et d'autres fonctions compltant ce que vous aurez appris durant
votre lecture.
Les utilisateurs plus habitus la programmation, pourront passer directement la lecture du chapitre II ou
bien consulter lindex afin de retrouver rapidement lexplication relative la fonction recherche.
Pour ceux moins habitus programmer, nous conseillons le visionnage de la vido intitule " Crer un
indicateur dans ProBuilder" et de lire l'intgralit du manuel. Trs directif et fortement orient vers la pratique,
nous ne doutons pas que vous serez en mesure de matriser ce langage en peu de temps.

En vous souhaitant nos meilleurs voeux de russite, Bonne lecture !

1 / 55

Chapitre I: Les notions fondamentales

Chapitre I: Les notions fondamentales


Accder ProBuilder
La zone de programmation dun indicateur est disponible partir du bouton "Indicateur/Backtest qui se
trouve en haut droite dans chaque graphique de votre plateforme ProRealTime.

Vous accderez ensuite la fentre de gestion des indicateurs. Vous pourrez :


Afficher un indicateur prdfini.
Crer un indicateur personnalis, qui pourra ensuite tre appliqu nimporte quelle valeur.

2 / 55

Chapitre I: Les notions fondamentales

Dans le second cas cliquez sur "Crer indicateur", pour accder la fentre de programmation. Vous avez
alors la possibilit :
de programmer directement un indicateur dans la zone de texte rserve au code.
d'utiliser la fonction daide "Insrer Fonction", qui permet de trouver dans une nouvelle fentre une
bibliothque des fonctions disponibles, spares en sept catgories, afin de vous assister lors de la
programmation.

3 / 55

Chapitre I: Les notions fondamentales

Prenons comme exemple le premier lment caractristique des indicateurs ProBuilder, c'est--dire la
fonction "RETURN", (disponible dans la section "Mots cls" - voir image ci-dessous).

Slectionnez donc le mot "RETURN" et cliquez sur "Insrer Fonction" : la commande sajoutera bien la
zone de programmation.

RETURN vous permet dafficher le rsultat

4 / 55

Chapitre I: Les notions fondamentales

Supposons que l'on veuille crer un indicateur affichant le Volume. Si vous avez dj insr le mot
RETURN, il suffit alors d'aller une nouvelle fois sur "Insrer fonction", de cliquer sur "Constantes" dans la
section "Catgories", puis sur le ct droit, section "Fonctions disponibles", cliquer sur "Volume". Enfin,
cliquez sur "Ajouter".

Avant de cliquer sur le bouton "Valider programme", prcisez en haut de la fentre le nom de votre indicateur :
ici, nous l'avons appel "Volume DAX". Enfin, cliquez sur "Valider programme" et vous verrez s'afficher le
graphique de votre indicateur.

5 / 55

Chapitre I: Les notions fondamentales

Spcificits de programmation du langage ProBuilder


Les spcificits
Le langage ProBuilder vous permet de manipuler de nombreuses commandes classiques ainsi que des
outils plus labors spcifiques l'analyse technique, qui vous donneront la possibilit de programmer des
indicateurs du plus simple au plus sophistiqu.

Les principes cls connaitre sur le langage ProBuilder sont :


Il nest pas ncessaire de dclarer les variables.
Il nest pas ncessaire de typer les variables.
Il ny a pas de diffrence entre majuscule et minuscule (il existe par contre une particularit que
nous allons aborder juste aprs).
On utilise le mme symbole pour laffectation et lgalit mathmatique.

Quest-ce que cela signifie ?


Dclarer une variable X, cest indiquer son existence. Dans ProBuilder, vous pouvez directement
utiliser X sans avoir dfini antrieurement son existence.
Prenons un exemple en crivant :
Avec dclaration : Soit la variable X, On attribue X la valeur 5
Sans dclaration : On attribue X la valeur 5 (donc implicitement, X existe et vaut 5)
En ProBuilder il suffit dcrire : X=5

6 / 55

Chapitre I: Les notions fondamentales

Typer une variable, cest dire dfinir la nature de la variable : est-elle un entier naturel (ex : 3 ; 8 ;
21 ; 643 ; ), un entier relatif (ex : 3 ; 632 ; -37 ; ), un dcimal (ex : 1.76453534535), un boolen
(VRAI, FAUX), ?

Dans ProBuilder, vous pouvez crire vos commandes aussi bien avec des majuscules quavec des
minuscules. Par exemple, lensemble de commandes IF / THEN / ELSE / ENDIF pourra
indiffremment tre crite iF / tHeN / ELse / endIf.
Exception : Quand vous dcidez dutiliser une variable, il faudra que vous respectiez la casse du nom
dfini. Si vous avez crit : "vARiaBLe" et vous souhaitez la rutiliser dans le programme, seul le
respect de la casse permettra de se rfrer la mme variable "vARiaBLe"

Affecter une valeur une variable, cest lui attribuer une valeur. Pour mieux comprendre le principe
daffectation, il faut que vous considriez une variable comme une bote vide qui attend quon lui mette
quelque chose lintrieur. Le schma ci-dessous vous illustre ce principe avec la valeur Volume
affecte la variable X :

Volume

Voyez bien quon lit de droite gauche la phrase : Volume est affect X.
Maintenant, pour lcrire en code ProBuilder, on va simplement remplacer la flche par un signe =

X = Volume
Le mme symbole = est utilis :
pour laffectation dune variable (comme dans lexemple prcdent).
comme oprateur mathmatique binaire (1+ 1= 2 est quivalent 2 = 1 + 1).

Les constantes financires ProBuilder


Avant de commencer coder vos indicateurs personnels, il est ncessaire de passer en revue les lments
partir desquels vous pourrez constituer votre code, tels que les prix d'ouverture et de clture, le volume,
etc...
Ce sont les "fondamentaux" de lanalyse technique, et lessentiel connatre pour coder des indicateurs.

7 / 55

Chapitre I: Les notions fondamentales

Vous pourrez ainsi les combiner afin de faire ressortir certains aspects de linformation fournie par les
marchs financiers. On peut les regrouper en 5 catgories :

1) Les constantes de prix et de volume adaptes lunit de temps du graphique


Ce sont les constantes "classiques" les plus utilises. Elles reportent par dfaut les valeurs de la barre en
cours (quelque soit l'unit de temps du graphique) et se prsentent de la faon suivante :
Open : le cours douverture de la barre courante.
High : le cours le plus haut de la barre courante.
Low : le cours le plus bas de la barre courante.
Close : le cours de clture de la barre courante.
OpenOfNextBar : le cours douverture de la barre suivante.
Volume : le nombre de titres ou de lots changs sur la barre courante.

Exemple : Range de la barre courante


a = High
b = Low
MyRange = a b
RETURN MyRange

Pour faire appel aux valeurs des barres prcdentes, il suffit de rajouter entre crochets le chiffre relatif la
barre considrer (le nombre de barres partir de la barre courante).

Prenons par exemple la constante prix de clture. Lappel du cours se fait de la faon suivante :
Valeur de la fermeture de la barre courante :

Close

Valeur de la fermeture de la barre qui prcde la courante :

Close[1]

Valeur de la fermeture de la n-ime barre qui prcde la courante :

Close [n]

Cette rgle vaut pour nimporte quelle constante. Par exemple, le prix d'ouverture de la 2me barre
prcdent la barre courante, sera appel par : Open[2].
La valeur qui sera reporte dpendra de la priode affiche sur le graphique.

8 / 55

Chapitre I: Les notions fondamentales

FOCUS : OpenOfNextBar
OpenOfNextBar peut tre utilis indiffremment dOpen, suivant la rgle :
OpenOfNextBar[n+1] = Open[n]

avec n>0

En pratique :
OpenOfNextBar[1] = Open
OpenOfNextBar[2] = Open[1]
OpenOfNextBar[3] = Open[2]

2) Les constantes journalires de prix


Contrairement aux constantes adaptes l'unit de temps du graphique, les constantes journalires de prix
se rfrent aux valeurs de la journe, indpendamment de la priode affiche sur le graphique.
Une autre diffrence constater avec les constantes adaptes l'unit de temps, est que les constantes
journalires utilisent des parenthses pour obtenir leurs valeurs sur des barres antrieures.
Dopen(n) : prix d'ouverture de la nime journe antrieure celle de la barre courante.
Dhigh(n) : prix le plus haut de la nime journe antrieure celle de la barre courante.
Dlow(n) : prix le plus bas de la nime journe antrieure celle de la barre courante.
Dclose(n) : prix de clture de la nime journe antrieure celle de la barre courante.

Remarque : si "n" est gal 0, on rcupre alors la valeur du jour comme montre dans lexemple cidessous.

Exemple : Range journalier


a = Dhigh(0)
b = Dlow(0)
MyRange = a - b
RETURN MyRange

Pour les constantes adaptes l'unit de temps on utilise de crochet, pour les constantes
journalires on utilise des parenthses.
Close [3]
Dclose(3)

3) Les constantes temporelles


Le temps est une composante parfois nglige de lanalyse technique. Pourtant les traders connaissent bien
limportance de certains moments de la journe, ou de certaines dates de lanne. Il est donc possible de
limiter lanalyse de son indicateur des moments spcifiques en utilisant les constantes suivantes :
Date : Date code sous la forme YYYYMMJJ indiquant la date de clture de chaque barre.

9 / 55

Chapitre I: Les notions fondamentales

Les constantes temporelles sont considres par ProBuilder comme des entiers. La constante Date, par
exemple, doit tre prsente comme un unique nombre compos de 8 chiffres.
Ecrivons alors le programme :
RETURN Date
Supposons que nous soyons aujourd'hui le 4 juillet 2008. Lindicateur issu du programme ci-dessus va relier
toutes les dates de clture des barres et renvoyer le rsultat 20080704.
Pour lire une date, il suffit donc de lire de la manire suivante :
20080704 = 2008 annes 07 mois et 04 jours.
Attention, dans l'criture d'une date au format YYYYMMJJ, MM ne doit pas dpasser la valeur 12 et JJ ne
doit pas dpasser la valeur 31.
Time : HeureMinuteSeconde code sous la forme HHMMSS indiquant lheure de clture de
chaque barre.
Faisons par exemple :
RETURN Time
On obtient une courbe liant toutes les heures de clture de chaque barre :

Pour lire une heure, il suffit donc de lire de la manire suivante :


160000 = 16 heures 00 minutes et 00 secondes.

10 / 55

Chapitre I: Les notions fondamentales

Attention, dans l'criture d'une heure au format HHMMSS, HH ne doit pas dpasser la valeur 23, MM ne doit
pas dpasser la valeur 59 et SS ne doit pas dpasser la valeur 59.

Il est possible de combiner dans un mme indicateur Time et Date afin de restreindre le rsultat un
moment spcifique. Dans lexemple qui suit, nous voulons limiter notre indicateur au premier octobre 2008
9h00 et 1 sec.
a = (Date = 20081001)
b = (Time = 090001)
RETURN (a AND b)

De la mme faon fonctionnent les constantes suivantes :


Minute : Minute de la clture de chaque barre (entre 0 et 59).
Hour : Heure de la clture de chaque barre (entre 0 et 23).
Day : Jour du mois de la clture de chaque barre (entre 1 et 28 ou 29 ou 30 ou 31).
Month : Mois de la clture de chaque barre (entre 1 et 12).
Year : Anne de la clture de chaque barre.
DayOfWeek : Jour de la semaine la clture de chaque barre (ne traite pas les jours de
Weekend-1=lundi, 2=mardi, 3=mercredi, 4=jeudi, 5=vendredi).

Exemple d'utilisation de ces constantes:


a = (Hour > 170000)
b= (Day=30)
RETURN (a AND b)

CurrentHour :

Heure actuelle (celle du march).

CurrentMinute :

Minute actuelle (celle du march).

CurrentMonth :

Mois actuel (celle du march).

CurrentSecond :

Seconde actuelle (celle du march).

CurrentTime :

HeureMinuteSeconde actuelle (celle du march).

CurrentYear :

Anne actuelle (celle du march).

CurrentDayOfWeek : Jour de la semaine actuelle selon le fuseau horaire du march.

La diffrence entre les constantes Current proposes ci-dessus et celles sans Current vues prcdemment
est justement le ct "Actuel".

11 / 55

Chapitre I: Les notions fondamentales

Limage suivante met en vidence cette diffrence applique aux constantes CurrentTime et Time. Pour
simplifier, les constantes en Current font abstraction de laxe des temps et ne considre que la valeur
affiche dans lencadr blanc.

Time indique lheure de clture de chaque barre


CurrentTime indique lheure du march
Si vous souhaitez rgler vos indicateurs par rapport des compteurs (nombres de jours couls, nombre
des barres etc), les constantes Days, BarIndex et IntradayBarIndex sont votre disposition.
Days : Compteur de jours depuis 1900.

Cette constante est utile lorsquon souhaite connaitre le nombre de jours qui se sont couls,
particulirement lorsquon travaille en vues quantitatives, comme (x)Tick ou (x)Volumes.
Lexemple suivant permettra donc dafficher le passage dune journe lautre de cotations, lorsquon se
trouve dans lune des vues cites.
RETURN Days
(Attention ne pas confondre les deux constantes Day et Days).

12 / 55

Chapitre I: Les notions fondamentales

BarIndex : Compteur de barres depuis le dbut de lhistorique affich.


Le compteur part de la barre la plus gauche de lhistorique charg et compte toutes les barres jusqu celle
la plus droite barre en cours incluse. La premire barre affiche (la plus gauche) est considre
comme la barre 0 (contrairement au fonctionnement des autres constantes). BarIndex sutilise dans la
majorit des cas avec linstruction IF prsente plus loin dans le manuel (voir section "Instruction
conditionnelle IF" pour des exemples dutilisation).

IntradayBarIndex : Compteur de barres intraday.


Le compteur affiche le nombre de barres depuis le dbut de la journe et est rinitialis zro tous les
dbuts de journe. La premire barre du compteur est considre comme la barre 0 (contrairement au
fonctionnement des autres constantes).

Comparons donc les deux constantes en crant deux indicateurs spars :


RETURN BarIndex
et
RETURN IntradayBarIndex

On remarque bien la remise zro du compteur de barres tous les dbuts de journe pour
IntradayBarIndex.

13 / 55

Chapitre I: Les notions fondamentales

4) Les constantes drives des prix


Range : diffrence entre High et Low.
TypicalPrice : moyenne entre High, Low et Close.
WeightedClose : moyenne pondre de High (poids 1) Low (poids 1) et Close (poids 2).
MedianPrice : la moyenne entre High et Low.
TotalPrice : la moyenne entre Open, High, Low et Close.
Le Range reprsente la volatilit de la barre courante.
Le WeightedClose insiste sur limportance du cours de clture.
Les constantes TypicalPrice et TotalPrice refltent mieux la psychologie du march intra-barre courante car
elles prennent en compte trois et quatre niveaux de cours atteints au cours de la journe.
Le MedianPrice reprsente le prix moyen des extrmums.

Range en % :
MyRange = Range
Calcul = (MyRange/MyRange[1]-1)*100
RETURN Calcul

5) La constante indfinie
Undefined permet dindiquer lindicateur de ne pas afficher un rsultat pour certaines variables (par dfaut
toutes les variables non affectes sont zro).
Undefined : donne indfinie (quivalent dune case vide ou de NULL).
Vous pouvez retrouver un exemple dapplication la page 23.

Utilisation des indicateurs prexistants


Nous avons jusqu prsent observ les possibilits offertes par Probuilder en termes de constantes et leur
comportement lors de laccs aux barres du pass. Le mme comportement sapplique au fonctionnement
des indicateurs prexistants (et par la suite nous verrons que ceux que vous programmerez fonctionneront
selon le mme principe).
Les indicateurs ProBuilder se composent de trois lments dont la syntaxe est :
NomDeFonction [calcul sur n barres] (sur tel prix ou tel indicateur)
Lorsque l'on utilise le bouton "Insrer Fonction" pour rechercher une fonction ProBuilder (voir section
"Accder ProBuilder"), des valeurs par dfaut sont places pour la priode et pour l'argument prix ou
indicateur

Average[20](Close)

14 / 55

Chapitre I: Les notions fondamentales

On peut bien sr les modifier selon nos prfrences ; par exemple, on peut remplacer les 20 barres dfinies
par dfaut par 100 barres. De mme, on peut modifier l'argument de prix ou indicateur "Close" par
"Dopen(6)":

Average[20](Dopen(6))
Regardons quelques exemples de comportement dindicateurs prexistants :

Programme calculant la moyenne mobile exponentielle sur 20 bougies applique au prix de clture :
RETURN ExponentialAverage[20](Close)

Calcul dune moyenne mobile pondr sur 20 barres applique au prix typique
mm = WeightedAverage[20](TypicalPrice)
RETURN mm

Calcul dune moyenne mobile lissage de Wilder sur 100 barres applique au Volume
mm = WilderAverage[100](Volume)
RETURN mm

Calcul du MACD (en histogramme) sur le prix de clture. La ligne du MACD se construit comme la diffrence
entre la moyenne mobile exponentielle sur 12 priodes moins celle sur 26 priodes. On effectue ensuite un
lissage avec une moyenne mobile exponentielle 9 priodes, applique la diffrence pour obtenir la ligne
de Signal. Le MACD en histogramme se constitue alors de la diffrence entre la ligne du MACD et la ligne
de Signal.

REM Calcul de la ligne MACD


LigneMACD = ExponentialAverage[12](Close) ExponentialAverage[26](Close)
REM Calcul de la ligne du signal MACD
LigneSignal = ExponentialAverage[9](LigneMACD)
REM Calcul de la diffrence entre la ligne du MACD et son Signal
MACDHistogramme = LigneMACD LigneSignal
RETURN MACDHistogramme

Optimisation des variables


Lorsque lon code un indicateur, on introduit un certain nombre de constantes. Loption doptimisation des
variables en haut droite, vous permet dattribuer une valeur par dfaut une constante indfinie et dagir
ensuite sur la valeur de cette constante partir de linterface des paramtres de lindicateur.
Lavantage rside dans la possibilit de pouvoir modifier les paramtres de lindicateur sans modifier le code.

15 / 55

Chapitre I: Les notions fondamentales

Calculons par exemple une moyenne mobile de priode 20:


RETURN Average[20](Close)

Afin de pouvoir modifier le nombre de priodes de calcul directement partir de linterface, remplacez 20 par
une variable n :
RETURN Average[n](Close)
Cliquez ensuite sur "Ajouter" dans "Optimisation des variables" et vous verrez alors safficher la fentre
"Dfinition de la variable". Remplissez comme suit :

16 / 55

Chapitre I: Les notions fondamentales

Appuyez sur "OK". Dans la fentre de Proprit de lindicateur (dans ce cas "Proprits MyMovingAverage"),
vous obtiendriez donc un nouveau paramtre, qui vous permettra dagir sur les nombres de priodes de la
moyenne mobile :

Bien entendu, il est possible de faire la mme chose avec plusieurs variables vous donnant ainsi la
possibilit de "jouer" sur plusieurs paramtres en mme temps.

17 / 55

Chapitre II : Fonctions et instructions ProBuilder

Chapitre II : Fonctions et instructions ProBuilder


Structures de contrle
1) Instruction conditionnelle IF
L'instruction IF sert faire un choix d'actions conditionnes, c'est--dire subordonner un rsultat la
vrification dune ou plusieurs conditions dfinies.
La structure se compose des lments IF, THEN, ELSE, ELSIF, ENDIF, qui se combinent selon la
complexit des conditions que nous voulons dfinir. Nous allons en passer en revue le mode demploi.
a. Une condition, un rsultat (IF THEN ENDIF)

Nous avons la possibilit de rechercher une condition et de dfinir une action si la condition est vrifie. En
revanche, si la condition nest pas satisfaite, rien ne se passe (retourne par dfaut 0).
Dans lexemple, si le dernier prix est suprieur la MM de priode 20, alors on affiche la valeur 1.

IF Close>Average[20](Close) THEN
Result=1

Si le prix est > la moyenne mobile de 20 priodes


ALORS Result sera gal 1
SINON

ENDIF
RETURN Result

Result sera gal 0 (par dfaut) FIN DE CONDITION

RETURN doit toujours etre suivi de la variable de stockage utilise (dans lexemple, Result) si
on veut afficher le rsultat de la condition

b. Une condition, deux rsultats (IF THEN ELSE ENDIF)

Nous pouvons galement choisir de dfinir un rsultat au cas o la condition nest pas vrifie. Reprenons
lexemple prcdent: si le dernier prix est suprieur la MM de priode 20, on affiche la valeur 1.
Autrement, on affiche -1.

IF Close>Average[20](Close) THEN
Result=1
ELSE
Result=-1
ENDIF
RETURN Result

NB: Nous venons de crer un indicateur binaire. Pour en savoir plus, voir section "Crer un indicateur binaire
ou ternaire : pourquoi et comment ?"

18 / 55

Chapitre II : Fonctions et instructions ProBuilder

c. Conditions imbriques

Il est possible de crer des sous-conditions la suite de la validation dune condition principale, c'est--dire
des conditions qui doivent se vrifier lune aprs lautre (dans lordre de parution). Pour ce faire, il suffit
dimbriquer les IF, mais en faisant attention insrer autant de ENDIF que de IF. Regardons lexemple :
Double conditions sur moyennes mobiles :
IF (Average[12](Close) - Average[20](Close) > 0) THEN
IF ExponentialAverage[12](Close) - ExponentialAverage[20](Close) > 0 THEN
Result = 1
ELSE
Result = -1
ENDIF
ENDIF
RETURN Result

d. Conditions Multiples (IF THEN ELSIF ELSE ENDIF)

Il est possible de dfinir plusieurs rsultats associs chacun une condition spcifique. Lindicateur reporte
donc plusieurs tats: si la Condition1 est vrifie alors on active lAction 1 ; autrement, si la Condition 2 est
vrifie, on active l'Action 2 si aucune condition nest vrifie, on active lAction n.
Syntaxiquement, cette structure utilise les instructions : IF, THEN, ELSIF, THEN .... ELSE, ENDIF.
Elle s'crit de la manire suivante :
IF (Condition1) THEN
(Action1)
ELSIF (Condition2) THEN
(Action2)
ELSIF (Condition3) THEN
(Action3)
...
...
...
ELSE
(Action n)
ENDIF

Il est possible, mais l'criture est plus lourde, de remplacer les ELSIF par des ELSE IF. Il faudra alors
terminer la boucle par autant dENDIF que dIF crits. Il vous est donc conseill, si vous souhaitez imbriquer
de multiples conditions dans votre programme, d'utiliser ELSIF plutt que ELSE IF.

19 / 55

Chapitre II : Fonctions et instructions ProBuilder

Exemple : dtection des avalements haussiers et baissiers


Cette indicateur va retourner 1 si un avalement haussier est dtect, -1 si un avalement baissier est dtect
et 0 le reste du temps.
//Description dun avalement haussier
Condition1 = Close[1] <Open[1]
Condition2 = Open<Close[1]
Condition3 = Close>Open[1]
Condition4 = Open< Close

//Description dun avalement baissier


Condition5 = Close[1]>Open[1]
Condition6 = Close< Open
Condition7 = Open>Close[1]
Condition8 = Close<Open[1]

IF Condition1 AND Condition2 AND Condition3 AND Condition4 THEN


a=1
ELSIF Condition5 AND Condition6 AND Condition7 AND Condition8 THEN
a=-1
ELSE
a=0
ENDIF
RETURN a
Exemple : pivot Demarks Rsistance
IF Dclose(1) > Dopen(1) THEN
Phigh = Dhigh(1) + (Dclose(1) - Dlow(1)) / 2
Plow = (Dclose(1) + Dlow(1))/2
ELSIF Dclose(1) < Dopen(1) THEN
Phigh = (Dhigh(1) + Dclose(1)) / 2
Plow = Dlow(1) - (Dhigh(1) - Dclose(1))/2
ELSE
Phigh = Dclose(1) + (Dhigh(1) - Dlow(1)) / 2
Plow = Dclose(1) - (Dhigh(1) - Dlow(1)) / 2
ENDIF
RETURN Phigh , Plow

20 / 55

Chapitre II : Fonctions et instructions ProBuilder

Exemple : BarIndex
Dans le chapitre I de ce manuel, BarIndex vous a t prsent comme compteur du nombre des barres
depuis le dbut de lhistorique affich. BarIndex est souvent utilis en association avec IF. Per exemple, si
on cherche savoir si notre graphique contient moins ou plus de 23 barres, on crira:
IF BarIndex <= 23 THEN
a= 0
ELSIF BarIndex > 23 THEN
a=1
ENDIF
RETURN a

2) Boucle itrative FOR


La boucle FOR est utilise lorsqu'on souhaite appeler un par un, une srie finie dlments. Ces lments
pourront tre de toute sorte du moment que la srie soit ordonne.
La structure se compose des FOR, TO, DOWNTO, DO, NEXT. Lutilisation de TO ou DOWNTO varie en
fonction de lappel en ordre croissant ou dcroissant des lments. Il est important de souligner que ce qui
se trouve entre le FOR et le DO sont les bornes de l'intervalle balayer.
a. Avancement croissant (FOR, TO, DO, NEXT)

FOR (Variable = ValeurDeDebutDeSerie) TO ValeurDeFinDeSerie DO


(Action)
NEXT

21 / 55

Chapitre II : Fonctions et instructions ProBuilder

Exemple : lissage de Moyenne Mobile de priode 12 (MM12)


Nous allons crer une variable de stockage (Result) qui va sommer une par une chaque moyenne mobile,
de priode 11, 12 et 13.
Result=0
FOR Variable = 11 TO 13 DO
Result= Average[Variable](Close) + Result
NEXT
REM Faisons la moyenne des moyennes mobiles en divisant Result par 3 et en stockant le rsultat
dans AverageResult.
AverageResult = Result/3
RETURN AverageResult

Visualisons ce qui se passe tape par tape :


Mathmatiquement, on veut faire la moyenne des moyennes mobiles arithmtiques de priode 11, 12 et 13.
Variable va donc prendre successivement les valeurs 11, 12 puis 13
Result = 0
Variable = 11
Result reoit la valeur du prcdent Result + MM11 = (0) + MM11 = (0 + MM11)
On passe la valeur suivante du compteur
Variable = 12
Result reoit la valeur du prcdent Result + MM12 = (0 + M11) + MM12 = (0 + MM11 + MM12)
On passe la valeur suivante du compteur
Variable = 13
Result reoit la valeur du prcdent Result + MM13 = (0 + M11 + M12) + M13 = (0 + M11 + M12 + M13)
La valeur 13 est la dernire valeur du compteur.
On ferme la boucle FOR avec l'instruction NEXT.
On affiche Result

Ce code signifie tout simplement que variable va dans un premier temps prendre la valeur de dbut de srie,
puis variable prendra la valeur suivante (la prcdente + 1) et ainsi de suite jusqu' ce que variable prenne
la valeur de fin de la srie. Alors, la boucle se ferme.

22 / 55

Chapitre II : Fonctions et instructions ProBuilder

Exemple : Moyenne sur les 20 dernires barres des plus hauts


IF BarIndex < 20 THEN
MMhigh = Undefined
ELSE

Sil ny a pas plus de 20 priodes sur lhistorique


Alors on attribue MMhigh la valeur par dfaut "rien"
Sinon

FOR i = 0 TO 20 DO
SUMhigh = High[i]+SUMhigh

Pour les valeurs entre 1 et 20


On somme les 20 dernires valeurs des plus hauts

NEXT
ENDIF
MMhigh = SUMhigh/20

On moyenne cette somme par 20 et on laffecte MMhigh

RETURN MMhigh

On affiche MMhigh

b. Avancement dcroissant (FOR, DOWNTO, DO, NEXT)

Lavancement dcroissant utilise en revanche les instructions : FOR, DOWNTO, DO, NEXT.
Elle s'crit de la manire suivante :
FOR (Variable = ValeurDeFinDeSrie) DOWNTO ValeurDeDbutDeSrie DO
(Action)
NEXT

Reprenons l'exemple de la moyenne mobile sur les 20 dernires barres des prix les plus hauts :
On remarquera que lon a juste invers les bornes de lintervalle balay.
IF BarIndex = 0 THEN
MMhigh = Undefined
ELSE
FOR i = 20 DOWNTO 1 DO
SUMhigh = High[i]+SUMhigh
NEXT
ENDIF
MMhigh = SUMhigh/20
RETURN MMhigh

23 / 55

Chapitre II : Fonctions et instructions ProBuilder

3) Boucle conditionnelle WHILE


La boucle WHILE sert appliquer une action tant quune condition reste valide. Vous verrez que cette
boucle a de grandes similitudes avec l'instruction conditionnelle simple IF/THEN/ENDIF.
Syntaxiquement, cette structure utilise les instructions : WHILE,(DO facultatif), WEND
La structure s'crit de la manire suivante :
WHILE (Condition) DO
(Action 1)

(Action n)
WEND

Voici ci-aprs un exemple intuitif :


Result=0
WHILE Close> Average[20](Close) DO
Result=1
WEND
RETURN Result

Exemple : indicateur calculant le nombre de priodes de hausse conscutives


Increase = (Close > Close[1])
Count = 0
WHILE Increase[Count] DO
Count = Count + 1
WEND
RETURN Count

Remarque gnrale pour linstruction conditionnelle WHILE:


De la mme faon que pour IF, le programme ne traitera pas la boucle conditionnelle crite lorsque la
condition de validation est inconnue.
Prenons un exemple:
Count = 0
WHILE i <> 11 DO
i=i+1
Count = Count + 1
WEND
RETURN Count

24 / 55

Chapitre II : Fonctions et instructions ProBuilder

Linstruction WHILE ne connat pas la valeur dorigine de i donc ne peut pas tester si i est bien gal 10.
La boucle va utiliser ses ressources pour dfinir la variable i et lui donner la valeur 0 par dfaut. Count ne
sera plus trait do la valeur de retour 0.
Le code correct serait :
i=0
Count = 0
WHILE i <> 11 DO
i=i+1
Count = Count + 1
WEND
RETURN Count

Dans ce code, i est bien initialis. La boucle va donc fonctionner correctement car la condition est
maintenant valide.

4) BREAK
Linstruction BREAK permet de faire une sortie force dune boucle WHILE ou dune boucle FOR. Des
combinaisons avec la commande IF sont possibles, que ce soit dans une boucle WHILE ou dans une boucle
FOR.

a. Avec WHILE

Lorsquon cherche sortir dune boucle conditionnelle WHILE, savoir que lon nattend pas de trouver une
situation ne satisfaisant pas la condition de bouclage, on utilise BREAK suivant la structure suivante :
WHILE (Condition) DO
(Action)
BREAK
WEND

25 / 55

Chapitre II : Fonctions et instructions ProBuilder

Prenons pour exemple un indicateur qui cumule le nombre de priodes de hausse et de baisse conscutifs:
REM Indicateur de tendance : cumule le nombre de hausses et de baisses
REM On augmente de 1 un compteur initialis zro en cas de hausse (ou -1 pour une baisse)
Increase = (Close Close[1])>0
Indicator = 0
i=0
WHILE Increase[i] DO
Indicator = Indicator + 1
i=i+1
BREAK
WEND
RETURN Indicator
Dans ce code, si on navait pas utilis BREAK, la boucle aurait continu et le rsultat serait un autre
indicateur de tendance cumulant le nombre de hausses conscutives.

b. Avec FOR

Lorsquon cherche sortir dune boucle itrative FOR, sans arriver la dernire (ou premire) valeur de la
srie, on utilise BREAK suivant la structure suivante :
FOR (Variable = ValeurDeFinDeSerie) TO ValeurDeDebutDeSerie DO
(Action)
BREAK
NEXT
Prenons pour exemple un indicateur cumulant le nombre de hausses conscutives du volume dans les 19
dernires barres. Cet indicateur rendra zro si le volume est baissier.
Indicator = 0
FOR i = 0 TO 19 DO
IF (Volume[i]>Volume[i+1]) THEN
Indicator = Indicator + 1
ELSE
BREAK
ENDIF
NEXT
RETURN Indicator
Dans ce code, si on navait pas utilis BREAK, la boucle aurait continu jusqu 19 (dernier lment de la
srie) mme si la condition de volume nest pas valide.
Avec BREAK, en revanche, ds que la condition nest plus valide, il retourne le rsultat et revient 0.

26 / 55

Chapitre II : Fonctions et instructions ProBuilder

5) CONTINUE
Linstruction CONTINUE permet de replacer la lecture du programme la ligne de dbut dune boucle
WHILE ou FOR. Il est souvent utilis en association avec BREAK, pour donner lordre soit de sortir de la
boucle (BREAK) soit dy rester (CONTINUE).

a. Avec WHILE

Crons un programme cumulant le nombre de chandeliers ayant une clture suprieure et une ouverture
infrieure celles de la veille. Si la condition nest pas vrifie, le compteur reviendra zro.
Increase = Close > Close[1]
Count=0
WHILE Open<Open[1] DO
IF Increase[Count] THEN
Count = Count + 1
CONTINUE
ENDIF
BREAK
WEND
RETURN Count
Grce CONTINUE, lorsque la condition du IF est vrifie, on ne sort pas de la boucle WHILE, ce qui
permet de cumuler le nombre de figures vrifiant cette condition. Sans linstruction CONTINUE, le
programme sortirait de la boucle, que la condition du IF soit vrifie ou non. On ne pourrait donc pas
cumuler les apparitions de figures et le rsultat serait binaire (1,0).

b. Avec FOR

Crons un programme cumulant le nombre de chandeliers ayant une clture suprieure la veille. Si la
condition nest pas vrifie, le compteur reviendra zro.
Increase = Close > Close[1]
Count=0
FOR i = 1 TO BarIndex DO
IF Increase[Count] THEN
Count = Count + 1
CONTINUE
ENDIF
BREAK
NEXT
RETURN Count

27 / 55

Chapitre II : Fonctions et instructions ProBuilder

FOR permet de tester la condition sur tout lhistorique disponible. Grce CONTINUE, lorsque la condition
du IF est vrifie, on ne sort pas de la boucle FOR et on continue avec la valeur du i suivant. Ceci permet de
cumuler le nombre de figures vrifiant cette condition.
Sans linstruction CONTINUE, le programme sortirait de la boucle, que la condition du IF soit vrifie ou non.
On ne pourrait donc pas cumuler les apparitions de figures et le rsultat serait binaire (1,0).

6) ONCE
Linstruction ONCE sert ne dclarer "quune seule fois" une variable.
Sachant que pour tout programme, le langage va lire autant de fois le code quil y a de barres sur le
graphique avant de retourner un rsultat, il faudra donc retenir que ONCE :
Nest trait par le programme quune seule et unique fois, relecture incluse.
Lors de la relecture du code par le langage, celle-ci va conserver les valeurs calcules lissue de
la lecture prcdente.

Pour bien comprendre comment fonctionne cette commande, il faut percevoir la manire dont le
langage lit le code; do lutilit de lexemple suivant.

Voici deux programmes qui retournent respectivement 0 et 15 et dont la seule diffrence est lajout de la
commande ONCE:
Programme 1

Programme 2

L1 Count = 0

L1 ONCE Count = 0

L2 i=0

L2 ONCE i=0

L3 IF i<=5 THEN

L3 IF i<=5 THEN

L4

Count = Count + i

L4

Count = Count + i

L5

i=i+1

L5

i=i+1

L6 ENDIF

L6 ENDIF

L7 RETURN Count

L7 RETURN Count

Voyons voir comment le langage a lu les codes.


Programme 1 : le langage va lire L1 (Count = 0 ; i = 0), puis L2, L3, L4, L5 et L6 (Count = 0 ; i = 1), revient
L1 et relira tout exactement de la mme faon. Avec RETURN, le langage opre une sortie du programme
aprs avoir lu "n barres fois" ce dernier. Le rsultat affich est 0 (zro), comme la suite de la premire lecture.

Programme 2 : le langage va lire L1 (Count = 0 ; i = 0), puis L2, L3, L4, L5, L6 (Count = 0 ; i = 1) ; arriv la
ligne de RETURN, il recommence la boucle depuis L3 (les lignes avec ONCE ne sont traites que la
premire fois), L4, L5, L6 (Count = 1 ; i = 2), puis revient nouveau (Count = 3 ; i = 3) et ainsi de suite
jusqu (Count = 15 ; i = 6). Arriv ce rsultat, la boucle en IF nest plus traite car la condition ne vaut
plus; ne lui restera lire que L7. Do le rsultat : 15.

28 / 55

Chapitre II : Fonctions et instructions ProBuilder

Fonctions Mathmatiques
1) Fonctions usuelles unaires et binaires
Intressons-nous maintenant aux fonctions mathmatiques.
A noter que a et b sont des exemples darguments dcimaux. Ils peuvent tre remplacs par n'importe quelle
variable dans votre programme.
MIN(a, b) : calcule le minimum de a et de b
MAX(a, b) : calcule le maximum de a et de b
ROUND(a) : calcule un arrondi l'unit de a
ABS(a) : calcule la valeur absolue de a
SGN(a) : donne le signe de a (1 pour positif, -1 pour ngatif)
SQUARE(a) : calcule le carr de a
SQRT(a) : calcule la racine carr de a
LOG(a) : calcule le logarithme nprien de a
EXP(a) : calcule l'exponentiel de a
COS(a) : calcule le cosinus de a
SIN(a) : calcule le sinus de a
TAN(a) : calcule la tangente de a
ATAN(a) : calcule l'arc-tangente de a
Codons par exemple la loi mathmatique normale, intressante car elle utilise la fois la mise au carr, la
mise en racine carre et lexponentielle:
REM Loi Normale applique en x = 10, Ecart-type = 6 et Esprance = 8
REM Posons en variable optimise :
Ecarttype = 6
Esperance = 8
x = 10
Indicator= EXP((1/2)*(SQUARE(x -Esperance)/Ecarttype))/(Ecarttype*SQRT(2/3.14))
RETURN Indicator

2) Oprateurs mathmatiques usuels


a < b : a est strictement infrieur b
a <= b ou a =< b : a est infrieur ou gal b
a > b : a est strictement suprieur b
a >= b ou a => b : a est suprieur ou gal b
a = b :a est gal b (ou a reoit la valeur b)
a <> b : a est diffrent de b

29 / 55

Chapitre II : Fonctions et instructions ProBuilder

3) Fonctions de comparaisons graphiques


a Crosses Over b : a franchit b la hausse
a Crosses Under b : a franchit b la baisse

4) Fonctions de sommation
Cumsum : Calcule la somme de toutes les barres du graphique
La syntaxe dutilisation de Cumsum est :
Cumsum (prix ou indicateur)

Summation : Calcule la somme sur un nombre de barres dfinir


La somme est effectue partir de la barre la plus rcente (de droite gauche)
La syntaxe dutilisation de Summation est :
Summation[nombre de barres](prix ou indicateur)

5) Fonctions Statistiques
La syntaxe dutilisation de ces fonctions est la mme que celle des indicateurs et de la fonction Sommation
savoir :
Lowest[nombre de barres](prix ou indicateur)
Lowest : donne la valeur la plus basse sur la priode dfinie
Highest : donne la valeur la plus leve sur la priode dfinie
STD : donne lcart-type sur une valeur pour une priode dfinie
STE : donne lcart-erreur sur une valeur pour une priode dfinie

30 / 55

Chapitre II : Fonctions et instructions ProBuilder

Oprateurs logiques
De mme, comme tout langage informatique, il est ncessaire d'avoir disposition des oprateurs logiques
afin de crer des indicateurs pertinents. Vous trouverez ci-dessous les 4 oprateurs logiques de ProBuilder :
NOT(a) : NON logique
a OR b : OU logique
a AND b : ET logique
a XOR b : OU exclusif

Calcul de l'indicateur de tendance: On Balance Volume (OBV) :


IF NOT((Close > Close[1]) OR (Close = Close[1])) THEN
MyOBV = MyOBV Volume
ELSE
MyOBV = MyOBV + Volume
ENDIF
RETURN MyOBV

Instructions ProBuilder
RETURN : affiche le rsultat
CustomClose : renvoie une valeur de prix paramtrable ; par dfaut, elle renvoie "Close"
CALL : appelle une fonction prcdemment cre par lutilisateur
AS : nomme les diffrents rsultats affichs
COLOURED : colorie le trac affich dune couleur dfinir

1) RETURN
Nous avons dj pu voir dans le premier chapitre, limportance de linstruction RETURN. Elle a des
proprits particulires quil faut connatre pour viter certaines erreurs de programmation.
Pour une utilisation correcte dans lcriture dun programme, RETURN sutilise:
Une seule et unique fois
A la dernire ligne de code
Optionnellement avec dautres fonctions telles quAS et COLOURED
Pour afficher plusieurs rsultats, on crit RETURN suivi par les rsultats quon veut afficher
spars par une virgule (exemple : RETURN a,b )

31 / 55

Chapitre II : Fonctions et instructions ProBuilder

2) REM ou //
REM permet de placer dans le code des remarques. Elles servent principalement vous souvenir comment
fonctionne une fonction que vous auriez code. Ces remarques seront lues mais videmment pas traites
par le code. Illustrons lide par lexemple suivant :
REM ce programme retourne la moyenne mobile arithmtique de priode 20 sur le prix de clture
RETURN Average[20](Close)

Nutilisez pas les caractres spciaux (exemples : ,,,) dans ProBuilder, mme dans la
section REM

3) CustomClose
CustomClose est une constante qui permet dafficher les constantes Close, Open, High, Low et dautres
valeurs, qui peuvent tre slectionnes dans la fentre des proprits de lindicateur.
Sa syntaxe dutilisation est la mme que les constantes de prix qui s'adaptent la vue du graphique:
CustomClose[n]
Prenons un exemple simple :
RETURN CustomClose[2]
En cliquant sur la cl molette sur le coin suprieur gauche du graphique vous verrez quil est possible de
configurer les prix utiliss pour le calcul (sur le schma, entour en jaune).

32 / 55

Chapitre II : Fonctions et instructions ProBuilder

4) CALL
CALL permet dappeler un indicateur personnalis dj prsent sur votre plateforme.
Le moyen le plus rapide consiste slectionner directement partir de la catgorie "Indicateurs utilisateur"
(dans le menu "Insrer fonction") lindicateur employer.
Imaginons que vous avez cod sous le nom de HistoMACD lindicateur du MACD en histogramme.
Slectionnez votre indicateur et cliquez sur "Ajouter" et dans la zone de programmation apparatra :
myHistoMACD = CALL HistoMACD

Le logiciel a lui-mme nomm votre ancien indicateur "HistoMACD" en "myHistoMACD".


Ce qui signifie que pour le reste de votre programme, si vous souhaitez utiliser cet indicateur HistoMACD,
vous devrez lappeler par "myHistoMACD".

5) AS
Le mot-cl AS sert nommer le rsultat affich. Cette instruction est utilise avec RETURN selon la
structure suivante :
RETURN Result1 AS "Curve Name", Result2 AS "Curve Name",

Lavantage consiste faciliter lidentification des lments composants lindicateur cre.

Exemple:
a = ExponentialAverage[200](Close)
b = WeightedAverage[200](Close)
c = Average[200](Close)
RETURN a AS "Exponential Average" , b AS "Weighted Average" , c AS "Arithmetical Average"

33 / 55

Chapitre II : Fonctions et instructions ProBuilder

6) COLOURED
COLOURED est utilis aprs la commande RETURN pour colorier le trac affich dune certaine couleur,
dfinie selon la norme RGB (red, green, blue). On peut donner les principales couleurs de cette norme :

Couleur

Valeur RGB
(rouge, vert, bleu)

Franais

(0, 0, 0)

noir

(255, 255, 255)

blanc

(255, 0, 0)

rouge

(0, 255, 0)

vert

(0, 0, 255)

bleu

(255, 255, 0)

jaune

(0, 255, 255)

cyan

(255, 0, 255)

magenta

La syntaxe dutilisation de la commande Coloured est la suivante :


RETURN Indicator COLOURED(Red, Green, Blue)

La commande AS peut tre associe la commande COLOURED(. , . , .) en respectant lordre suivant :


RETURN Indicator COLOURED(Red, Green, Blue) AS "Nom De Ma Courbe"

Reprenons lexemple prcdent et insrons COLOURED la ligne du "RETURN".


a = ExponentialAverage[200](Close)
b = WeightedAverage[200](Close)
c = Average[200](Close)
RETURN a COLOURED(255,0,0) AS "Exponential Moving Average" , b COLOURED(0,255,0) AS
"WeightedMoving Average" , c COLOURED(0, 0, 255) AS "Simple Moving Average"

34 / 55

Chapitre II : Fonctions et instructions ProBuilder

Limage vous montre la personnalisation des couleurs dans le rsultat.

35 / 55

Chapitre III : Applications pratiques

Chapitre III : Applications pratiques


Crer un indicateur binaire ou ternaire : pourquoi et comment ?
Un indicateur binaire ou ternaire est par dfinition un indicateur ne pouvant retourner que deux ou trois
rsultats possibles (dhabitude 0 ,1 ou -1). Son utilit principale dans un contexte boursier est de rendre
immdiatement identifiable la vrification de la condition qui constitue lindicateur.
Utilit dun indicateur binaire ou ternaire :
Permettre la dtection des principales figures de chandeliers japonais
Faciliter la lecture du graphique lorsquon cherche reprer plusieurs conditions
Pouvoir mettre des alertes 1 condition sur un indicateur qui en incorpore plusieurs
donc plus dalertes disposition !

vous aurez

Dtecter des conditions complexes aussi sur lhistorique


Faciliter la ralisation dun backtest
Les indicateurs binaires ou ternaires sont construits laide de la fonction IF. Nous vous conseillions la
relecture de la section relative avant de continuer la lecture. (voir section "Instruction conditionnelle IF")

Illustrons la cration de ces indicateurs pour dtecter des patterns de prix :


Indicateur binaire : dtection du marteau
//Dtection du hammer
Hammer = Close>Open AND High=Close AND (Open-Low)>=3*(Close-Open)
IF Hammer THEN
Result=1
ELSE
Result=0
ENDIF
RETURN Result AS "Hammer"
Indicateur ternaire : dtection de croix dores et croix mortelles
a= ExponentialAverage[10](Close)
b= ExponentialAverage[20](Close)
c=0
//Dtection de croix dore
IF a Crosses Over b THEN
c=1
ENDIF
//Dtection de croix mortelle
IF a Crosses Under b THEN
c= -1
ENDIF
RETURN c

36 / 55

Chapitre III : Applications pratiques

Note : nous avons affich les moyennes mobiles exponentielles de priode 10 et 20 appliques au prix de
clture pour bien mettre en vidence les correspondances des rsultats de lindicateur.
Vous pouvez retrouver dautres indicateurs de dtection des figures de prix (voir section "Figures de
chandeliers")

Crer des indicateurs STOP : suivez vos positions en temps rel


Il est possible de crer des indicateurs qui reprsentent des STOPS, cest--dire des niveaux de sortie
potentiels, dfinis selon des paramtres personnaliss.
Avec le module de cration de stratgie ProBackTest, qui fait lobjet dun manuel de programmation spar,
il vous est possible de dfinir les niveaux de sortie dune stratgie. Cependant, la programmation dun
indicateur qui suit le cours dune valeur est intressant car :
Il permet de visualiser le stop en tant que ligne qui se met jour en temps rel sur le graphique du prix
Il nest pas ncessaire de dfinir des ordres dachat et de vente (ncessaire dans le cadre dun ProBackTest)
Il est possible dassocier des alertes temps rel, pour tre tout de suite alert de la condition
La programmation des Stops vous permettra dappliquer les principales commandes vues au cours des
chapitres prcdents.

37 / 55

Chapitre III : Applications pratiques

Par ailleurs, dans le manuel ProBackTest vous pourrez trouver plusieurs exemples de stop insrer dans
des stratgies d'investissement.
Il existe 4 catgories de stops que nous allons passer en revue :
STOP prise de bnfices statique
STOP loss statique
STOP dinactivit
STOP suiveur (trailing stop)
Les codes proposs dans les exemples qui suivent reprsentent des indications pour la construction des
indicateurs de stops. Vous devrez ncessairement les personnaliser en utilisant les instructions apprises
dans les chapitres prcdents.

1) STOP prise de bnfices statique


Un STOP Prise de bnfices ou Take-Profit, dsigne une borne suprieure de sortie de position. Cette borne
est par dfinition fixe. Lutilisateur de ce STOP prend alors ses bnfices.
Lindicateur cod ci-dessous indique deux niveaux avec prise de position la date "Start".
si vous tes acheteur, vous tiendrez compte de la courbe du haut reprsentant 10% de gain, soit
110% du cours au moment de l'achat.
si vous tes vendeur dcouvert, vous tiendrez compte de la courbe du bas reprsentant aussi
10% de gain, soit 90% du cours au moment de la vente.
En code, cela donne :
Nous vous proposons ci-dessous un exemple de STOP personnaliser :
//On dfinit en variable optimise:
//StartingTime = 100000
//Ajustez correctement cette variable lheure de votre entre de position
//Price= Prix au moment de la prise de position (on a pris lexemple dune date dentre de position
dfinie 10 heures)
//Si vous tes en position longue, vous aurez regarder la courbe du dessus. Si vous tes en
position courte, vous regarderez la courbe du dessous.
//AmplitudeUp reprsente le taux de variation de Price utilis pour tracer le Take Profit en position
longue (par defaut 1.1)
//AmplitudeDown reprsente le taux de variation de Price utilis pour tracer le Take Profit en position
courte (par dfaut : 0.9)
IF Time = StartingTime THEN
StopLONG = AmplitudeUp*Price
StopSHORT = AmplitudeDown*Price
ENDIF
RETURN StopLONG COLOURED(0,0,0) AS "TakeProfit LONG" , StopSHORT COLOURED(0,255,0) AS
"TakeProfit SHORT"

38 / 55

Chapitre III : Applications pratiques

2) STOP loss statique


Un STOP Loss est le contraire du STOP Take-Profit savoir quau lieu de positionner une borne suprieure
de sortie, il positionne une borne infrieure. Ce STOP est utile pour limiter les pertes un seuil minimum.

Comme le Take-Profit, ce STOP dfinit une limite fixe.


Lindicateur cod ci-dessous indique deux niveaux avec prise de position la date "Start".
si vous tes acheteur, vous tiendrez compte de la courbe du bas reprsentant 10% de perte, soit
90% du cours au moment de l'achat.
si vous tes vendeur dcouvert, vous tiendrez compte de la courbe du haut reprsentant aussi
10% de perte, soit 110% du cours au moment de la vente.

En code, cela donne :


//On dfinit en variable optimise :
//StartingTime = 100000 (on a pris lexemple dune date dentre de position dfinie 10 heures)
//Ajustez correctement cette variable lheure de votre entre de position
//Price= prix douverture de la position
//AmplitudeUp reprsente le taux de variation de Price utilis pour tracer le Stop Loss en position
longue (par defaut:0.9)
//AmplitudeDown reprsente le taux de variation de Price utilis pour tracer le Stop Loss en position
courte (par dfaut: 1.1)
IF Time = StartingTime THEN
StopLONG = AmplitudeUp*Price
StopSHORT = AmplitudeDown *Price
ENDIF
RETURN StopLONG COLOURED(0,0,0) AS "StopLoss LONG" , StopSHORT COLOURED(0,255,0) AS
"StopLoss SHORT"

3) STOP dinactivit
Un STOP dinactivit ferme la position lorsque les gains n'ont pas atteint un objectif (dfini en % ou en
points) sur une priode dfinie (exprime en nombre de barres)
Exemple de STOP dinactivit en graphique Intraday:
Ce stop est utiliser avec deux indicateurs :
le premier est juxtaposer sur la courbe des prix
le deuxime visualiser sparment

39 / 55

Chapitre III : Applications pratiques

Indicateur1
//MyVolatility = 0.01 correspond lcart relatif des bandes hautes et basse du range dfini
IF IntradayBarIndex = 0 THEN
ShortTarget = (1-MyVolatility)* Close
LongTarget = (1+MyVolatility)* Close
ENDIF
RETURN ShortTarget AS "ShortTarget", LongTarget AS "LongTarget"

Indicateur2
//On dfinit en variable optimise :
REM La prise de position se fait au prix du march
//MyVolatility = 0.01 correspond lcart relatif des bandes hautes et basses du range dfini
//NumberOfBars=20 correspond la dure maximale en nombre de barres sur lequel peut voluer les
prix avant que les positions ne soient coupes (rsultat plac 1)
Result = 0
Cpt=0
IF IntradayBarIndex = 0 THEN
ShortTarget = (1-MyVolatility)*Close
LongTarget = (1+MyVolatility)*Close
ENDIF
FOR i=IntradayBarIndex DOWNTO 1 DO
IF Close[i]>=ShortTarget AND Close[i]<=LongTarget THEN
Cpt=Cpt+1
ELSE
Cpt=0
ENDIF
IF Cpt = NumberOfBars THEN
Result = 1
ENDIF
NEXT
RETURN Result

40 / 55

Chapitre III : Applications pratiques

4) STOP suiveur ou trailing stop


Un STOP suiveur ou trailing STOP suit dynamiquement lvolution des prix et indique quel moment la
position doit tre coupe.
Nous vous suggrons ci-dessous deux formes de STOP suiveur, celle correspondant au Stop Loss
dynamique, lautre au Take Profit dynamique.
Trailing STOP LOSS ( utiliser en trading intraday)
//On dfinit en variable optimise :
//StartingTime = 090000 (on a pris lexemple dune date dentre de position dfinie 9 heures;
Ajustez correctement cette variable lheure de votre entre de position)
REM La prise de position se fait au prix du march
//Amplitude reprsente le taux de variation des courbes Cut avec les courbes Lowest (par
exemple, on peut prendre Amplitude = 0.95)
IF Time = StartingTime THEN
IF Lowest[5](Close)<1.2*Low THEN
IF Lowest[5](Close) >= Close THEN
Cut = Amplitude*Lowest[5](Close)
ELSE
Cut = Amplitude*Lowest[20](Close)
ENDIF
ELSE
Cut = Amplitude*Lowest[20](Close)
ENDIF
ENDIF
RETURN Cut AS "Trailing Stop Loss"
Trailing STOP Profit ( utiliser en trading intraday)
//On dfinit en variable optimise :
//StartingTime = 090000 (on a pris lexemple dune date dentre de position dfinie 9 heures;
Ajustez correctement cette variable lheure de votre entr de position)
REM La prise de position se fait au prix du march
//Amplitude reprsente le taux de variation des courbes Cut avec les courbes Lowest (par
exemple, on peut prendre Amplitude = 1.015)
IF Time = StartingTime THEN
StartingPrice = Close
ENDIF
Price = StartingPrice - AverageTrueRange[10]
TrailingStop = Amplitude*Highest[15](Price)
RETURN TrailingStop COLOURED (255, 0, 0) AS "Trailing take profit"

41 / 55

Chapitre IV : exercices

Chapitre IV : exercices
Figures de chandeliers
GAP UP ou DOWN

La couleur des chandeliers na pas dimportance

On dfinit en variable optimise lamplitude gale 0.001

Un gap se dfinit par deux conditions :


(louverture du jour est strictement suprieure la clture de la veille) ou (louverture du jour est
strictement infrieure la clture de la veille)
la valeur absolue de ((louverture du jour la clture de la veille)/ la clture de la veille) est
strictement suprieure lamplitude

42 / 55

Chapitre IV : exercices

// Initialisation de lAmplitude (du gap)


Amplitude = 0.001
//Initialisation du dtecteur
Detector = 0
//Gap Up
//1re condition dexistence dun gap
IF Low > High[1] THEN
//2e condition dexistence dun gap
IF ABS((Low -High[1])/High[1]) > Amplitude THEN
//Comportement du dtecteur
Detector = 1
ENDIF
ENDIF
//Gap Down
//1re condition dexistence dun gap
IF High < Low[1] THEN
//2e condition dexistence dun gap
IF ABS((High -Low[1])/Low[1]) > Amplitude THEN
//Comportement du dtecteur
Detector = -1
ENDIF
ENDIF
//Affichage du rsultat
RETURN Detector AS "Gap detection"

43 / 55

Chapitre IV : exercices

Doji (version souple)

On dfinit le doji par un range strictement suprieur 5 fois la valeur absolue de


(Open Close).

Doji = Range > ABS(Open-Close)*5


RETURN Doji AS "Doji"

Doji (version stricte)

On dfinit le doji par un close gal lOpen.

Doji = (Open = Close)


RETURN Doji AS "Doji"

44 / 55

Chapitre IV : exercices

Indicateurs
BODY MOMENTUM
Le Body Momentum est dfini mathmatiquement par :
BodyMomentum = 100*BodyUp / (BodyUp + BodyDown)
BodyUp (resp. BodyDown) est un compteur du nombre de barres clturant plus haut (resp. bas) que son
ouverture, et ce sur une priode dfinie (prenons priode = 14)
Periods = 14
b = Close - Open
IF BarIndex > Periods THEN
Bup= 0
Bdn= 0
FOR i=1 TO periods
IF b[i] > 0 THEN
Bup = Bup+1
ELSIF b[i] < 0 THEN
Bdn = Bdn+1
ENDIF
NEXT
BM =(Bup/(Bup+Bdn))*100
ELSE
BM = Undefined
ENDIF
RETURN BM AS "Body Momentum"

ELLIOT WAVE OSCILLATOR


L'oscillateur Elliot reprsente la diffrence entre deux moyennes mobiles.
La moyenne mobile courte reprsente l'action des prix tandis que la moyenne longue reprsente la tendance
de fond.
Lorsque les prix forment une vague 3, les prix grimpent fortement ce qui produit une valeur importante sur
l'oscillateur.
Dans une vague 5, les prix grimpent plus lentement et l'oscillateur donne alors une valeur beaucoup plus
faible.

RETURN Average[5](MedianPrice) - Average[35](MedianPrice) AS "Elliot Wave Oscillator"

45 / 55

Chapitre IV : exercices

Williams %R
Voici un oscillateur dont le fonctionnement est similaire loscillateur stochastique. Pour le tracer, on
commence par dfinir dans un premier temps 2 courbes :
1) la courbe des plus hauts du plus haut sur 14 priodes
2) la courbe des plus bas du plus bas sur 14 priodes
Le %R se dfinit alors par (Close LowestL ) / (HighestH LowestL ) * 100

HighestH = Highest[14](High)
LowestL = Lowest[14](Low)
MyWilliams = (Close LowestL ) / ( HighestH LowestL )* 100
RETURN MyWilliams AS "Williams %R"

Bandes de Bollinger
On dfinit ces bandes par un encadrement de la moyenne mobile arithmtique sur 20 barres applique au
prix de clture.
La moyenne mobile est borne au-dessus (resp. en-dessous) par + (resp. -) 2 fois l'cart-type prise sur les
20 barres prcdentes du prix de clture.

a = Average[20](Close)
//On dfinit l'cart-type
StdDeviation = STD[20](Close)
Bsup = a + 2 * StdDeviation
Binf = a - 2 * StdDeviation
RETURN a AS "Average", Bsup AS "Bollinger Up" , Binf AS "Bollinger Down"

46 / 55

Glossaire

Glossaire

A
CODE

IMPLEMENTATION

FONCTION

Abs

Abs(a)

Fonction Mathmatique "Valeur Absolue"

AccumDistr

AccumDistr(price)

Dsigne l'Accumulation Distribution classique

ADX

ADX[N]

Indicateur Average Directional Index

ADXR

ADXR[N]

Indicateur Average Directional Index Rate

AND

a AND b

Oprateur logique ET

AroonDown

AroonDown[P]

Dsigne l'Aroon Down

AroonUp

AroonUp[P]

Dsigne l'Aroon Up

Atan

Atan(a)

Fonction mathmatique "Arctangente"

AS

RETURN x AS
"ResultName"

Instruction servant nommer une courbe

Average

Average[N](price)

Moyenne Mobile Arithmtique

AverageTrueRange

AverageTrueRange[N](price)

Dsigne la moyenne mobile par lissage de


Wilder du True Range

CODE

IMPLEMENTATION

FONCTION

BarIndex

BarIndex

Compte le nombre de chandeliers sur le


graphique

BollingerBandWidth

BollingerBandWidth[N](price)

Bande passante de Bollinger

BollingerDown

BollingerDown[N](price)

Support de la bande de Bollinger

BollingerUp

BollingerUp[N](price)

Rsistance de la bande de Bollinger

BREAK

(FOR...DO...BREAK...NEXT)
ou
(WHILE...DO...BREAK...WEND)

Instruction de sortie force de boucle FOR ou


WHILE

47 / 55

Glossaire

C
CODE

IMPLEMENTATION

FONCTION

CALL

myResult = CALL
myFunction

Appel de fonction utilisateur

CCI

CCI[N](price) ou CCI[N]

Donne le Commodity Channel Index

ChaikinOsc

ChaikinOsc[Ch1, Ch2](price)

Dsigne l'oscillateur de Chaikin

Chandle

Chandle[N](price)

Dsigne le Chande Momentum Oscillator

ChandeKrollStopUp

ChandeKrollStopUp[Pp, Qq,
X]

Stop de protection selon Chande et Kroll en


position acheteuse

ChandeKrollStopDown

ChandeKrollStopDown[Pp,
Qq, X]

Stop de protection selon Chande et Kroll en


position vendeuse

Close

Close[N]

Dsigne le prix de clture de la barre courante


ou de celle n jours auparavant

COLOURED

RETURN x
COLOURED(R,G,B)

Colorie une courbe d'une certaine couleur


selon la convention RGB

COS

COS(a)

Fonction cosinus

Crosses Over

a Crosses Over b

Oprateur boolen vrifiant qu'une courbe


passe au-dessus d'une autre

Crosses Under

a Crosses Under b

Oprateur boolen vrifiant qu'une courbe


passe en dessous d'une autre

CUMSUM

CUMSUM(price)

Sommation d'un prix depuis le dbut de


l'historique affich

CurrentDayOfWeek

CurrentDayOfWeek

Dsigne le jour actuel

CurrentHour

CurrentHour

Dsigne l'heure actuelle

CurrentMinute

CurrentMinute

Dsigne la minute actuelle

CurrentMonth

CurrentMonth

Dsigne le mois actuel

CurrentSecond

CurrentSecond

Dsigne la seconde actuelle

CurrentTime

CurrentTime

Dsigne HeureMinute actuelle

CurrentYear

CurrentYear

Dsigne l'anne actuelle

CustomClose

CustomClose[N]

Constante paramtrable dans la fentre de


proprits

Cycle

Cycle(price)

Indicateur Cycle

48 / 55

Glossaire

D
CODE

IMPLEMENTATION

FONCTION

Date

Date[N]

Dsigne la date de clture de la barre courante

Day

Day[N]

Jour de clture de la barre courante

Days

Days[N]

Compteur de jours depuis 1900

DayOfWeek

DayOfWeek[N]

Dsigne le jour de la semaine durant lequel la


barre courante a clos

Dclose

Dclose(N)

Prix de clture de la n-ime journe antrieure


celle de la barre courante

DEMA

DEMA[N](price)

Double Moyenne Mobile Exponentielle

Dhigh

Dhigh(N)

Prix le plus haut de la n-ime journe


antrieure celle de la barre courante

DI

DI[N](price)

Dsigne le Demand Index

DIminus

Diminus[N](price)

Dsigne le DI-

Diplus

Diplus[N](price)

Dsigne le DI+

Dlow

Dlow(N)

Prix le plus bas de la n-ime journe


antrieure celle de la barre courante

DO

Voir FOR et WHILE

Instruction facultative des FOR et WHILE pour


l'action de bouclage

Dopen

Dopen(N)

Prix d'ouverture de la n-ime journe


antrieure celle de la barre courante

DOWNTO

Voir FOR

Instruction sur boucle FOR pour une lecture


dcroissante

DPO

DPO[N](price)

Dsigne le Detrented Price Oscillator

CODE

IMPLEMENTATION

FONCTION

EaseOfMovement

EaseOfMovement[I]

Dsigne l'indicateur Ease of Movement

ELSE

Voir IF/THEN/ELSE/ENDIF

Instruction d'appel de la seconde condition


dfaut de la premire issue du IF

ELSEIF

Voir IF/THEN/ELSE/ENDIF

Contraction de ELSE IF

EMV

EMV[N]

Dsigne l'indicateur Ease of Movement Value

ENDIF

Voir IF/THEN/ELSE/ENDIF

Instruction de clture des instructions


conditionnelles

EndPointAverage

EndPointAverage[N](price)

Moyenne Mobile dernier point

Exp

Exp(a)

Fonction Mathmatique "Exponentielle"

ExponentialAverage

ExponentialAverage[N](price)

Moyenne Mobile Exponentielle

49 / 55

Glossaire

F-G
CODE

IMPLEMENTATION

FONCTION

FOR/TO/NEXT

FOR i =a TO b DO a NEXT

Prend les valeurs dsignes du dbut la fin


ou vice versa

ForceIndex

ForceIndex(price)

Indicateur Force Index dterminant qui


contrle le march

CODE

IMPLEMENTATION

FONCTION

High

High[N]

Dsigne le plus haut cours atteint durant la


priode N

Highest

Highest[N](price)

Dsigne le plus haut cours sur un horizon donn

HistoricVolatility

HistoricVolatility[N](price)

Dsigne la volatilit historique ou statistique

Hour

Hour[N]

Dsigne l'heure de clture de chaque barre

CODE

IMPLEMENTATION

FONCTION

IF/THEN/ENDIF

IF a THEN b ENDIF

Ensemble d'instructions conditionnelles sans


deuxime condition

IF/THEN/ELSE/ENDIF

IF a THEN b ELSE c ENDIF

Ensemble d'instructions conditionnelles

IntradayBarIndex

IntradayBarIndex[N]

Compte le nombre de chandeliers sur le


graphique intraday

CODE

IMPLEMENTATION

FONCTION

LinearRegression

LinearRegression[N](price)

Droite de rgression linaire

LinearRegressionSlope

LinearRegressionSlope[N]
(price)

Pente de la droite de rgression linaire

Log

Log(a)

Fonction mathmatique "logarithme nprien"

Low

Low[N]

Dsigne le plus bas atteint durant la priode

Lowest

Lowest[N](price)

Dsigne le plus bas d'une priode sur un


horizon donn

I-J-K

50 / 55

Glossaire

M
CODE

IMPLEMENTATION

FONCTION

MACD

MACD[S,L,Si](price)

Moving Average Convergence Divergence


(MACD)

MACDline

MACDLine[S,L](price)

Dsigne la ligne du MACD

MassIndex

MassIndex[N]

Indicateur Mass Index appliqu sur N barres

Max

Max(a,b)

Fonction mathmatique "Maximum"

MedianPrice

MedianPrice

Moyenne du prix le plus haut et du plus bas

Min

Min(a,b)

Fonction Mathmatique "Minimum"

Minute

Minute

Dsigne la minute du moment de la clture de


chaque barre de l'historique

Mod

a Mod b

Fonction Mathmatique "Reste de la division


euclidienne"

Momentum

Momentum[I]

Momentum (prix de clture prix de clture de


la n-ime barre prcdente)

MoneyFlow

MoneyFlow[N](price)

Donne le MoneyFlow entre -1 et 1

MoneyFlowIndex

MoneyFlowIndex[N]

Dsigne le MoneyFlowIndex

Month

Month[N]

Dsigne le mois de la clture de chaque barre


de l'historique

CODE

IMPLEMENTATION

FONCTION

NEXT

Voir FOR/TO/NEXT

Instruction placer la fin de la boucle "FOR"

NOT

NOT a

Oprateur logique NON

CODE

IMPLEMENTATION

FONCTION

OBV

OBV(price)

Dsigne l' "On-Balance-Volume"

ONCE

ONCE VariableName =
VariableValue

Instruction qui en prcde une autre qu'on ne


veut raliser qu'une seule fois

Open

Open[N]

Dsigne le prix d'ouverture de la barre


courante ou celle de n jours auparavant

OpenOfNextBar

OpenOfNextBar

Dsigne le prix d'ouverture de la barre suivante

OR

a OR b

Oprateur logique OU

51 / 55

Glossaire

P-Q
CODE

IMPLEMENTATION

FONCTION

PriceOscillator

PriceOscillator[S,L](price)

Indicateur Percertage Price oscillator

PositiveVolumeIndex

PriceVolumeIndex(price)

Dsigne l'indicateur Positive Volume Index

PVT

PVT(price)

Dsigne l'indicateur "Price Volume Trend"

CODE

IMPLEMENTATION

FONCTION

R2

R2[N](price)

Coefficient R Carr (taux d'erreur des prix la


regression linaire)

Range

Range[N]

Diffrence entre le prix le plus haut et le plus


bas de la barre courante

REM

REM comment

Prcde une remarque dans le code

Repulse

Repulse[N](price)

Mesure la pousse haussire et baissire de


chaque bougie

RETURN

RETURN Result

Instruction qui renvoie le rsultat

ROC

ROC[N](price)

Dsigne le "Price Rate of Change"

RSI

RSI[N](price)

Dsigne l'oscillateur "Relative Strength Index"

Round

Round(a)

Fonction mathmatique "Arrondi l'unit"

CODE

IMPLEMENTATION

FONCTION

SAR

SAR[At,St,Lim]

Dsigne le Parabolique SAR

SARatdmf

SARatdmf[At,St,Lim](price)

Parreil (parabolique SAR)


Dsigne le Parabolique SAR ATDMF

Sin

Sin(a)

Fonction Mathmatique "Sinus"

Sgn

Sgn(a)

Fonction Mathmatique "Signe de"

SMI

SMI[N,SS,DS](price)

Dsigne le Stochastic Momentum Index

SmoothedStochastic

SmoothedStochastic[N,K]
(price)

Dsigne une Stochastique lisse

Square

Square(a)

Fonction mathmatique "Mise au carr"

52 / 55

Glossaire

Sqrt

Sqrt(a)

Fonction Mathmatique "Mise la racine


carre"

STD

STD[N](price)

Fonction Statistique "cart-type"

STE

STE[N](price)

Fonction Statistique "cart-erreur"

Stochastic

Stochastic[N,K](price)

Ligne %K de la Stochastique

Summation

Summation[N](price)

Somme d'un certain prix des N derniers


chandeliers

SuperTrend

SuperTrend[STF,N]

Dsigne le Super Trend

CODE

IMPLEMENTATION

FONCTION

Tan

Tan(a)

Fonction mathmatique "Tangente"

TEMA

TEMA[N](price)

Moyenne Mobile Exponentielle Triple

THEN

Voir IF/THEN/ELSE/ENDIF

Instruction suivant la premire condition de


l'instruction "IF"

Time

Time[N]

Donne l'HeureMinuteSeconde et permet de


faire appel l'heure

TimeSeriesAverage

TimeSeriesAverage[N](price)

Moyenne mobile des sries temporelles

TO

Voir FOR/TO/NEXT

Instruction "jusqu'" dans la boucle "Pour"

Today

Today

Date de la journe actuelle

TotalPrice

TotalPrice[N]

(Clture + Ouverture + Plus Haut + Plus Bas)/4

TR

TR(price)

Dsigne le True Range

TriangularAverage

TriangularAverage[N](price)

Moyenne Mobile Triangulaire

TRIX

TRIX[N](price)

Triple Moyenne Mobile Exponentielle

TypicalPrice

TypicalPrice[N]

Prix Typique (moyenne de plus haut, plus bas


et clture)

CODE

IMPLEMENTATION

FONCTION

Undefined

a = Undefined

Pour laisser une variable indfinie (Null)

53 / 55

Glossaire

V
CODE

IMPLEMENTATION

FONCTION

Variation

Variation(price)

Diffrence entre la clture de la veille et la


clture courante en %

Volatility

Volatility[S, L]

Dsigne la volatilit de Chaikin

Volume

Volume[N]

Dsigne le volume

VolumeOscillator

VolumeOscillator[S,L]

Dsigne l'oscillateur de volume

VolumeROC

VolumeROC[N]

Dsigne le volume du Rate Of Change

CODE

IMPLEMENTATION

FONCTION

WeightedAverage

WeightedAverage[N](price)

Dsigne la Moyenne Mobile Pondre

WeightedClose

WeightedClose[N]

Moyenne pondre entre le prix de clture, le


plus haut et la plus bas

WEND

Voir WHILE/DO/WEND

Instruction placer la fin de la boucle Tant


Que

WHILE/DO/WEND

WHILE (condition) DO
(action) WEND

Boucle "Tant Que"

WilderAverage

WilderAverage[N](price)

Donne la moyenne mobile de Wilder

Williams

Williams[N](close)

Calcule le %R de Williams

WilliamsAccumDistr

WilliamsAccumDistr(price)

Indicateur Accumulation/Distribution de
Williams

CODE

IMPLEMENTATION

FONCTION

XOR

a XOR b

Oprateur logique OU exlusif

54 / 55

Glossaire

Y
CODE

IMPLEMENTATION

FONCTION

Year

Year[N]

Donne l'volution des annes

Yesterday

Yesterday[N]

Donne l'volution du jour d'avant

CODE

IMPLEMENTATION

FONCTION

ZigZag

ZigZag[Zr](price)

Zig-Zag de la thorie des vagues d'Eliott

ZigZagPoint

ZigZagPoint[Zp](price)

Zig-Zag de la thorie des vagues d'Eliott


calcul Zp points

Autres
CODE

FONCTION

Oprateur d'addition

Oprateur de soustraction

Oprateur de multiplication

Oprateur de division dcimale

Oprateur d'galit

<>

Oprateur de diffrence

<

Oprateur d'infriorit strict

>

Oprateur de supriorit strict

<=

Oprateur d'infriorit

>=

Oprateur de supriorit

55 / 55

Vous aimerez peut-être aussi