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 Mar 2019 12: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 Mar 2019 15:26

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

Re: PP Points pivots - Solution stable pour tous

par kondor7 » 07 Mar 2019 16:26

Merci à toi Robinhood :top:

Re: PP Points pivots - Solution stable pour tous

par lopo06 » 07 Mar 2019 18:20

:merci: robinhood ,

Re: PP Points pivots - Solution stable pour tous

par Zefte » 08 Mar 2019 02: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: Tout sélectionner
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 Mar 2019 08: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 Mar 2019 11:43

Impec Robinhood.

Du coup voici le nouveaux code avec nos modifications conjointes :

Code: Tout sélectionner
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 Mar 2019 12: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 Mar 2019 16: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 :


Re: PP Points pivots - Solution stable pour tous

par Robinhood » 12 Mar 2019 09:40

Hello

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

Articles en relation
PP Points pivots - Solution stable pour tous V2
Fichier(s) joint(s) par Robinhood » 12 Mar 2019 14:00 (55 Réponses)
PP Points pivots - Solution stable pour tous V3
Fichier(s) joint(s) par Robinhood » 21 Mai 2019 14:32 (70 Réponses)
Points pivots Automatique Futures sur PRT
Fichier(s) joint(s) par ericson » 04 Mar 2019 16:19 (103 Réponses)
SONDAGE - Outil Points Pivots futures appliqués au cash
par Robinhood » 12 Jan 2019 16:02 (14 Réponses)
API pour ouverture de PRT
par jeanma » 24 Sep 2015 11:25 (0 Réponses)
L3 pour smartphone
par clodreb » 04 Oct 2016 10:00 (5 Réponses)
vos sons pour le trading
par Tartempion » 22 Oct 2015 01:33 (4 Réponses)
Adresse pour télécharger les APi
par DarthTrader » 27 Mar 2017 18:20 (2 Réponses)
Où trouver un développeur MQL pour MT4
par PhilippeVar » 22 Mai 2019 17:38 (9 Réponses)
MoneyM - les API d'IG pour une meilleure gestion du MM
Fichier(s) joint(s) par Ant-Man » 11 Déc 2015 15:23 (26 Réponses)

ProRealTime