Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
11 mars 2008 2 11 /03 /mars /2008 19:49

Unités de temps hebdomadaire et mensuelle : le SAR et le Stochastic.

Avant-dernière série d'indicateurs, voici les codes pour Prorealtime du SAR et du Stochastic en hebdomadaire et en mensuel, avec une vue du CAC en daily où sont appliquées les courbes :

hk104.gif
hk105.gif

Et les codes des programmes :

//////////////// unité hebdomadaire stochastic /////////////
once haut=high
once bas = low
coef=2/6
haut=max(haut,high)
bas=min(bas,low)
if dayofweek < dayofweek[1] then
    h13=h12
    h12=h11
    h11=h10
    h10=h9
    h9=h8
    h8=h7
    h7=h6
    h6=h5
    h5=h4
    h4=h3
    h3=h2
    h2=h1
    h1=haut[1]
    haut=high
    l13=l12
    l12=l11
    l11=l10
    l10=l9
    l9=l8
    l8=l7
    l7=l6
    l6=l5
    l5=l4
    l4=l3
    l3=l2
    l2=l1
    l1=bas[1]
    bas=low
    zz=zz+1
    plusb=min(l13,min(l12,min(l11,min(l10,min(l9,min(l8,min(l7,min(l6,min(l5,min(l4,min(l3,min(l2,l1))))))))))))
    plush=max(h13,max(h12,max(h11,max(h10,max(h9,max(h8,max(h7,max(h6,max(h5,max(h4,max(h3,max(h2,h1))))))))))))
    moyk=coef*osci[1]+(1-coef)*moyk
    moyd=coef*moyk+(1-coef)*moyd
endif
plusha=max(plush,haut)
plusba=min(plusb,bas)
osci=(close-plusba)/(plusha-plusba)*100
k=coef*osci+(1-coef)*moyk
d=coef*k+(1-coef)*moyd
kk=k
dd=d
if zz<19 then
    kk=undefined
    dd=undefined
endif
return kk coloured by kk-moyk,dd coloured by dd-moyd,50,20,80

///////////////// unité mois stochastic //////////////////
once haut=high
once bas = low
coef=2/6
haut=max(haut,high)
bas=min(bas,low)
if dayofweek < dayofweek[1] then
    h13=h12
    h12=h11
    h11=h10
    h10=h9
    h9=h8
    h8=h7
    h7=h6
    h6=h5
    h5=h4
    h4=h3
    h3=h2
    h2=h1
    h1=haut[1]
    haut=high
    l13=l12
    l12=l11
    l11=l10
    l10=l9
    l9=l8
    l8=l7
    l7=l6
    l6=l5
    l5=l4
    l4=l3
    l3=l2
    l2=l1
    l1=bas[1]
    bas=low
    zz=zz+1
    plusb=min(l13,min(l12,min(l11,min(l10,min(l9,min(l8,min(l7,min(l6,min(l5,min(l4,min(l3,min(l2,l1))))))))))))
    plush=max(h13,max(h12,max(h11,max(h10,max(h9,max(h8,max(h7,max(h6,max(h5,max(h4,max(h3,max(h2,h1))))))))))))
    moyk=coef*osci[1]+(1-coef)*moyk
    moyd=coef*moyk+(1-coef)*moyd
endif
plusha=max(plush,haut)
plusba=min(plusb,bas)
osci=(close-plusba)/(plusha-plusba)*100
k=coef*osci+(1-coef)*moyk
d=coef*k+(1-coef)*moyd
kk=k
dd=d
if zz<19 then
    kk=undefined
    dd=undefined
endif
return kk coloured by kk-moyk,dd coloured by dd-moyd,50,20,80

//////////////// unité hebdomadaire SAR ///////////////
once facteur =0.02
once tmpsar=low
once extreme=high
once tendance=1
once haut=high
once bas=low
once bas1=low
once haut1=high
bas=min(bas,low)
haut=max(haut,high)
if barindex>1 then
    if dayofweek<dayofweek[1] then
        bas2=bas1
        bas1=bas[1]
        haut2=haut1
        haut1=haut[1
        if tendance[1]=1 then
            extreme = max(extreme[1],haut1)
            if tmpsar[1] >bas1 then
                tendance =-1
                facteur=0.02
                tmpsar=extreme
                extreme=bas1
            else
                if extreme>extreme[1] and facteur <0.2 then
                    facteur=min(0.2,facteur+0.02)
                endif
                tmpsar=tmpsar[1]+facteur*(extreme-tmpsar[1])
                tmp=min(bas1,bas2)
                tmpsar=min(tmpsar,tmp)
            endif
        else
            extreme=min (extreme[1],bas1)
            if tmpsar[1]<haut1 then
                tendance=1
                facteur=.02
                tmpsar=extreme
                extreme=haut1
            else
                if extreme<extreme[1] and facteur<.2 then
                    facteur=min(.2,facteur+.02)
                endif
                tmpsar=tmpsar[1]+facteur*(extreme-tmpsar[1])
                tmp=max(haut1, haut2)
                tmpsar=max(tmpsar,tmp)
            endif
        endif
        haut=high
        bas=low
    endif
endif
return tmpsar coloured by tendance

/////////////// unité mois SAR //////////////////
once facteur =0.02
once tmpsar=low
once extreme=high
once tendance=1
once haut=high
once bas=low
once bas1=low
once haut1=high
bas=min(bas,low)
haut=max(haut,high)
jour=Date MOD 1000000
moi= jour mod 10000
jour=moi mod 100
moi=(moi-jour)/100
if moi<>moi[1] then
    if barindex>1 then
        bas2=bas1
        bas1=bas[1]
        haut2=haut1
        haut1=haut[1]
        if tendance[1]=1 then
            extreme = max(extreme[1],haut1)
            if tmpsar[1] >bas1 then
                tendance =-1
                facteur=0.02
                tmpsar=extreme
                extreme=bas1
            else
                if extreme>extreme[1] and facteur <0.2 then
                    facteur=min(0.2,facteur+0.02)
                endif
                tmpsar=tmpsar[1]+facteur*(extreme-tmpsar[1])
                tmp=min(bas1,bas2)
                tmpsar=min(tmpsar,tmp)
            endif
        else
            extreme=min (extreme[1],bas1)
            if tmpsar[1]<haut1 then
                tendance=1
                facteur=.02
                tmpsar=extreme
                extreme=haut1
            else
                if extreme<extreme[1] and facteur<.2 then
                    facteur=min(.2,facteur+.02)
                endif
                tmpsar=tmpsar[1]+facteur*(extreme-tmpsar[1])
                tmp=max(haut1, haut2)
                tmpsar=max(tmpsar,tmp)
            endif
        endif
        haut=high
        bas=low
    endif
endif
return tmpsar coloured by tendance

Partager cet article

Repost 0

commentaires