Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
10 mars 2008 1 10 /03 /mars /2008 18:46

Unité de temps mensuelle : le MACD.

Toujours dans l'optique de screeners ou de backtests, voici le code pour Prorealtime du MACD "monthly" à afficher sur un graphe en "daily".  Une vue du CAC avec l'indicateur :

hk102.gif
hk103.gif

De par la  formule de la moyenne exponentielle, il faut attendre "un certain" nombre de barres pour que les données mensuelles et journalières coïncident très exactement.

////////////// MACD unité mois //////////////
once m2=close
once m1=close
jour=Date MOD 1000000
moi= jour mod 10000
jour=moi mod 100
moi=(moi-jour)/100
a=2/20
b=2/10
c=2/7
if moi<>moi[1] then
    m2=a*close[1]+(1-a)*m2
    m1=b*close[1]+(1-b)*m1
    dif1=m1-m2
    mdif=c*dif1+(1-c)*mdif
    zz=zz+1
endif
mm2=a*close+(1-a)*m2
mm1=b*close+(1-b)*m1
dif=mm1-mm2
mmdif=c*dif+(1-c)*mdif
macdmoi=dif-mmdif
ligne1=dif
ligne2=mmdif
if zz<19 then
    macdmoi=undefined
    ligne1=undefined
    ligne2=undefined
endif
return macdmoi,ligne1 coloured by ligne1-dif1,ligne2 coloured by ligne2-mdif,0

Et le code pour le MACD hebdomadaire :

/////////////// MACD unité hebdomadaire //////////////
once m2=close
once m1=close
a=2/20
b=2/10
c=2/7
if dayofweek<dayofweek[1] then
    m2=a*close[1]+(1-a)*m2
    m1=b*close[1]+(1-b)*m1
    dif1=m1-m2
    mdif=c*dif1+(1-c)*mdif
    zz=zz+1
endif
mm2=a*close+(1-a)*m2
mm1=b*close+(1-b)*m1
dif=mm1-mm2
mmdif=c*dif+(1-c)*mdif
macdhebdo=dif-mmdif
ligne1=dif
ligne2=mmdif
if zz<19 then
    macdhebdo=undefined
    ligne1=undefined
    ligne2=undefined
endif
return macdhebdo,ligne1 coloured by ligne1-dif1,ligne2 coloured by ligne2-mdif,0.

bug_fck

Partager cet article

Repost 0

commentaires