Logiciel de bourse SystemTrader

 Navigation:  2. Création d'indicateurs >

2.12 Variables persistantes

Previous page Return to chapter overviewNext page

A noter : Les variables persistantes font partie des fonctionnalités avancées de TSL, et ne sont pas indispensables à une première prise en main. A titre dexemple, seuls la moyenne mobile exponentielle (EMA) et le Parabollic Stop & Reverse (SAR) utilisent les variables persistantes, parmi les 70+ indicateurs fournis avec SystemTrader.

Comme vu en 2.2, SystemTrader demande à l’indicateur de lui fournir une valeur pour chaque barre du graphique. Ces appels se font dans l’ordre chronologique : d’abord sur la barre la plus ancienne puis sur chaque barre jusqu’à la plus récente du graphique.

Les variables persistantes, contrairement aux variables classiques, conservent leur valeur entre les barres.

Pour définir une variable persistante, utilisez la syntaxe suivante :

1

persistent(VAR = INIT)

… où VAR est le nom souhaité de la variable, et INIT sa valeur d’initialisation (la valeur que prendra la variable lors de son premier appel). Pour définir plusieurs variables persistantes dans un même indicateur, séparez celles-ci par des virgules, au sein d’un seul et même appel à persistent :

1

persistent(VAR1 = INIT1, VAR2 = INIT2)

Prenons l’exemple de la moyenne mobile exponentielle (EMA), qui se base dans son calcul sur sa propre valeur précédente. Voici ce que l’on souhaite faire :

1
2
3
4

K = 2.0 / (Periods + 1)

 
return K * Price[0] + (1 - K) * EMA[1# Erreur ! 

                                ^^^^^^

Le code ci-dessus est erroné, dans la mesure où un indicateur ne peut s’utiliser lui-même :  EMA[1] provoquera une erreur. La solution consiste à créer une variable persistante dans laquelle sera stockée la valeur précédente de la moyenne mobile :

1
2
3
4
5
6
7

persistent(LastEMA = Price[0]) # Déf. de la variable persistante
 

K = 2.0 / (Periods 1)

 
LastEMA = K * Price[0] + (1 - K) * LastEMA

 
return LastEMA



Plan du site | Mentions Légales | Conditions Générales de Vente | Soutiens | Contact
Copyright (c) 2008 Edge S.A.R.L. - Tous droits réservés.