Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
11 février 2008 1 11 /02 /février /2008 19:24

Le Zigzag "Rock 'n' Roll".

 

Voici un indicateur qui retourne une image différente de la représentation des cours.  A l'origine, j'avais en tête de backtester les fourchettes d'Andrews.  J'avais besoin de détecter les pics et les creux pour y appliquer un zigzag.  Malheureusement le logiciel Prorealtime ne permet pas d'appliquer un zigzag sur un indicateur utilisateur dans un programme (mais je ne désespère pas de trouver une parade).  L'indicateur dans sa phase actuelle ne peut servir que comme aide visuelle à la formation des fourchettes.  Dans sa version complète, on peut aller jusqu'à imaginer la détection de figures chartistes et donc le backtest de celles-ci.

 

La construction de l'indicateur :

- détecter la tendance : higher/high et higher/low = tendance haussière, l'inverse pour la baisse.

- gèrer les outsidebar's : si la tendance est à la hausse, je prends le high, l'inverse pour la baisse.  (1)

- gèrer les insidebar's : si la tendance est à la hausse, je prends le low, l'inverse pour la baisse.  (2)

Ces choix (1 et 2) sont arbitraires, on pourrait en  faire d'autres (par exemple  en fonction de la couleur de la bougie ou du niveau de cloture).

 

La gestion de l'écran (3) : on fait apparaître l'indicateur dans une nouvelle fenêtre, on y ajoute l'indicateur de barcharts colorées (pas le prix car c'est impossible sur un indicateur, et si on commence par le prix, le zigzag se calculera sur le prix et non sur l'indicateur) puis on ajoute le zigzag Prorealtime et enfin on rend invisible l'indicateur.  (vous suivez ?)

 

Voici une vue de l'écran avec l'indicateur brut : en haut, appliqué sur les cours et en bas, seul avec  un zigzag.

 

hk25.gifhk26.gif

 

Une autre vue du CAC au 16/10 avec comme expliqué (3), l'indicateur barcharts colorées en plus (zigzag à 3%) :

 

hk27.gif

 

On constate bien que le zigzag s'applique alternativement sur le low puis sur le high.  Et maintenant le code :

 

once a=high
once b=1
// determination de la bougie
if high>=high[1] and low>low[1] then
    //code=1 // hausse
    a=high
    b=1
endif
if high>high[1] and low>=low[1] then
    a=high
    b=1
endif

if low<=low[1] and high<high[1] then
    //code=2 // baisse
    a=low
    b=-1
endif
if low<low[1] and high<=high[1] then
    a=low
    b=-1
endif
if high>high[1] and low<low[1] then
    //code=3 // outsidebar
    if b=1 then
        a=high
    else
        a=low
    endif
endif
if high<high[1] and low>low[1] then
    //code=4 //insidebar
    if b=1 then
        a=low
        b=-1
    else
        a=high
        b=1
    endif
   
endif
return a

 

PS : j'ai aussi essayé un zigzag à pas variable, mais ça marche pas avec Prorealtime.

Partager cet article
Repost0

commentaires