Bonjour,
je découvre le forum, alors soyez indulgents si je commets une erreur dans le protocole :).
j’ai vu de nombreux articles sur les points pivots mais aucun ne me semble aborder le sujet de la cohérence du résultat calculé avec l’indicateur intégré à PRT.
D’ailleurs il est dommage que ce dernier ne puisse pas être appelé par code comme bon nombre d’autres indicateurs, évitant ainsi à chacun de devoir les recalculer…
Bref, voici mon problème : le code utilisant DHigh, DLow et DClose ne renvoie pas les mêmes valeurs que l’indicateur PRT.
Voici le code ultra simple utilisé :
DprevH=DHigh(1)
DprevL=DLow(1)
DprevC=DClose(1)
DprevO=DOpen(1)
dailyPivot = (DprevH + DprevL + DprevC) / 3
Return dailyPivot as "LL Daily P", DprevO as "LL DprevO", DprevC as "LL DprevC", DprevL as "LL DprevL", DprevH as "LL DprevH"
Je joins le résultat sur le graphique des prix en attachement.
En pointillés : les valeurs des plus hauts, bas, clôture de la veille et pivot fournis par indicateurs intégrés PRT.
En traits pleins les valeurs calculées par le code ci-dessus.
Tout se passe comme si DHigh and Co calculent avec un décalage d’une heure : la période entre 00h00 et 01h00 est considérée comme appartenant au jour précédent.
PS : j’ai changé les fuseaux horaires mais ça ne semble pas avoir d’influence…
Comprenez vous ce qui se passe et pouvez vous m’aider à contourner ce problème ?
Merci.
J’ai aussi remarqué cela sur certains instruments, je vais me renseigner.
Merci,
peut-être lié aux instruments côtés 24/24 comme les CFD sur futures sur indices…
Bonjour,
j’ai corrigé avec le code suivant qui n’utilise pas Day, DHigh, DLow etc…
Toutes ces fonctions semblent calées sur le fuseau UTC+00:00, ce qui n’est pas le cas de l’indicateur PRT de pivots.
J’ai pu corriger en réécrivant le code en me basant sur les index de barres :
If IntradayBarIndex=0 then
if prevPeriodBarIndex<>-1 then
periodHigh = Highest[BarIndex - prevPeriodBarIndex](High)[1]
periodLow = Lowest[BarIndex - prevPeriodBarIndex](Low)[1]
periodClose = Close[1]
periodOpen = Open[prevPeriodBarIndex]
If mode = 0 then
periodPivot = (periodHigh + periodLow + periodClose) / 3
Elsif mode = 1 then
periodPivot = (periodOpen + periodHigh + periodLow + periodClose) / 4
Elsif mode = 2 then
periodPivot = (periodHigh + periodLow + periodClose*2) / 4
Else
periodPivot = (periodOpen*2 + periodHigh + periodLow) / 4
Endif
periodR1 = 2*periodPivot - periodLow
periodS1 = 2*periodPivot - periodHigh
periodR2 = periodPivot + (periodHigh - periodLow)
periodS2 = periodPivot - (periodHigh - periodLow)
periodR3 = periodR1 + (periodHigh - periodLow)
periodS3 = periodS1 - (periodHigh - periodLow)
Endif
prevPeriodBarIndex = BarIndex
Endif
Le comportement des fonctions D* reste à expliciter.
Bonjour,
Je débute en programmation et je serai intéressée par votre code.
Lorsque je l’exécute, j’ai l’erreur suivante : Erreur de syntaxe. Veuillez définir la variable mode
Pourriez-vous m’aider à le faire fonctionner ?
Je vous remercie.
Très bonne journée.