Décalage d'une heure dans le calcul des points pivot
- This topic has 4 replies, 3 voices, and was last updated 5 years ago by .
Viewing 5 posts - 1 through 5 (of 5 total)
Viewing 5 posts - 1 through 5 (of 5 total)
Similar topics:
Forums › ProRealTime forum Français › Support ProBuilder › Décalage d'une heure dans le calcul des points pivot
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é :
|
1 2 3 4 5 6 7 8 |
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.
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 :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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.
Find exclusive trading pro-tools on 