1

Sujet : TD DeMarker I - [ProRealTime]

J'avais codé cet indicateur il y'a 2 mois après avoir lu le super bouquin "Nouvelles approches en analyses techniques"!
Je vous colle un extrait du bouquin qui m'a inspiré :

Le TD DeMarker I compare les plus hauts et les plus bas des barres de prix actuelles et précédentes. Si le plus haut de la barre actuelle est supérieure au plus haut de la barre de prix précédente, la différence est calculée et enregistrée. Cependant si la différence est négative ou égale à 0, il est attribué un zéro à cette barre de prix. Une comparaison similaire des plus hauts et les mêmes calculs sont réalisés sur une période supplémentaire de 13 barres de prix consécutives ; les différences respectives sont additionnées et cette valeur devient le numérateur de l'équation du TD DeMarker I.

La valeur du dénominateur correspond au numérateur plus la somme des différences entre les plus bas des barres de prix précédentes et actuelles, calculées sur une période de 13 barres de prix consécutives. Si le plus bas de la barre de prix précédente est inférieur ou égal au plus bas de la barre de prix actuelle, un zéro est attribué à la valeur de cette barre. de prix. Puis la valeur du numérateur est divisée par la valeur du dénominateur et ce résultat peut fluctuer entre 100 et 0, est reproduit ensuite sur un graphique en dessous de l'activité sous jacente des prix.

Je me suis aperçu plus tard qu'il existait déjà et de manière plus optimisé sur le blog de SOHOCOOL!
Je vous colle les 2 bouts de code. Le mien sert plus à capter comment ça marche car il suit la démarche du bouquin.
Par contre dans la vraie vie, il faut mieux utiliser celui de SOHOCOOL. Bref enjoy! default/wink

TD DeMarker I - Laurent - http://www.actubourse.fr

// Period = 14

DiffHigh = 0
DiffLow = 0

FOR n = 0 TO Period - 1 DO
   
    IF (High[n] > High[n + 1]) THEN
        DiffHigh = DiffHigh + (High[n] - High[n + 1])
    ENDIF
   
    IF (Low[n + 1]  > Low[n]) then
        DiffLow = DiffLow + (Low[n + 1] - Low[n])
    ENDIF
   
NEXT

Numerator = DiffHigh
Denominator = Numerator + DiffLow

IndicDM = Numerator / Denominator * 100

Return IndicDM  as "TD Demark I", 25 as "25", 75 as "75"


TD DeMarker I - SOHOCOOL - http://sohocool.over-blog.com/

// variable : p = période (défaut =14)

if high > high[1]   then
demax = high - high[1]
else
demax = 0
endif

if low < low[1] then
demin = low[1]-low
else
demin =0
endif

a1 = Average[p](demax)
a2 = Average[p](demin)

dmark =100*( a1 /  ( a1 + a2 ))



return dmark as "demark",30 as"30",70 as"70",50 as "50"