Rechercher sur le site

SAR ATD dans PRT

Aller au dernier message
Posté par : philippulus le 28 Mar 2006, 21:51
Pour que le SAR ATD reprogrammé ne présente pas de décalage lors de la première parabole, il suffit de changer un seul paramètre dans le code du programme:

Il faut écrire 1 au lieu de 2 dans la première ligne:


if barindex < 1 then

facteur = 0.02
tmpSAR = low
extreme = low
tendance = 1

else
if tendance[ 1 ] = 1 then
extreme = max( extreme[ 1 ], high )

if tmpSAR[1] > low then
tendance = -1
facteur = 0.02
tmp = max(high,high[1])
tmpSAR = max(extreme, tmp)
extreme = low
else
if extreme > extreme[1] and facteur <0.2 then
facteur = facteur+0.02
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = min(low,low[1])
tmpSAR = min(tmpSAR,tmp)
endif
else
extreme = min( extreme[ 1 ], low )

if tmpSAR[1] <high then
tendance = 1
facteur = 0.02
tmp = min(low,low[1])
tmpSAR = min(extreme,tmp)
extreme = high
else
if extreme < extreme[1] and facteur <0.2 then
facteur = facteur+0.02
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = max(high,high[1])
tmpSAR = max(tmpSAR,tmp)
endif
endif

endif

return tmpSAR[1]


Voici la comparaison du SAR ATD par défaut et du SAR reprogrammé de cette façon (avec 1 dans la première ligne):



Avec l'ancien code (2 dans la première ligne) il y avait un décalage:




C'était tout bête, encore fallait-il essayer

Je viens de changer ce code dans le tutoriel correspondant.

Nicolas
"La première panacée d'un gouvernement mal géré, c'est l'inflation de la devise. La deuxième, c'est la guerre. Toutes deux apportent une prospérité temporaire ; toutes deux apportent une ruine plus permanente". Hemingway --- Mon blog: http://philippulus.daily-bourse.fr/
Posté par : joe coe le 28 Mar 2006, 21:53
philippulus a écrit:
Pour que le SAR ATD reprogrammé ne présente pas de décalage lors de la première parabole, il suffit de changer un seul paramètre dans le code du programme:

Il faut écrire 1 au lieu de 2 dans la première ligne:


if barindex < 1 then

facteur = 0.02
tmpSAR = low
extreme = low
tendance = 1

else
if tendance[ 1 ] = 1 then
extreme = max( extreme[ 1 ], high )

if tmpSAR[1] > low then
tendance = -1
facteur = 0.02
tmp = max(high,high[1])
tmpSAR = max(extreme, tmp)
extreme = low
else
if extreme > extreme[1] and facteur <0.2 then
facteur = facteur+0.02
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = min(low,low[1])
tmpSAR = min(tmpSAR,tmp)
endif
else
extreme = min( extreme[ 1 ], low )

if tmpSAR[1] <high then
tendance = 1
facteur = 0.02
tmp = min(low,low[1])
tmpSAR = min(extreme,tmp)
extreme = high
else
if extreme < extreme[1] and facteur <0.2 then
facteur = facteur+0.02
endif
tmpSAR = tmpSAR[1]+facteur*(extreme-tmpSAR[1])
tmp = max(high,high[1])
tmpSAR = max(tmpSAR,tmp)
endif
endif

endif

return tmpSAR[1]


Voici la comparaison du SAR ATD par défaut et du SAR reprogrammé de cette façon (avec 1 dans la première ligne):


Cliquez pour élargir cette image.

Avec l'ancien code (2 dans la première ligne) il y avait un décalage:


Cliquez pour élargir cette image.


C'était tout bête, encore fallait-il essayer

Je viens de changer ce code dans le tutoriel correspondant.

Nicolas

merci
Je suis le maître de mon destin,Je suis le capitaine de mon âme.
Posté par : erico le 28 Mar 2006, 22:03
tu avais raté un épisode alors, car je l'avais déjà comme ça depuis un moment.

Citation:
if tendance[ 1 ] = 1 then
extreme = max( extreme[ 1 ], high )


Posté par : philippulus le 28 Mar 2006, 22:05
erico a écrit:
tu avais raté un épisode alors, car je l'avais déjà comme ça depuis un moment.
Ben, fallait le dire alors
Est-ce que ton code complet est différent de celui que j'ai posté plus haut ?
Si oui, peux-tu le poster ?

Merci,

Nicolas
"La première panacée d'un gouvernement mal géré, c'est l'inflation de la devise. La deuxième, c'est la guerre. Toutes deux apportent une prospérité temporaire ; toutes deux apportent une ruine plus permanente". Hemingway --- Mon blog: http://philippulus.daily-bourse.fr/
Posté par : erico le 28 Mar 2006, 22:08
philippulus a écrit:
erico a écrit:
tu avais raté un épisode alors, car je l'avais déjà comme ça depuis un moment.
Ben, fallait le dire alors
Est-ce que ton code complet est différent de celui que j'ai posté plus haut ?
Si oui, peux-tu le poster ?
Merci,
Nicolas
je ne sais pas.
vérifie...
on le doit à notre ami jcp

if tendance[ 1 ] = 1 then
extreme = max( extreme[ 1 ], high )

if tmpSAR[1] > low then
tendance = -1
facteur = 0.02
tmpSAR = extreme
extreme = low
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])
tmpSAR = min(tmpSAR,min(low,low[1]))
endif
elsif tendance[1] = -1 then
extreme = min( extreme[ 1 ], low )

if tmpSAR[1] <high then
tendance = 1
facteur = 0.02
tmpSAR = extreme
extreme = high
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])
tmpSAR = max(tmpSAR,max(high,high[1]))
endif
else
facteur = 0.02
tmpSAR = low
extreme = high
tendance = 1
endif

return tmpSAR[1] coloured by tendance[1]
bourse