ProRealTime
Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum

Re: PP Points pivots - Solution stable pour tous

par Robinhood » 07 mars 2019 11:26

Salut à tous,

Pour info je viens de créer un nouveau drive dédié au partage de mes outils.

Le lien à utiliser est désormais le suivant : https://1drv.ms/f/s!Apct-MPjRX6Cd7leOKFODn1Creo

J'ai désactivé l'ancien lien.

Pour info le dernier rapport PP accessible ce trouve à la racine de ce lien drive. Il s'agit du fichier "PP_reports.xlsx".

Les rapports PP historiques sont dispo dans le dossier "HISTORY".

Vous pouvez me contacter en passant par l'email indiqué en cellule A1 de l'onglet "CONTACT".



:merci:

Re: PP Points pivots - Solution stable pour tous

par Robinhood » 07 mars 2019 14:26

UP pour tous ceux qui m'ont demandé laccès

Re: PP Points pivots - Solution stable pour tous

par kondor7 » 07 mars 2019 15:26

Merci à toi Robinhood :top:

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 07 mars 2019 17:20

:merci: robinhood ,

Re: PP Points pivots - Solution stable pour tous

par Zefte » 08 mars 2019 01:18

Hello,

J'ai apporté quelques modifications mineures au code. C'est une version personnalisée, à vous d'adapter.

Changelog :

