Bonjour,
Je sais que les points pivots ont été abordés à de nombreuses reprises, j’ai lu notamment:
https://www.prorealcode.com/topic/point-pivot/page/3/
https://www.prorealcode.com/topic/point-pivot/
https://www.prorealcode.com/prorealtime-indicators/daily-weekly-monthly-pivot-points/
J’ai donc repris un code que j’ai simplifié et fait une stratégie test très simple:
// DAX 1 DAY
// PARAMETRES
DEFPARAM CUMULATEORDERS = FALSE
timeframe(1 day, updateonclose)
// POINTS PIVOTS
IF dayofweek <> 1 THEN
Ht = DHigh(1)
Bs = DLow(1)
C = DClose(1)
ENDIF
if dayofweek=5 then
Htfriday=Dhigh(0)
BsFriday=Dlow(0)
CFriday=Dclose(0)
endif
if dayofweek=1 then
Ht = Htfriday
Bs = BsFriday
C = CFriday
endif
Pivot = (Ht + Bs + C) / 3
// VARIABLES
ONCE nblot = 1
PivotDuJour = Pivot[1]
PivotVeille = Pivot
PivotJmoins2= Pivot[2]
timeframe(1 hour, updateonclose)
timeAchat = TIME >= 000000 AND TIME <= 010000
CA1 = dayofweek <> 0
CA2 = PivotVeille < PivotDuJour
CA3 = PivotJmoins2 > PivotVeille
IF timeAchat AND CA1 AND CA2 AND CA3 THEN
BUY nblot SHARES AT MARKET
SET TARGET pPROFIT 100
SET STOP pLOSS 50
ENDIF
timeframe(1 day, updateonclose)
GRAPH Pivot[0] coloured(0,0,255)
GRAPH Pivot[1] coloured(255,0,0)
GRAPH Pivot[2] coloured(100,100,50)
GRAPH Pivot[3] coloured(200,50,100)
Alors c’est moi où Pivot[0] ne donne JAMAIS le pivot de jour ???
Et pourquoi les PIVOT[2] et PIVOT[3] donne des résultats qui se baladent ?
Il n’y a aucune cohérence dans les résultats… Je ne vois pas d’où peut venir le problème…
Et pour terminer, les points Pivots de PRT sont sous le format “Par défaut pour le marché Indices – DAX”.
Mais ça n’indique pas pourquoi le PIVOT[0] donne parfois le résultat du jour, et parfois celui de la veille…
Une idée ?
Mon objectif: Avoir une variable par ex Pivot[0] pour le PP du jour à partir de minuit, Pivot[1] pour celui de la veille, etc…
J’ai tenté une modif, je crois que m’approche, mais j’ai toujours le point pivot de la veille en lieu et place de celui du jour…
// POINTS PIVOTS
IF dayofweek <> 1 THEN
PivotDuJour = (DHigh(1) + DLow(1) + DClose(1)) / 3
PivotJmoins1 = (DHigh(2) + DLow(2) + DClose(2)) / 3
PivotJmoins2 = (DHigh(3) + DLow(3) + DClose(3)) / 3
ENDIF
if dayofweek=5 then
PPD5 = (DHigh(0) + DLow(0) + DClose(0)) / 3
PPD5M1 = (DHigh(1) + DLow(1) + DClose(1)) / 3
PPD5M2 = (DHigh(2) + DLow(2) + DClose(2)) / 3
endif
if dayofweek=1 then
PivotDuJour = PPD5
PivotJmoins1 = PPD5M1
PivotJmoins2 = PPD5M2
endif
GRAPH PivotDuJour coloured(0,0,255)
GRAPH PivotJmoins1 coloured(255,0,0)
GRAPH PivotJmoins2 coloured(100,100,50)
Essaie avec “OpenDayOfWeek” à la place.
Bonjour Nicolas,
J’ai tenté mais le calcul de PRT me donne toujours un résultat différent du graph…
Pourtant:
PivotDuJour = (DHigh(1) + DLow(1) + DClose(1)) / 3
Devrait bien me donner la même valeur que le point pivot de PRT ?
Suis-je le seul à avoir (remarqué) ce problème ?
As-tu des horaires de trading personnalisés pour cet instrument ? La plateforme utilise les vrais données du marché et pas celles affichées à l’écran pour calculer ce type d’indicateur.
Non aucun horaire personnalisés cf capture jointe.
J’ai décidé de grapher Dhigh(1), Dlow(1) et Dclose(1) en pièce jointe.
J’ai regardé à de nombreux endroits. J’ai trouvé des fois où les résultats étaient correct (valeur graph / valeur de la veille).
Mais à de nombreuses reprises, par ex ou le Dclose est farfelue, ou le Dlow en ex ci-joint. La date est sur la capture d’écran.
Je me suis intérogé sur le moment du Dclose en 1H par ex, mais comme le Dlow déraille aussi…
Est-ce que ce problème peut être reproduit ? Et quelle solution ?
Pour connaître les horaires personnalisés du DAX, clic droit sur le graphique et choisir “horaires de trading personnalisés”. Dans ta copie d’écran tu montres les Commodities du Chicago Board, pas celles du DAX 😉
Outre les horaires, vérifier aussi le timezone pour que ce soit bien celui du marché et pas celui adapté à l’horloge de ton ordinateur.
Merci de ta réponse Nicolas.
Il est vrai que je ne maîtrise pas encore tout, loin de là 😉
Nouvelle capture d’écran. J’avais les paramètres du haut, et j’ai changé pour avoir les paramètres du bas. Par contre, les problèmes s’arrangent un peu…
J’ai bien les bons chiffres de la veille mais impossible d’avoir le point pivot du jour…!
// DAX 1 DAY
// PARAMETRES
DEFPARAM CUMULATEORDERS = FALSE
timeframe(1 day, updateonclose)
// POINTS PIVOTS
IF dayofweek <> 1 THEN
PivotDuJour = (DHigh(1) + DLow(1) + DClose(1)) / 3
PivotJmoins1 = (DHigh(2) + DLow(2) + DClose(2)) / 3
PivotJmoins2 = (DHigh(3) + DLow(3) + DClose(3)) / 3
ENDIF
if dayofweek=5 then
PPD5 = (DHigh(0) + DLow(0) + DClose(0)) / 3
PPD5M1 = (DHigh(1) + DLow(1) + DClose(1)) / 3
PPD5M2 = (DHigh(2) + DLow(2) + DClose(2)) / 3
endif
if dayofweek=1 then
PivotDuJour = PPD5
PivotJmoins1 = PPD5M1
PivotJmoins2 = PPD5M2
endif
ONCE nblot = 1
timeframe(1 hour, updateonclose)
timeAchat = TIME >= 000000 AND TIME <= 010000
CA1 = dayofweek <> 0
CA2 = PivotJmoins1 < PivotDuJour
CA3 = PivotJmoins2 > PivotJmoins1
IF timeAchat AND CA1 AND CA2 AND CA3 THEN
BUY nblot SHARES AT MARKET
SET TARGET pPROFIT Aprofit // 46
SET STOP pLOSS Astoploss // 110
ENDIF
timeframe(1 day, updateonclose)
GRAPH PivotDuJour coloured(0,0,255)
GRAPH PivotJmoins1 coloured(255,0,0)
GRAPH PivotJmoins2 coloured(100,100,50)
//GRAPH DHigh(1) coloured(0,0,255)
//GRAPH DLow(1) coloured(255,0,0)
//GRAPH DClose(1) coloured(100,100,50)
// Modifier quantite en fonction des gains
if strategyprofit <> strategyprofit[1] then
if positionperf(1) >= 0 then //si dernière position perdante
//nblot = nblot + 0.7 //alors on incrémente la quantité de perte
nblot = nblot + 0.5
else //si elle est positive
//nblot = 2.9 //alors le compte est remis à zéro
nblot = 1
endif
endif
Une nouvelle idée svp ?
Je voudrais pouvoir travailler sur le point pivot du jour, dans l’exemple du 9 juillet 2020 à 5h00 je voudrais pouvoir récupérer le Pivot Journalier qui est de 12582.0333
Et ça: PivotDuJour = (DHigh(1) + DLow(1) + DClose(1)) / 3
Me donne le point pivot qui est calculé la veille par PRT soit 12627.70000
Il n’est pas utile de déclarer le TIMEFRAME daily pour obtenir des informations des constantes DOPEN, DCLOSE, etc.. Ces valeurs journalières sont accessibles dans n’importe quelle unité de temps.
Je pense que ton problème de décalage vient du fait que tu utilise “updateonclose”, mais comme je l’ai dit, inutile de déclarer un timeframe pour ces instructions.
Le TIMEFRAME c’était pour autre chose. J’ai résolu le problème:
GRAPH (DHigh(1) + DLow(1) + DClose(1)) / 3
Ca, contrairement à tous les codes que j’ai pu lire et tester, donne le résultat du pivot de la veille c’est à dire, vis à vis des infos de l’avant veille. Et enfin la solution (je resteste demain à tête reposée):
GRAPH (DHigh(0) + DLow(0) + DClose(0)) / 3 coloured(0,0,255)
Ca donne les bons résultats à savoir le plus haut (non pas de l’avant veille à cause du (1) …) du plus bas etc… du jour d’avant.
Et là tous mes résultats semble correct.
Nicolas, je te laisse me confirmer svp ?
Ca voudrais dire que même https://www.prorealcode.com/prorealtime-indicators/daily-weekly-monthly-pivot-points/ pose problème.
D’ailleurs je pense que https://www.prorealcode.com/topic/dhigh-dlow-dclose-dont-work-as-expected/ a rencontré un problème sans le comprendre.
Faux, pour moi tout est correct, voir mes copies d’écrans.
J’ai fait un indicateur, un GRAPH (DHigh(1) + DLow(1) + DClose(1)) / 3 , et appliqué l’indicateur de points pivots de la plateforme et tout est identique.
Vérifie à nouveau les horaires personnalisés (voir ci-joint aussi).
Code de l’indic:
return (DHigh(1) + DLow(1) + DClose(1)) / 3
Code de la stratégie :
a=0
if a=1 then
buy at market
endif
GRAPH (DHigh(1) + DLow(1) + DClose(1)) / 3
J’arrête là pour ce soir, il est tard, à demain.
Moi aussi ça fonctionne pour le 29 juillet, cf capture d’écran.
MAIS ça ne fonctionne pas pour le mardi 28 juillet… cd aussi capture d’écran.
Je n’ai aucune valeur personnalisé, j’ai exactement comme toi (cf capture d’écran de mon précédent post).
Je comprends pas…
Bonjour Nicolas,
J’ai à nouveau retesté et j’obtiens toujours le même problème. J’ai cette fois utilisé ton indicateur:
return (DHigh(1) + DLow(1) + DClose(1)) / 3
Cet indicateur se nomme “A suppr” (pour que je pense à le virer 😉
NOTE:
Si on pouvait avoir des répertoires pour y mettre les indicateurs et les stratégies se serait top ! Ainsi les classements seraient plus facile 😉
DONC: Les PP sont corrects pour les 28 et 29 juillet, mais pas pour le 27 juillet de cette année… Alors que dans le test de mon précédent message, le 28 était correct !!!
Alors certes il n’y a “que” 70 d’écart dans mon dernier exemple et environ 60 dans le précédent… mais il ne devrait pas y avoir de décalage.
Et 70 points dans une stratégie c’est énorme 😉
As-tu une explication ? Car je bloque et je ne peux pas du tout avancer dans ma stratégie.
Je rappel que les horaires de trading ne sont pas différente des tiennes d’ailleurs, je n’aurais aucun point pivot de correct je pense.