Comparaison algorithmique des différents types de pt pivot

par bruno974 » 13 août 2021 18:35

Bonjour à tous,

Je vous propose le morceau de code suivant qui permet de comparer objectivement quels sont les points pivots les plus travaillés. Pour ce faire j'ai chercher à calculer combien de barres "contenaient" chaque niveau de chaque type de point pivot. Les résultats sont indiscutables : les pivots de fibonacci sont largement plus travaillés, sur le DAX comme sur le nasdaq. De plus, les points pivots de fibonacci sont calculés en fonction du range du jour précédent, ce qui permet d'avoir des points pivots indexés sur la volatilité (sans avoir des bandes plus ou moins aléatoires autour du prix type bollinger/STARC/Keltner).

Code : #

Ht = DHigh(1)
Bs = DLow(1)
C = DClose(1)

once nstd = 0

Pivot = (Ht + Bs + C) / 3
Res3 = Pivot + ((Ht - Bs)*2)
Res2 = Pivot + Ht - Bs
Res1 = (2 * Pivot) - Bs
Sup1 = (2 * Pivot) - Ht
Sup2 = Pivot - (Ht - Bs)
Sup3 = Pivot - ((Ht - Bs)*2)

if (low <= Pivot and Pivot <= high) or (low <= Res3 and Res3 <= high) or (low <= Res2 and Res2 <= high) or (low <= Res1 and Res1 <= high) or (low <= Sup1 and Sup1 <= high) or (low <= Sup2 and Sup2 <= high) or (low <= Sup3 and Sup3 <= high) then
nstd = nstd + 1
endif

once nfib = 0

fPivot = (Ht + Bs + C) / 3
fRes3 = fPivot + (Ht - Bs)
fRes2 = fPivot + 0.618 * (Ht - Bs)
fRes1 = fPivot + 0.382 * (Ht - Bs)
fSup1 = fPivot - 0.382 * (Ht - Bs)
fSup2 = fPivot - 0.618 * (Ht - Bs)
fSup3 = fPivot - (Ht - Bs)

if (low <= fPivot and fPivot <= high) or (low <= fRes3 and fRes3 <= high) or (low <= fRes2 and fRes2 <= high) or (low <= fRes1 and fRes1 <= high) or (low <= fSup1 and fSup1 <= high) or (low <= fSup2 and fSup2 <= high) or (low <= fSup3 and fSup3 <= high) then
nfib = nfib + 1
endif

once nwood = 0

wPivot = (Ht + Bs + 2 * C) / 4
wRes3 = wPivot + ((Ht - Bs)*2)
wRes2 = wPivot + Ht - Bs
wRes1 = (2 * wPivot) - Bs
wSup1 = (2 * wPivot) - Ht
wSup2 = wPivot - (Ht - Bs)
wSup3 = wPivot - ((Ht - Bs)*2)

if (low <= wPivot and wPivot <= high) or (low <= wRes3 and wRes3 <= high) or (low <= wRes2 and wRes2 <= high) or (low <= wRes1 and wRes1 <= high) or (low <= wSup1 and wSup1 <= high) or (low <= wSup2 and wSup2 <= high) or (low <= wSup3 and wSup3 <= high) then
nwood = nwood + 1
endif

return nstd as "NSTD", nfib as "NFIB", nwood as "NWOOD"