- Voffset > défini par indice car la valeur du point dépend de l'indice donc décalage entre le texte et la ligne plus adapté ; a adapter également selon l'UT utilisée (UT plus grande = texte plus proche du niveau)
- suppression des variables intermédiaires (du genre R1JJ ou PPMM) dans le calcul de l'alignement du prix sur le C.FD
- ajout d'un nom pour chaque ligne dans les propriétés de l'indicateur et dans les détails du curseurs (si l'option est activée)
- utilisation de return uniquement pour le tracé des lignes et l'affichage en couleur sur l'axe du prix
- changement de pipsize par pointsize
- changement du calcul des niveaux ronds (affichage des niveaux 50/100 sur 2 niveaux au-dessus du prix et 2 en dessous)
- changement des indices (CAC -DAX - DOW - NASDAQ) les plus traités jusqu'à présent


Code qui sera à adapter en fonction de l'évolution du prix des indices.
Attention pour ceux qui tradent le F.TSE qui sera dans la même échelle de prix que le NASDAQ.

J'ai essayé d'intégrer le Pivot 4H en prenant la valeur calculée dans PRT depuis le Futures ou depuis le C.FD car j'avais noté qu'à l'inverse des autres Pivots, le pivot 4H est basé selon les plages horaires du graphiques. Mais même en changeant les plages horaires de cotation le calcul de l'indicateur démarre quoi qu'il arrive à l'ouverture du marché. Donc 09h pour le DAX par ex. Impossible de changer ca. La seule manière c'est le calculer à la main. Je l'ai fait une fois en vérifiant la donnée sur la file du jour. C'était bon à 0.3 pts près. Mais bon... faire ca chaque jour c'est lourd. On trouvera certainement une solution à l'avenir.

Code : #

REM PP Futures sur graphiques cfd à risque limité (v.2)
REM Diff= Prix contrat future - Prix cfd à risque limité
REM Attention à bien prendre le contrat future le plus liquide (= échance la plus proche) et en lot plein

defparam drawonlastbaronly = true

///////////////////////////////////// VARIABLES /////////////////////////////////////////

// CAC
if close>4000 and close<6000 then
diff=0.9
HighJ=5314.5
LowJ=5276.5
SettlementJ=7165.5
HighH=5285.5
LowH=5195.5
SettlementH=5263
HighM=5247.5
LowM=4945
SettlementM=5239
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// NASDAQ
if close>6000 and close<8000 then
diff=-2.2
HighJ=7182.0
LowJ=7124.25
SettlementJ=7165.5
HighH=7168.5
LowH=7048.0
SettlementH=7156.0
HighM=7168.5
LowM=6841.0
SettlementM=7102.5
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// DAX
if close>9000 and close<15000 then
Diff=-1.5
HighJ=11653.5
LowJ=11560.5
SettlementJ=11589.5
HighH=11676.86
LowH=11419.40
SettlementH=11601.68
HighM=11556.87
LowM=10863.56
SettlementM=11515.64
// décalage vertical texte/lignes horizontales
Voffset=2*pointsize
endif

// DOW
if close>20000 and close<30000 then
diff=13.7
HighJ=25832
LowJ=25625
SettlementJ=25666
HighH=26238
LowH=25872
SettlementH=26031
HighM=26238
LowM=24862
SettlementM=25913
// décalage vertical texte/lignes horizontales
Voffset=4*pointsize
endif

////////////////////////////////////// CALCULS //////////////////////////////////////////

// POINTS PIVOTS JOURNALIERS
PPJ = (HighJ + LowJ + SettlementJ) / 3
R3J = HighJ + 2 * (PPJ - LowJ)
R2J = PPJ + (HighJ - LowJ)
R1J = (2 * PPJ) - LowJ
S1J = (2 * PPJ) - HighJ
S2J = PPJ - (HighJ - LowJ)
S3J = LowJ - 2 * (HighJ - PPJ)
HighJ=HighJ + Diff
LowJ=LowJ + Diff
SettlementJ = SettlementJ + Diff
PPJ = PPJ + Diff
R3J = R3J + Diff
R2J = R2J + Diff
R1J = R1J + Diff
S1J = S1J + Diff
S2J = S2J + Diff
S3J = S3J + Diff
midR3J = (R2J + R3J) / 2
midR2J = (R1J + R2J) / 2
midR1J = (PPJ + R1J) / 2
midS1J = (PPJ + S1J) / 2
midS2J = (S1J + S2J) / 2
midS3J = (S2J + S3J) / 2

// POINTS PIVOTS HEBDO
PPH = (HighH + LowH + SettlementH) / 3
R3H = HighH + 2 * (PPH - LowH)
R2H = PPH + (HighH - LowH)
R1H = (2 * PPH) - LowH
S1H = (2 * PPH) - HighH
S2H = PPH - (HighH - LowH)
S3H = LowH - 2 * (HighH - PPH)
HighH=HighH + Diff
LowH=LowH + Diff
SettlementH = SettlementH + Diff
PPH = PPH + Diff
R3H = R3H + Diff
R2H = R2H + Diff
R1H = R1H + Diff
S1H = S1H + Diff
S2H = S2H + Diff
S3H = S3H + Diff
midR3H = (R2H + R3H) / 2
midR2H = (R1H + R2H) / 2
midR1H = (PPH + R1H) / 2
midS1H = (PPH + S1H) / 2
midS2H = (S1H + S2H) / 2
midS3H = (S2H + S3H) / 2

// POINTS PIVOTS MENSUELS
PPM = (HighM + LowM + SettlementM) / 3
R3M = HighM + 2 * (PPM - LowM)
R2M = PPM + (HighM - LowM)
R1M = (2 * PPM) - LowM
S1M = (2 * PPM) - HighM
S2M = PPM - (HighM - LowM)
S3M = LowM - 2 * (HighM - PPM)
HighM=HighM + Diff
LowM=LowM + Diff
SettlementM = SettlementM + Diff
PPM = PPM + Diff
R3M = R3M + Diff
R2M = R2M + Diff
R1M = R1M + Diff
S1M = S1M + Diff
S2M = S2M + Diff
S3M = S3M + Diff
midR3M = (R2M + R3M) / 2
midR2M = (R1M + R2M) / 2
midR1M = (PPM + R1M) / 2
midS1M = (PPM + S1M) / 2
midS2M = (S1M + S2M) / 2
midS3M = (S2M + S3M) / 2

/////////////////////////////////// NIVEAUX RONDS ///////////////////////////////////////

roundnumber = 50

for i = 1 to roundnumber do
if(close+i*pointsize) mod roundnumber*pointsize = 0 then
upper = round(close+i*pointsize)
if upper mod roundnumber = 1 then
upper=upper-1
endif
break
endif
next

for i = roundnumber downto 1 do
if(close-i*pointsize) mod roundnumber*pointsize = 0 then
lower = round(close-i*pointsize)
if lower mod roundnumber = 1 then
lower = lower -1
endif
break
endif
next

for i = 1 to roundnumber do
if(upper+i*pointsize) mod roundnumber*pointsize = 0 then
upper1 = round(upper+i*pointsize)
if upper1 mod roundnumber = 1 then
upper1=upper1-1
endif
break
endif
next

for i = roundnumber downto 1 do
if(lower-i*pointsize) mod roundnumber*pointsize = 0 then
lower1 = round(lower-i*pointsize)
if lower1 mod roundnumber = 1 then
lower1 = lower -1
endif
break
endif
next

///////////////////////////////////// AFFICHAGE /////////////////////////////////////////

DRAWTEXT("Haut J",barindex-4,HighJ+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Bas J",barindex-4,LowJ+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Haut H",barindex-4,HighH+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Bas H",barindex-4,LowH+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Haut M",barindex-4,HighM+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Bas M",barindex-4,LowM+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Settle J",barindex-4,SettlementJ+Voffset,SansSerif,Bold)coloured(255,255,0)
DRAWTEXT("Settle H",barindex-4,SettlementH+Voffset,SansSerif,Bold)coloured(255,255,0)
DRAWTEXT("Settle M",barindex-4,SettlementM+Voffset,SansSerif,Bold)coloured(255,255,0)
DRAWTEXT("Piv J",barindex-4,PPJ+Voffset,SansSerif,Bold)coloured(0, 0, 0)
DRAWTEXT("Piv H",barindex-4,PPH+Voffset,SansSerif,Bold)coloured(0, 0, 0)
DRAWTEXT("Piv M",barindex-4,PPM+Voffset,SansSerif,Bold)coloured(0, 0, 0)
DRAWTEXT("R3J",barindex-4,R3J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R2J",barindex-4,R2J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R1J",barindex-4,R1J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("S1J",barindex-4,S1J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S2J",barindex-4,S2J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S3J",barindex-4,S3J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("R3H",barindex-4,R3H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R2H",barindex-4,R2H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R1H",barindex-4,R1H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("S1H",barindex-4,S1H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S2H",barindex-4,S2H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S3H",barindex-4,S3H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("R3M",barindex-4,R3M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R2M",barindex-4,R2M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R1M",barindex-4,R1M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("S1M",barindex-4,S1M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S2M",barindex-4,S2M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S3M",barindex-4,S3M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midR3J",barindex-4,midR3J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR2J",barindex-4,midR2J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR1J",barindex-4,midR1J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midS1J",barindex-4,midS1J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS2J",barindex-4,midS2J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS3J",barindex-4,midS3J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midR3H",barindex-4,midR3H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR2H",barindex-4,midR2H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR1H",barindex-4,midR1H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midS1H",barindex-4,midS1H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS2H",barindex-4,midS2H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS3H",barindex-4,midS3H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midR3M",barindex-4,midR3M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR2M",barindex-4,midR2M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR1M",barindex-4,midR1M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midS1M",barindex-4,midS1M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS2M",barindex-4,midS2M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS3M",barindex-4,midS3M+Voffset,SansSerif,Bold)coloured(0, 128, 0)

DRAWHLINE(upper) COLOURED(255, 127, 80)
DRAWHLINE(upper1) COLOURED(255, 127, 80)
DRAWHLINE(lower) COLOURED(255, 127, 80)
DRAWHLINE(lower1) COLOURED(255, 127, 80)

Return HighJ COLOURED(127, 255, 212) STYLE(DOTTEDLINE) AS "HighJ", LowJ COLOURED(127,255,212) STYLE(DOTTEDLINE) AS "LowJ", HighH COLOURED(127, 255, 212) STYLE(DOTTEDLINE) AS "HighH", LowH COLOURED(127,255,212) STYLE(DOTTEDLINE) AS "LowH", HighM COLOURED(127, 255, 212) STYLE(DOTTEDLINE) AS "HighM", LowM COLOURED(127,255,212) STYLE(DOTTEDLINE) AS "LowM", SettlementJ COLOURED(255,255,0) STYLE(DOTTEDLINE) AS "SettlementJ", SettlementH COLOURED(255,255,0) STYLE(DOTTEDLINE) AS "SettlementH", SettlementM COLOURED(255,255,0) STYLE(DOTTEDLINE) AS "SettlementM", PPJ COLOURED(0,0,0) STYLE(LINE) AS "PPJ", PPH COLOURED(0,0,0) STYLE(LINE) AS "PPH", PPM COLOURED(0,0,0) STYLE(LINE) AS "PPM", S1J COLOURED(0, 128, 0) STYLE(LINE) AS "S1J", S2J COLOURED(0, 128, 0) STYLE(LINE) AS "S2J", S3J COLOURED(0, 128, 0) STYLE(LINE) AS "S3J", S1H COLOURED(0, 128, 0) STYLE(LINE) AS "S1H", S2H COLOURED(0, 128, 0) STYLE(LINE) AS "S2H", S3H COLOURED(0, 128, 0) STYLE(LINE) AS "S3H", S1M COLOURED(0, 128, 0) STYLE(LINE) AS "S1M", S2M COLOURED(0, 128, 0) STYLE(LINE) AS "S2M", S3M COLOURED(0, 128, 0) STYLE(LINE) AS "S3M", R1J COLOURED(255, 0, 0) STYLE(LINE) AS "R1J", R2J COLOURED(255, 0, 0) STYLE(LINE) AS "R2J", R3J COLOURED(255, 0, 0) STYLE(LINE) AS "R3J", R1H COLOURED(255, 0, 0) STYLE(LINE) AS "R1H", R2H COLOURED(255, 0, 0) STYLE(LINE) AS "R2H", R3H COLOURED(255, 0, 0) STYLE(LINE) AS "R3H", R1M COLOURED(255, 0, 0) STYLE(LINE) AS "R1M", R2M COLOURED(255, 0, 0) STYLE(LINE) AS "R2M", R3M COLOURED(255, 0, 0) STYLE(LINE) AS "R3M", upper COLOURED(255, 127, 80, 0) STYLE(POINT) AS "NivRondSup1", upper1 COLOURED(255, 127, 80, 0) STYLE(POINT) AS "NivRondSup2", lower COLOURED(255, 127, 80, 0) STYLE(POINT) AS "NivRondInf1", lower1 COLOURED(255, 127, 80, 0) STYLE(POINT) AS "NivRondInf2", midS1J COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS1J", midS2J COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS2J", midS3J COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS3J", midS1H COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS1H", midS2H COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS2H", midS3H COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS3H", midS1M COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS1M", midS2M COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS2M", midS3M COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS3M", midR1J COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR1J", midR2J COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR2J", midR3J COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR3J", midR1H COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR1H", midR2H COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR2H", midR3H COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR3H", midR1M COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR1M", midR2M COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR2M", midR3M COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR3M"
A vous de jouer :arrow:

Re: PP Points pivots - Solution stable pour tous

par Robinhood » 08 mars 2019 07:16

Parfait merci Zefte.

Je vais créer une nouvelle file V2 pour plus de clarté avec tout à savoir directement sur le 1er message de la file.

Have a good day++
Edit :


- Attention tu as inversé la variable diff dans ton code. Diff = cash - futures et non futures - cash
- J'ai remis dans l'ancien ordre les indices pour plus de cohérence avec l'onglet "short" du fichier XL quotidien
- Pour les points figures, les calculs de boucle sont longs (ça boucle en permanence, c'est qlq chose qu'il faut éviter au maximum). J'ai peur que ça ralentisse tout, surtout quand le flux sera important. J'ai remis l'ancien calcul
- J'ai utilisé drawline pour les niveaux majeurs et laissé les mid en "return" pour une meilleure lisibilité. Ça permet de prolonger les lignes sur la droite (comme tu avais fait avec les niveaux figures). Du coup j'ai mis les figures 00 en drawline et les figures 50 en return. Ça permet de conserver une forme d'homogénéité avec les PP majeurs et PP mid dans l'affichage
- J'ai modifié l'en tête en donnant les équations exactes de diff :

REM PP Futures sur graphiques CF.D cash (v.2)
REM Diff= CF.D cash - CF.D futures
REM Attention à bien prendre le contrat future le plus liquide (= échance la plus proche) et en lot plein
REM Exemple avec le Dow => spread à utiliser = CF.D Dow cash 10$ - CF.D Dow Futures (échéance la plus proche, 3 mois) 10$
REM Exemple avec le nasdaq => spread à utiliser = CF.D nasdaq cash 100$ - CF.D nasdaq Futures (échéance la plus proche, 3 mois) 100$
REM Exemple avec le indice anglais => spread à utiliser = CF.D indice anglais cash 10£ - CF.D indice anglais Futures (échéance la plus proche, 3 mois) 10£
REM Exemple avec le Dax => spread à utiliser = CF.D Dax cash 25€ - CF.D Dax Futures (échéance la plus proche, 3 mois) 25€
REM Exemple avec le Cac => spread à utiliser = CF.D Cac cash 10€ - CF.D Cac Futures (échéance la plus proche, 1 mois) 10€

Il est clair qu'il faut encore améliorer la lisibilité :-)

Encore merci Zefte pour ta contribution :merci:

Re: PP Points pivots - Solution stable pour tous

par Zefte » 08 mars 2019 10:43

Impec Robinhood.

Du coup voici le nouveaux code avec nos modifications conjointes :

Code : #

REM PP Futures sur graphiques CF.D cash (v.2)
REM Diff= CF.D cash - CF.D futures
REM Attention à bien prendre le contrat future le plus liquide (= échance la plus proche) et en lot plein
REM Exemple avec le Dow => spread à utiliser = CF.D Dow cash 10$ - CF.D Dow Futures (échéance la plus proche, 3 mois) 10$
REM Exemple avec le Nasdaq => spread à utiliser = CF.D Nasdaq cash 100$ - CF.D Nasdaq Futures (échéance la plus proche, 3 mois) 100$
REM Exemple avec le indice anglais => spread à utiliser = CF.D indice anglais cash 10£ - CF.D indice anglais Futures (échéance la plus proche, 3 mois) 10£
REM Exemple avec le Dax => spread à utiliser = CF.D Dax cash 25€ - CF.D Dax Futures (échéance la plus proche, 3 mois) 25€
REM Exemple avec le Cac => spread à utiliser = CF.D Cac cash 10€ - CF.D Cac Futures (échéance la plus proche, 1 mois) 10€

defparam drawonlastbaronly = true

///////////////////////////////////// VARIABLES /////////////////////////////////////////

// DOW
if close>20000 and close<30000 then
diff=13.7
HighJ=25832
LowJ=25625
SettlementJ=25666
HighH=26238
LowH=25872
SettlementH=26031
HighM=26238
LowM=24862
SettlementM=25913
// décalage vertical texte/lignes horizontales
Voffset=4*pointsize
endif

// NASDAQ
if close>6000 and close<8000 then
diff=-2.2
HighJ=7182.0
LowJ=7124.25
SettlementJ=7165.5
HighH=7168.5
LowH=7048.0
SettlementH=7156.0
HighM=7168.5
LowM=6841.0
SettlementM=7102.5
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// CAC
if close>4000 and close<6000 then
diff=0.9
HighJ=5314.5
LowJ=5276.5
SettlementJ=7165.5
HighH=5285.5
LowH=5195.5
SettlementH=5263
HighM=5247.5
LowM=4945
SettlementM=5239
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// DAX
if close>9000 and close<15000 then
Diff=-1.6
HighJ=11614
LowJ=11448.5
SettlementJ=11510.5
HighH=11675.5
LowH=11397
SettlementH=11599.5
HighM=11555.5
LowM=10856.5
SettlementM=11520
// décalage vertical texte/lignes horizontales
Voffset=2*pointsize
endif

////////////////////////////////////// CALCULS //////////////////////////////////////////

// POINTS PIVOTS JOURNALIERS
PPJ = (HighJ + LowJ + SettlementJ) / 3
R3J = HighJ + 2 * (PPJ - LowJ)
R2J = PPJ + (HighJ - LowJ)
R1J = (2 * PPJ) - LowJ
S1J = (2 * PPJ) - HighJ
S2J = PPJ - (HighJ - LowJ)
S3J = LowJ - 2 * (HighJ - PPJ)
HighJ=HighJ + Diff
LowJ=LowJ + Diff
SettlementJ = SettlementJ + Diff
PPJ = PPJ + Diff
R3J = R3J + Diff
R2J = R2J + Diff
R1J = R1J + Diff
S1J = S1J + Diff
S2J = S2J + Diff
S3J = S3J + Diff
midR3J = (R2J + R3J) / 2
midR2J = (R1J + R2J) / 2
midR1J = (PPJ + R1J) / 2
midS1J = (PPJ + S1J) / 2
midS2J = (S1J + S2J) / 2
midS3J = (S2J + S3J) / 2

// POINTS PIVOTS HEBDO
PPH = (HighH + LowH + SettlementH) / 3
R3H = HighH + 2 * (PPH - LowH)
R2H = PPH + (HighH - LowH)
R1H = (2 * PPH) - LowH
S1H = (2 * PPH) - HighH
S2H = PPH - (HighH - LowH)
S3H = LowH - 2 * (HighH - PPH)
HighH=HighH + Diff
LowH=LowH + Diff
SettlementH = SettlementH + Diff
PPH = PPH + Diff
R3H = R3H + Diff
R2H = R2H + Diff
R1H = R1H + Diff
S1H = S1H + Diff
S2H = S2H + Diff
S3H = S3H + Diff
midR3H = (R2H + R3H) / 2
midR2H = (R1H + R2H) / 2
midR1H = (PPH + R1H) / 2
midS1H = (PPH + S1H) / 2
midS2H = (S1H + S2H) / 2
midS3H = (S2H + S3H) / 2

// POINTS PIVOTS MENSUELS
PPM = (HighM + LowM + SettlementM) / 3
R3M = HighM + 2 * (PPM - LowM)
R2M = PPM + (HighM - LowM)
R1M = (2 * PPM) - LowM
S1M = (2 * PPM) - HighM
S2M = PPM - (HighM - LowM)
S3M = LowM - 2 * (HighM - PPM)
HighM=HighM + Diff
LowM=LowM + Diff
SettlementM = SettlementM + Diff
PPM = PPM + Diff
R3M = R3M + Diff
R2M = R2M + Diff
R1M = R1M + Diff
S1M = S1M + Diff
S2M = S2M + Diff
S3M = S3M + Diff
midR3M = (R2M + R3M) / 2
midR2M = (R1M + R2M) / 2
midR1M = (PPM + R1M) / 2
midS1M = (PPM + S1M) / 2
midS2M = (S1M + S2M) / 2
midS3M = (S2M + S3M) / 2

/////////////////////////////////// NIVEAUX RONDS ///////////////////////////////////////

milieu = SettlementJ
centaine = round(milieu/100) * 100

lp1 = centaine + 50
lp2 = centaine + 100
lp3 = centaine + 150
lp4 = centaine + 200
lm1 = centaine - 50
lm2 = centaine - 100
lm3 = centaine - 150
lm4 = centaine - 200

///////////////////////////////////// AFFICHAGE /////////////////////////////////////////

DRAWTEXT("Haut J",barindex-4,HighJ+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Bas J",barindex-4,LowJ+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Haut H",barindex-4,HighH+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Bas H",barindex-4,LowH+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Haut M",barindex-4,HighM+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Bas M",barindex-4,LowM+Voffset,SansSerif,Bold)coloured(127,255,212)
DRAWTEXT("Settle J",barindex-4,SettlementJ+Voffset,SansSerif,Bold)coloured(255,255,0)
DRAWTEXT("Settle H",barindex-4,SettlementH+Voffset,SansSerif,Bold)coloured(255,255,0)
DRAWTEXT("Settle M",barindex-4,SettlementM+Voffset,SansSerif,Bold)coloured(255,255,0)
DRAWTEXT("Piv J",barindex-4,PPJ+Voffset,SansSerif,Bold)coloured(0, 0, 0)
DRAWTEXT("Piv H",barindex-4,PPH+Voffset,SansSerif,Bold)coloured(0, 0, 0)
DRAWTEXT("Piv M",barindex-4,PPM+Voffset,SansSerif,Bold)coloured(0, 0, 0)
DRAWTEXT("R3J",barindex-4,R3J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R2J",barindex-4,R2J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R1J",barindex-4,R1J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("S1J",barindex-4,S1J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S2J",barindex-4,S2J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S3J",barindex-4,S3J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("R3H",barindex-4,R3H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R2H",barindex-4,R2H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R1H",barindex-4,R1H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("S1H",barindex-4,S1H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S2H",barindex-4,S2H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S3H",barindex-4,S3H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("R3M",barindex-4,R3M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R2M",barindex-4,R2M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("R1M",barindex-4,R1M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("S1M",barindex-4,S1M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S2M",barindex-4,S2M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("S3M",barindex-4,S3M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midR3J",barindex-4,midR3J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR2J",barindex-4,midR2J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR1J",barindex-4,midR1J+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midS1J",barindex-4,midS1J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS2J",barindex-4,midS2J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS3J",barindex-4,midS3J+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midR3H",barindex-4,midR3H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR2H",barindex-4,midR2H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR1H",barindex-4,midR1H+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midS1H",barindex-4,midS1H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS2H",barindex-4,midS2H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS3H",barindex-4,midS3H+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midR3M",barindex-4,midR3M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR2M",barindex-4,midR2M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midR1M",barindex-4,midR1M+Voffset,SansSerif,Bold)coloured(255, 0, 0)
DRAWTEXT("midS1M",barindex-4,midS1M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS2M",barindex-4,midS2M+Voffset,SansSerif,Bold)coloured(0, 128, 0)
DRAWTEXT("midS3M",barindex-4,midS3M+Voffset,SansSerif,Bold)coloured(0, 128, 0)

DRAWHLINE(lp1) COLOURED(255, 127, 80, 0)
DRAWHLINE(lp2) COLOURED(255, 127, 80)
DRAWHLINE(lp3) COLOURED(255, 127, 80, 0)
DRAWHLINE(lp4) COLOURED(255, 127, 80)
DRAWHLINE(lm1) COLOURED(255, 127, 80, 0)
DRAWHLINE(lm2) COLOURED(255, 127, 80)
DRAWHLINE(lm3) COLOURED(255, 127, 80, 0)
DRAWHLINE(lm4) COLOURED(255, 127, 80)

Return HighJ COLOURED(127, 255, 212) STYLE(DOTTEDLINE) AS "HighJ", LowJ COLOURED(127,255,212) STYLE(DOTTEDLINE) AS "LowJ", HighH COLOURED(127, 255, 212) STYLE(DOTTEDLINE) AS "HighH", LowH COLOURED(127,255,212) STYLE(DOTTEDLINE) AS "LowH", HighM COLOURED(127, 255, 212) STYLE(DOTTEDLINE) AS "HighM", LowM COLOURED(127,255,212) STYLE(DOTTEDLINE) AS "LowM", SettlementJ COLOURED(255,255,0) STYLE(DOTTEDLINE) AS "SettlementJ", SettlementH COLOURED(255,255,0) STYLE(DOTTEDLINE) AS "SettlementH", SettlementM COLOURED(255,255,0) STYLE(DOTTEDLINE) AS "SettlementM", PPJ COLOURED(0,0,0) STYLE(LINE) AS "PPJ", PPH COLOURED(0,0,0) STYLE(LINE) AS "PPH", PPM COLOURED(0,0,0) STYLE(LINE) AS "PPM", S1J COLOURED(0, 128, 0) STYLE(LINE) AS "S1J", S2J COLOURED(0, 128, 0) STYLE(LINE) AS "S2J", S3J COLOURED(0, 128, 0) STYLE(LINE) AS "S3J", S1H COLOURED(0, 128, 0) STYLE(LINE) AS "S1H", S2H COLOURED(0, 128, 0) STYLE(LINE) AS "S2H", S3H COLOURED(0, 128, 0) STYLE(LINE) AS "S3H", S1M COLOURED(0, 128, 0) STYLE(LINE) AS "S1M", S2M COLOURED(0, 128, 0) STYLE(LINE) AS "S2M", S3M COLOURED(0, 128, 0) STYLE(LINE) AS "S3M", R1J COLOURED(255, 0, 0) STYLE(LINE) AS "R1J", R2J COLOURED(255, 0, 0) STYLE(LINE) AS "R2J", R3J COLOURED(255, 0, 0) STYLE(LINE) AS "R3J", R1H COLOURED(255, 0, 0) STYLE(LINE) AS "R1H", R2H COLOURED(255, 0, 0) STYLE(LINE) AS "R2H", R3H COLOURED(255, 0, 0) STYLE(LINE) AS "R3H", R1M COLOURED(255, 0, 0) STYLE(LINE) AS "R1M", R2M COLOURED(255, 0, 0) STYLE(LINE) AS "R2M", R3M COLOURED(255, 0, 0) STYLE(LINE) AS "R3M", midS1J COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS1J", midS2J COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS2J", midS3J COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS3J", midS1H COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS1H", midS2H COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS2H", midS3H COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS3H", midS1M COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS1M", midS2M COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS2M", midS3M COLOURED(0, 128, 0) STYLE(DOTTEDLINE) AS "midS3M", midR1J COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR1J", midR2J COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR2J", midR3J COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR3J", midR1H COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR1H", midR2H COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR2H", midR3H COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR3H", midR1M COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR1M", midR2M COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR2M", midR3M COLOURED(255, 0, 0) STYLE(DOTTEDLINE) AS "midR3M", lp1 COLOURED(255, 127, 80) STYLE (DOTTEDLINE) AS "Niveau50", lp2 COLOURED(255, 127, 80) AS "Niveau100", lp3 COLOURED(255, 127, 80) STYLE (DOTTEDLINE) AS "Niveau150", lp4 COLOURED(255, 127, 80) AS "Niveau200", lm1 COLOURED(255, 127, 80) STYLE (DOTTEDLINE) AS "Niveau50", lm2 COLOURED(255, 127, 80) AS "Niveau100", lm3 COLOURED(255, 127, 80) STYLE (DOTTEDLINE) AS "Niveau150", lm4 COLOURED(255, 127, 80) AS "Niveau200"
Je crois qu'on est bon. :top:

Prochaine étape, j'aimerais pouvoir sélectionner les PP que je veux afficher. Par exemple sur un graph 4H, seuls les PP hebdos et mensuels m'interessent. A suivre...

Re: PP Points pivots - Solution stable pour tous

par nonozi » 08 mars 2019 11:21

Ce matin impossible de se connecter au google drive, j'ai compris pourquoi maintenant (changement de site)
Un GRAND merci à vous pour ce travail qui est une vrai valeur ajoutée quand on est que sur cfd à risque limité risques limités. :top:

Zefle, je vois dans ton code que tu as un diff de -1.6 sur le dax : c'est +1.6 aujourd'hui.
il faut que tu modifies tes diff comme l'a indiqué Robinhood, aujourd'hui on est à +1.6 (CDF - FUTURES) ;)

A+

Re: PP Points pivots - Solution stable pour tous

par Zefte » 08 mars 2019 15:25

nonozi > oui c'est une erreur de frappe dans mes propres paramètres. Je me disais bien que les PP étaient bizarres aujourd'hui :lol:
A force de changer cette variable à la main on finit par faire des erreurs, c'est le danger.
Vérifiez bien les variables de chaque indices, je n'ai pas mis à jour la liste, je vous laisse le faire depuis le fichier de Robinhood. Moi je n'utilise que DAX et DOW pour le moment.

Petite remarque personnelle : je garde toujours un graphique C.FD ouvert avec les PP car même s'ils sont faux en théorie, ils marchent parfois très bien. Un exemple à l'instant :
Sans titre 5.png
Sans titre 5.png (113.16 Kio) Vu 515 fois

Re: PP Points pivots - Solution stable pour tous

par Robinhood » 12 mars 2019 08:40

Hello

Pour info bug dans la MAJ ce matin. Je viens de régler le pb.

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 12 mars 2019 10:01

Bonjour à tous,
j'ai un souci avec les points pivots futures : suis en cfd à risque limité à risque limité à risque limités et j'applique la méthode donnée sur le forum mais je n'ai pas les mêmes valeurs ex: MR1 H 11772 ; S1 J 11466,8
j'ai pourtant bien entré les chiffres donnés sur onedrive et mis à jour le spread (maintenant -0.3)
quelqu'un peut-il m'éclairer ou déplacer ma question ?
bontrades

Re: PP Points pivots - Solution stable pour tous

par Zefte » 12 mars 2019 10:24

Salut lopo. Moi je vois un spread DAX à 1.4 à l'instant.
MR1H 11573.4
S1J 11468.2

Tu prends le settlement ou le close ?
J'utilise le settle

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 12 mars 2019 10:27

merci zefte
alors c'est la case "dernier" qu'il faut utiliser dans le spread et pas variation ?
j'utilise settlement sur les données postées le matin

Re: PP Points pivots - Solution stable pour tous

par Zefte » 12 mars 2019 10:30

Oui exactement. La case variation c'est juste la visualisation en pourcentage. Tu dois utiliser la valeur brute (dernier). Dis moi si tu retrouves les mêmes valeurs que moi.

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 12 mars 2019 10:33

ok, j'ai corrigé mais sur le graphique posté par Benoist, la mR1 H était pile sur le rebond :
2019-03-12_9-08-43.png
2019-03-12_9-08-43.png (65.45 Kio) Vu 543 fois

Re: PP Points pivots - Solution stable pour tous

par Zefte » 12 mars 2019 11:35

Je regarde ca lopo

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 12 mars 2019 11:36

:merci: sympa

Re: PP Points pivots - Solution stable pour tous

par Zefte » 12 mars 2019 11:57

Lopo > J'ai recalculé à la main les PPH et ils sont bons. Je pense que la différence est due à l'utilisation du contrat Full Futures de Benoist et pas du Only. Donc le calcul des points pivots est différent quand on se rapproche des échéances et c'est le cas en ce moment. Et plus la période sur laquelle le PP est grande, plus la différence s'accentue (par ex. on la même R1J mais pas la même R1H). Pour plus d'infos je te renvoie vers ce lien : differences-entre-les-futures-dax30only ... 16841.html

Re: PP Points pivots - Solution stable pour tous

par Robinhood » 12 mars 2019 12:03

Parfois les PP futures de prt divergent des PP futures calculés via les données des exchanges (= la source la vraie).

Ca a été évoqué à plusieurs reprises sur Andlil.

Je ne le répèterais jamais assez. Aucun indicateur, aucun niveau n'est fiable à 100%. Donc avoir ça en tête et prendre un peu de recul :-)

Pour rappel mon (notre) outil est basé sur les données officielles des exchanges. Je ne vois pas quoi rajouter de plus à part faire aussi gaffe à la valeur de diff qui bouge en temps réel (rappel, rappel :-)) et s'assurer que son calcul est exact (spread = cash-futures et pas l'inverse, lot plein, échéance la plus proche).

Je prépare la file V2 pour plus de clarté.

Edit : merci Zefte pour le rappel distinction full/only/globex... :-)

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 12 mars 2019 12:07

Merci beaucoup d cet éclairage Zefte ... suis un total ignorant de ce monde que je découvre et j'avoue que j'ai énormément de choses à engranger et à comprendre

j'ai relu toute cette file ce matin pour vérifier si je n'avais pas raté quelque chose et j'en ai profité pour adopter la V2 conjointe à toi et Robinhood :top:

effectivement je ne prenais pas la bonne valeur de diff. et je vais me renseigner sur ces différences de contrats
il va me falloir un peu de temps de pratique et de travail pour me familiariser avec tout ça

Merci pour les réponses et le partage

Sujets similaires
PP Points pivots - Solution stable pour tous V2
Fichier(s) joint(s) par naol » 12 mars 2019 13:00 (56 Réponses)
PP Points pivots - Solution stable pour tous V3
Fichier(s) joint(s) par Amarantine » 21 mai 2019 14:32 (659 Réponses)
Points pivots Prorealtime et IG différents de 20 points
par boniek » 25 juil. 2016 17:58 (12 Réponses)
cfds à risque limité/Future , points pivots et points symboliques
Fichier(s) joint(s) par Benoist Rousseau » 08 févr. 2021 15:23 (8 Réponses)
Points pivots sur IG ?
Fichier(s) joint(s) par Pegase » 30 sept. 2011 07:53 (16 Réponses)
Points pivots
par Amarantine » 03 oct. 2011 07:53 (26 Réponses)
Points pivots
par ladefense92800 » 09 janv. 2012 20:16 (43 Réponses)
Points Pivots intermédiaire les codes ^^
Fichier(s) joint(s) par Guylou76 » 01 mars 2012 12:53 (11 Réponses)
Les Points Pivots pour Trader
par Amarantine » 05 mars 2012 19:10 (11 Réponses)