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

PP Points pivots - Solution stable pour tous V3

par Robinhood » 21 mai 2019 14:32

Salut à tous !

Pourquoi cette file ?

Cette file prends le relais de la V2 : pp-points-pivots-solution-stable-pour-t ... 27750.html

De quoi s'agit-il ?

A partir de contributions multiples, j'ai mis en place un outil permettant d'afficher les PP futures directement sur les graphiques de prt/ig CF.D cash.

Nouveauté V3 : également sur les prt/ig CF.D futures d'ig ! Vous allez comprendre un peu plus bas...

A qui s'adresse cet outil ?

A ceux qui utilisent prt/ig CF.D et qui souhaitent pouvoir avoir une estimation des PP futures en temps réel sur leurs graphiques CF.D (cash ET futures) ainsi que les figures sur les CF.D indices uniquement (ce sont les niveaux ronds 00 25 50 75 sur les indices cash). A ceux qui ont en marre des PP CF.D qui un jour sont juste et l'autre sont faux, etc... :mur:

Pourquoi un tel outil ?

Et bien parce que les PP ig CF.D ne correspondent pas aux PP futures. Ce n'est pas qu'ils sont "faux", c'est juste qu'ils sont basés sur les cours des CF.D et donc par construction n'ont aucune raison d'êtres similaires aux PP futures :hein: (les seuls et uniques PP qui ont un réel pouvoir d'attraction = des niveaux importants sur lesquels il y a notamment souvent des rebonds/pullbacks). Le sujet a été évoqué au moins mille fois sur Andlil :lol2:

Nouveauté V3 : j'ai bien peur les PP futures de prt soient parfois aussi faux. J'ai des exemples à la pelle. Comment je m'en suis aperçu ? Et bien en affichant par hasard les CF.D futures que propose ig. En fait ils répliquent à la quasi perfection les vrais futures. Je me suis donc dit mais que valent les PP de prt appliqués à ces graphiques ? Et bien ils sont souvent faux ! Je le sais car j'affiche des PP que je calcule directement à partir des cours officiels high/low/Settle des exchanges officiels (Euronext/Eurex/CME, etc....)

Autre nouveauté V3 : les PP intègrent aussi désormais le cash close officiel. Cela permet d'avoir une idée du/des gaps à combler en début de scéance (attention uniquement par rapport au jour de bourse précédent)


Comment ça marche ? :bravo:

Concrètement l'outil utilise les PP futures et le décalage cash-futures pour afficher directement les PP futures sur les graphiques CF.D cash de prt.


Nouveauté V3 : il y a désormais 2 codes :

- un pour afficher les PP sur les graphiques CF.D cash
- un pour afficher les PP directement sur les graphiques CF.D futures


De quoi est composé l'outil ?

L'outil a 4 composantes :

- 1 fichier XL qui est automatiquement mis à jour tous les jours vers 7h45, accessible via un lien drive permanent. Ce fichier contient les PP futures jour/semaine/mois ainsi que les plus haut, plus bas et "settlement" (Cours de clôture sur lequels sont basés les PP futures) sur ces mêmes périodes. Ces données sont basées directement sur les valeurs officielles des bourses d'échances (exchange). La source est le site "Stooq" qui agrège les données des exchanges
- 1 code à mettre à jour tous les jours dans prt
- 1 variable "diff" à renseigner à chaque fois que cela est nécessaire (CF.D cash)
- 1 variable "diff" inexistante (CF.D future, car par diff = 0 dans ce cas de figure)

Quels sont les actifs concernés ?

L'outil couvre à l'origine 5 actifs (Dow/nasdaq,Fts.e, Dax, Cac) mais est évolutif et peut inclure d'autres actifs (me demander directement sur cette file).

Nouveauté v3 : s'ajoute à cette liste SP500/Rusell 2000/Nikkei


Quelle est la procédure pour installer l'outil ?

1. Créer un nouvel indicateur via le "Probuilder" de prt en utilisant le code ci-dessous. Appelez le PP CF.D cash

Code : #

REM PP Futures sur graphiques cfd à risque limité cash (v.3)
REM Diff= cfd à risque limité cash - cfd à risque limité 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 = cfd à risque limité Dow cash 10$ - cfd à risque limité Dow Futures (échéance la plus proche, 3 mois) 10$
REM Exemple avec le Nasdaq => spread à utiliser = cfd à risque limité Nasdaq cash 100$ - cfd à risque limité Nasdaq Futures (échéance la plus proche, 3 mois) 100$
REM Exemple avec le indice anglais => spread à utiliser = cfd à risque limité indice anglais cash 10£ - cfd à risque limité indice anglais Futures (échéance la plus proche, 3 mois) 10£
REM Exemple avec le Dax => spread à utiliser = cfd à risque limité Dax cash 25€ - cfd à risque limité Dax Futures (échéance la plus proche, 3 mois) 25€
REM Exemple avec le Cac => spread à utiliser = cfd à risque limité Cac cash 10€ - cfd à risque limité Cac Futures (échéance la plus proche, 1 mois) 10€

defparam drawonlastbaronly = true

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

// DOW
if close>20000 and close<30000 then
diff=2.7
HighJ=25901
LowJ=25554
SettlementJ=25696
CashCloseJ=25679.9
HighH=25955
LowH=25215
SettlementH=25780
HighM=26694
LowM=25976
SettlementM=26584
// décalage vertical texte/lignes horizontales
Voffset=4*pointsize
endif

// NASDAQ
if close>6000 and close<8500 then
diff=-11.7
HighJ=7559.25
LowJ=7361.5
SettlementJ=7391.75
CashCloseJ=7376.703
HighH=7641
LowH=7290
SettlementH=7511.5
HighM=7879.5
LowM=7428.5
SettlementM=7800
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// SP500
if close>1900 and close<3200 then
diff=-1.5
HighJ=2876.5
LowJ=2832.5
SettlementJ=2844
CashCloseJ=2840.23
HighH=2894
LowH=2799.75
SettlementH=2862
HighM=2956.5
LowM=2844.5
SettlementM=2948.5
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// RUSSEL2000
if close>1500 and close<2000 then
diff=-1.6
HighJ=1547.4
LowJ=1522.1
SettlementJ=1526.8
CashCloseJ=151.78
HighH=1570.4
LowH=1516.7
SettlementH=1537.6
HighM=1607.6
LowM=1545.9
SettlementM=1594.2
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// indice anglais
if close>6000 and close<8500 then
diff=14.3
HighJ=7357
LowJ=7252.5
SettlementJ=7288
CashCloseJ=7310.88
HighH=7349
LowH=7095
SettlementH=7335.5
HighM=7474
LowM=7221.5
SettlementM=7371.5
endif

// DAX
if close>9000 and close<15000 then
diff=3.7
HighJ=12266.5
LowJ=11986.5
SettlementJ=12024
CashCloseJ=12041.29
HighH=12318.5
LowH=11837.5
SettlementH=12247
HighM=12396.5
LowM=11601.5
SettlementM=12351
// décalage vertical texte/lignes horizontales
Voffset=2*pointsize
endif

// CAC
if close>4000 and close<6000 then
diff=51.5
HighJ=5379
LowJ=5271
SettlementJ=5298
CashCloseJ=5358.59
HighH=5386.5
LowH=5178
SettlementH=5372.5
HighM=5560
LowM=5368
SettlementM=5546.5
// décalage vertical texte/lignes horizontales
Voffset=1*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 FIGURES ///////////////////////////////////////
milieu = PPJ
centaine = round(milieu/100) * 100
//
lp1 = centaine + 50
lp2 = centaine + 100
lp3 = centaine + 150
lp4 = centaine + 200
lp5 = centaine + 250
lp6 = centaine + 300
lp7 = centaine + 350
lp8 = centaine + 400
lp10 = centaine + 500

//
lm1 = centaine - 50
lm2 = centaine - 100
lm3 = centaine - 150
lm4 = centaine - 200
lm5 = centaine - 250
lm6 = centaine - 300
lm7 = centaine - 350
lm8 = centaine - 400
lm10 = centaine - 500

///////////////////////////////////// AFFICHAGE TEXTE /////////////////////////////////////////
DRAWTEXT("CASHCLOSE J",barindex-6,CashCloseJ,SansSerif,Bold)coloured(240,248,255)
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)

///////////////////////////////////// AFFICHAGE SETTLEMENT, PP ET NIVEAUX FIGURES AVEC LIGNES ETENDUES A DROITE/////////////////////////////////////////

///////////// CASH CLOSE /////////

DRAWHLINE(CashCloseJ) COLOURED(240,248,255)

///////////// HIGH/LOW /////////

DRAWHLINE(HighJ) COLOURED(127, 255, 212)
DRAWHLINE(HighH) COLOURED(127, 255, 212)
DRAWHLINE(HighM) COLOURED(127, 255, 212)

DRAWHLINE(LowJ) COLOURED(127, 255, 212)
DRAWHLINE(LowH) COLOURED(127, 255, 212)
DRAWHLINE(LowM) COLOURED(127, 255, 212)

///////////// SETTLEMENT ////////////

DRAWHLINE(SettlementJ) COLOURED(255,255,0)
DRAWHLINE(SettlementH) COLOURED(255,255,0)
DRAWHLINE(SettlementM) COLOURED(255,255,0)

///////////// PP //////////////////

DRAWHLINE(PPJ) COLOURED(0, 0, 0)
DRAWHLINE(PPH) COLOURED(0, 0, 0)
DRAWHLINE(PPM) COLOURED(0, 0, 0)

DRAWHLINE(S1J) COLOURED(0, 128, 0)
DRAWHLINE(S2J) COLOURED(0, 128, 0)
DRAWHLINE(S3J) COLOURED(0, 128, 0)
DRAWHLINE(S1H) COLOURED(0, 128, 0)
DRAWHLINE(S2H) COLOURED(0, 128, 0)
DRAWHLINE(S3H) COLOURED(0, 128, 0)
DRAWHLINE(S1M) COLOURED(0, 128, 0)
DRAWHLINE(S2M) COLOURED(0, 128, 0)
DRAWHLINE(S3M) COLOURED(0, 128, 0)

DRAWHLINE(R1J) COLOURED(255, 0, 0)
DRAWHLINE(R2J) COLOURED(255, 0, 0)
DRAWHLINE(R3J) COLOURED(255, 0, 0)
DRAWHLINE(R1H) COLOURED(255, 0, 0)
DRAWHLINE(R2H) COLOURED(255, 0, 0)
DRAWHLINE(R3H) COLOURED(255, 0, 0)
DRAWHLINE(R1M) COLOURED(255, 0, 0)
DRAWHLINE(R2M) COLOURED(255, 0, 0)
DRAWHLINE(R3M) COLOURED(255, 0, 0)

//////////// FIGURES //////////////

DRAWHLINE(centaine) COLOURED(255, 127, 80)
DRAWHLINE(lp2) COLOURED(255, 127, 80)
DRAWHLINE(lp4) COLOURED(255, 127, 80)
DRAWHLINE(lp6) COLOURED(255, 127, 80)
DRAWHLINE(lp8) COLOURED(255, 127, 80)
DRAWHLINE(lp10) COLOURED(255, 127, 80)

DRAWHLINE(lm2) COLOURED(255, 127, 80)
DRAWHLINE(lm4) COLOURED(255, 127, 80)
DRAWHLINE(lm6) COLOURED(255, 127, 80)
DRAWHLINE(lm8) COLOURED(255, 127, 80)
DRAWHLINE(lm10) COLOURED(255, 127, 80)

Return  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),lp3 COLOURED(255, 127, 80) STYLE(DOTTEDLINE),lp5 COLOURED(255, 127, 80) STYLE(DOTTEDLINE),lp7 COLOURED(255, 127, 80) STYLE(DOTTEDLINE),lm1 COLOURED(255, 127, 80) STYLE(DOTTEDLINE),lm3 COLOURED(255, 127, 80) STYLE(DOTTEDLINE),lm5 COLOURED(255, 127, 80) STYLE(DOTTEDLINE),lm7 COLOURED(255, 127, 80) STYLE(DOTTEDLINE)
2. Nouveauté V3 : créer un nouvel indicateur via le "Probuilder" de prt en utilisant le code ci-dessous. Appelez le PP CF.D futures

Code : #

REM PP Futures sur graphiques cfd à risque limité futures (v.3)
REM Diff= cfd à risque limité cash - cfd à risque limité futures = 0
REM Attention à bien prendre le contrat future le plus liquide (= échance la plus proche) et en lot plein. Attention aussi à bien roller !

defparam drawonlastbaronly = true

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

// DOW
if close>20000 and close<30000 then
diff=0
HighJ=25901
LowJ=25554
SettlementJ=25696
CashCloseJ=25679.9
HighH=25955
LowH=25215
SettlementH=25780
HighM=26694
LowM=25976
SettlementM=26584
// décalage vertical texte/lignes horizontales
Voffset=4*pointsize
endif

// NASDAQ
if close>6000 and close<8500 then
diff=0
HighJ=7559.25
LowJ=7361.5
SettlementJ=7391.75
CashCloseJ=7376.703
HighH=7641
LowH=7290
SettlementH=7511.5
HighM=7879.5
LowM=7428.5
SettlementM=7800
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// SP500
if close>1900 and close<3200 then
diff=0
HighJ=2876.5
LowJ=2832.5
SettlementJ=2844
CashCloseJ=2840.23
HighH=2894
LowH=2799.75
SettlementH=2862
HighM=2956.5
LowM=2844.5
SettlementM=2948.5
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// RUSSEL2000
if close>1500 and close<2000 then
diff=0
HighJ=1547.4
LowJ=1522.1
SettlementJ=1526.8
CashCloseJ=151.78
HighH=1570.4
LowH=1516.7
SettlementH=1537.6
HighM=1607.6
LowM=1545.9
SettlementM=1594.2
// décalage vertical texte/lignes horizontales
Voffset=1*pointsize
endif

// indice anglais
if close>6000 and close<8000 then
diff=0
HighJ=7357
LowJ=7252.5
SettlementJ=7288
CashCloseJ=7310.88
HighH=7349
LowH=7095
SettlementH=7335.5
HighM=7474
LowM=7221.5
SettlementM=7371.5
endif

// DAX
if close>9000 and close<15000 then
diff=0
HighJ=12266.5
LowJ=11986.5
SettlementJ=12024
CashCloseJ=12041.29
HighH=12318.5
LowH=11837.5
SettlementH=12247
HighM=12396.5
LowM=11601.5
SettlementM=12351
// décalage vertical texte/lignes horizontales
Voffset=2*pointsize
endif

// CAC
if close>4000 and close<6000 then
diff=0
HighJ=5379
LowJ=5271
SettlementJ=5298
CashCloseJ=5358.59
HighH=5386.5
LowH=5178
SettlementH=5372.5
HighM=5560
LowM=5368
SettlementM=5546.5
// décalage vertical texte/lignes horizontales
Voffset=1*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


///////////////////////////////////// AFFICHAGE TEXTE /////////////////////////////////////////
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)

///////////////////////////////////// AFFICHAGE SETTLEMENT, PP ET NIVEAUX FIGURES AVEC LIGNES ETENDUES A DROITE/////////////////////////////////////////

///////////// CASH CLOSE /////////

DRAWHLINE(CashCloseJ) COLOURED(75,0,130)

///////////// HIGH/LOW /////////

DRAWHLINE(HighJ) COLOURED(127, 255, 212)
DRAWHLINE(HighH) COLOURED(127, 255, 212)
DRAWHLINE(HighM) COLOURED(127, 255, 212)

DRAWHLINE(LowJ) COLOURED(127, 255, 212)
DRAWHLINE(LowH) COLOURED(127, 255, 212)
DRAWHLINE(LowM) COLOURED(127, 255, 212)

///////////// SETTLEMENT ////////////

DRAWHLINE(SettlementJ) COLOURED(255,255,0)
DRAWHLINE(SettlementH) COLOURED(255,255,0)
DRAWHLINE(SettlementM) COLOURED(255,255,0)

///////////// PP //////////////////

DRAWHLINE(PPJ) COLOURED(0, 0, 0)
DRAWHLINE(PPH) COLOURED(0, 0, 0)
DRAWHLINE(PPM) COLOURED(0, 0, 0)

DRAWHLINE(S1J) COLOURED(0, 128, 0)
DRAWHLINE(S2J) COLOURED(0, 128, 0)
DRAWHLINE(S3J) COLOURED(0, 128, 0)
DRAWHLINE(S1H) COLOURED(0, 128, 0)
DRAWHLINE(S2H) COLOURED(0, 128, 0)
DRAWHLINE(S3H) COLOURED(0, 128, 0)
DRAWHLINE(S1M) COLOURED(0, 128, 0)
DRAWHLINE(S2M) COLOURED(0, 128, 0)
DRAWHLINE(S3M) COLOURED(0, 128, 0)

DRAWHLINE(R1J) COLOURED(255, 0, 0)
DRAWHLINE(R2J) COLOURED(255, 0, 0)
DRAWHLINE(R3J) COLOURED(255, 0, 0)
DRAWHLINE(R1H) COLOURED(255, 0, 0)
DRAWHLINE(R2H) COLOURED(255, 0, 0)
DRAWHLINE(R3H) COLOURED(255, 0, 0)
DRAWHLINE(R1M) COLOURED(255, 0, 0)
DRAWHLINE(R2M) COLOURED(255, 0, 0)
DRAWHLINE(R3M) COLOURED(255, 0, 0)

Return  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"
Vous pouvez bien entendu modifier ce code comme bon vous semble. Afficher ce que vous voulez, etc... :joker:

Remarques (uniquement pour la version PP CF.D cash) :

- Il faut ajouter l'indicateur sur le prix
- Il faut par ailleurs cocher l'option "Mise à l'échelle verticale : utiliser seulement le prix" dans les propriétés de Prix :
ajout PP.jpg
ajout PP.jpg (87.03 Kio) Vu 9074 fois
2. Créer les spreads des actifs => servira uniquement pour les PP CF.D cash

Cela se fait via l'outils "Spreads" de prt. Voici un exemple avec le Dax (vous trouverez en première partie du code ci-dessus les autres cas = Dow/nasdaq.Fts.e/Cac). L'outil se trouve dans le menu Affichage (ou Ctrl+R directement).

- Donnez un nom, par exemple "spread Dax"
- Choisissez la 1ère valeur, en cherchant Allemagne 30 cash (25€) (cela correspond au CF.D cash). Il s'agit du CF.D répliquant l'indice dax 30.
- Choisissez la 2ème valeur, en cherchant Allemagne 30 (25€) (échéance la plus proche = MAR-19 à l'heure où j'écris ce post). Il s'agit d'un CF.D répliquant le contrat futures dax 30
- Il s'agit ici d'une différence donc c'est Coeff 1 - coeff 2
- Vous validez
- Vous obtenez ainsi en temps réel le spread entre le dax cash et le dax futures
- Ce spread correspond à la variable diff dans le code ci-dessus
- Il faut le mettre à jour autant de fois que cela est nécessaire (toujours garder un oeil :mercichinois: ). Rassurez vous, il ne bouge pas tous les secondes, mais peut varier de plusieurs pts en une journée :musique:
spreads.jpg
spreads.jpg (49.1 Kio) Vu 9074 fois
3. Mettre à jour les PP futures tous les jours => concerne les PP CF.D cash et PP CF.D futures

- Tous les jours vous chargez le fichier "PP_report.xlsx" via le lien permanent drive :

Interrompu définitivement

- Il y a 3 onglets :
* ALL : vous y trouvez tous les détails nécessaires sur chaque actifs
* short : version allégée qui permet de copier coller directement pour chaque actif le code à modifier sous prt
* CONTACT : pour me contacter directement. Uniquement si cela est nécessaire. Merci d'utiliser en priorité cette file pour échanger de façon à ce que cela bénéficie à tous :-)

Bon à savoir :

J'ai contacté plusieurs fois prt afin d'apporter 2 améliorations qui rendrait l'outil plus stable/fiable/pratique à savoir :

- Permettre de connaitre automatiquement quel actif est concerné dans le code. Comme vous pouvez le constater actuellement, on est obligé de détecter l'actif en utilisant des valeurs d'indices comme pour la Dax par exemple ("// DAX if close>9000 and close<15000 then"). C'est notamment problématique pour Fts.e et le nasdaq qui ont des niveaux très proches
- Récupérer automatiquement les spreads dans le code, de façon à ce que la variable diff se mette à jour toute seule en permanence. Ce serait un petit pas pour prt mais un très grand pour cet outil !
- Pour suivre l'évolution des ces 2 demandes, suiviez le lien : suggestion-d-amelioration-prt-t27558.html ainsi que https://www.prorealcode.com/topic/probuilder-obtention-de-lid-du-sous-jacent-actuel/ et https://www.prorealcode.com/topic/probuilder-obtention-des-spreads-crees-dans-spreads/

- Par rapport au fichier XL : il peut arriver qu'il y ait des bugs ou problèmes de mise à jour. N'hésitez pas à me contacter si c'est le cas. Par ailleurs vérifiez toujours les dates indiquées !
- Il n'existe pas d'outils miracles. Des différences peuvent toujours subsister même en utilisant directement prt futures. Il faut donc bien comprendre comment fonctionne cet outil, ce que sont les PP, etc... et toujours avoir un peu de recul afin de ne pas utiliser bêtement cet outil mais plutôt intelligemment :merci:

Avant dernière chose !

Si vous ne l'avez pas déjà fait, merci par avance de participer au sondage ci-dessous :mercichinois:

sondage-outil-points-pivots-futures-appliques-au-cash-t26739.html

Dernière chose !

Pour ceux que ça intéresse, j'ai mis en place un outil permettant de calculer les spreads réels (= les spreads payés) sur chaque transaction CF.D. Si ça vous intéresse, suivez le lien : analyse-des-spreads-reels-payes-cfd à risque limité-a-risque-limite-ig-t27499.html

Très bon trading à tous et au plaisir d'échanger avec vous :top:

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 21 mai 2019 14:45

Pour information désormais :

- J'ai un screen avec les graphiques des CF.D cash et les PP ajustés
- J'ai un screen avec les graphiques CF.D futures et les PP futures directement (j'affiche éaglement ceux de prt. Quand les l'écart est infime, cela permet de s'assurer que l'on est bien sur un PP valide)

Un screen ci-dessous à titre d'exemple avec le dow sur le graphique CF.D futures :

(désolé pour la qualité affreuse. 256ko max oblige..)

J'invite tous ceux qui utilisent les PP à faire le test à se faire leur propre avis.

Sur ce => bon trading ! :merci:
Fichiers joints
pp dow2.jpg
pp dow2.jpg (235.92 Kio) Vu 9068 fois

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 21 mai 2019 15:26

NB : ne pas tenir compte de la variable "cashclosej" pour les PP futures car cette variable est non ajustée (volontairement) dans le code.

Re: PP Points pivots - Solution stable pour tous V3

par Madnex » 22 mai 2019 09:06

Merci pour ton excellent boulot :top:

Re: PP Points pivots - Solution stable pour tous V3

par kondor7 » 22 mai 2019 09:55

Merci RobinHood,

Un screen à chaud où je relève quelques incohérences cependant entre Pivot M et Hebdo qui semblent off , et la mR1J qui semble bien plus haut sur le graph cfd à risque limité qu'elle ne l'est sur le graph d'un autre membre sur Futures.
Allemagne 30 Cash (1€)   21 Ticks   12 151,2 (-0,21%)   22 mai 2019 09_46_06 2019-05-22 09.46.14.png
Allemagne 30 Cash (1€) 21 Ticks 12 151,2 (-0,21%) 22 mai 2019 09_46_06 2019-05-22 09.46.14.png (190.05 Kio) Vu 8991 fois


La ligne tracée mFR1 correspond à un autre code, mais correspond à la mR1J chez l'autre membre.

Re: PP Points pivots - Solution stable pour tous V3

par kondor7 » 22 mai 2019 11:18

-

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 22 mai 2019 18:00

@Kondor

Il n'y a pas d'incohérences. Plusieurs choses à bien avoir en tête (déjà évoquées x fois dans les messages sur les PP) :

- On trouve toujours un exemple qui arrange bien une situation et vice-versa
- Les PP de PRT appliqués aux CF.D sont faux par défaut. Même ceux appliqués aux CF.D futures ne sont pas exacts (même si ils sont souvent plus justes que ceux appliqués au cash). Ils peuvent être justes à un instant t ou très proches de la réalité. Mais ce n'est que du hasard. J'ai même vu des PP appliqués aux vrais futures (source : notamment ceux qui ont un compte PRT/IB et y'en a plein sur ce forum) qui me semblaient faux (beaucoup plus rare néanmoins comme cas de figure). Et comment je le sais ? Et bien je prends les cours officiels, ceux des exchange. Et donc je sais que les PP calculés à partir de ces données sont forcément justes car ce sont les données officielles, sans intermédiaire.
- Je vous fourni tous les jours les cours officiels actualisés jour/semaine/mois. Ces cours permettent de calculer les vrais PP. Ensuite comme évoqué dans la V3 : je conseille d'afficher au moins le graphique du CF.D future sous jacent. Par exemple pour le dax, actuellement le contrat le plus liquide est l'échéance juin 2019. Donc personnellement j'ai toujours au moins 1 chart avec le CF.D cash et les PP ajustés via le spread actualisé + 1 chart avec le CF.D future où les PP sont en LECTURE DIRECTE. Ce dernier point permet notamment de s'assurer que le spread n'a pas trop bougé ou très peu (et parfois il y a des variations importantes !). Pour ma part je trouve l'outil beaucoup plus fiable avec cette approche. PRT n'ayant pas répondu favorablement à ma demande, le spread ne peut pas être ajusté automatiquement et il faut donc le faire à la main
- tu me donne un niveau midR1 d'un andilien. Très bien. Pour ma part je me base sur les données officielles et pas autre chose. Je rappelle ici ci-dessous les PP jour et leurs niveaux intermédiaires. Je met au défi quiconque de me prouver qu'ils sont faux. Si c'est le cas, je paye ma tournée à tous les transiliens d'ile de France actifs du forum. Ci-joint toutes les données :

PREV_DATE 21-May-2019
LAST_DATE 21-May-2019
ASSET DAX
FUTURE ID dy_f
CASH ID ^dax
PERIOD DAILY
HIGH 12177,00
LOW 12046,50
CASH_CLOSE 12143,47
SETTLEMENT 12145,00
PIV 12122,83
S1 12 068,67
MID_S1 12 095,75
S2 11 992,33
MID_S2 12 057,58
S3 11 938,17
MID_S3 12 030,50
R1 12 199,17
MID_R1 12 161,00
R2 12 253,33
MID_R2 12 188,08
R3 12 329,67
MID_R3 12 226,25

Et la cerise sur le gâteau, un screen des données de l'Eurex (c'est faux ça peut être ?) :
Fichiers joints
eurex.jpg
eurex.jpg (67.04 Kio) Vu 8936 fois

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 22 mai 2019 18:07

Un autre bonus, le screen du CF.D Dax Futures du jour en 5mn et quelques ptits ronds jaunes..

Regarde notre ami midR1J. Moi je le trouve plutôt bien positionné :-)

(En pointillés blancs ce sont les PP prt CF.D Futures).
Fichiers joints
dax fut.jpg
dax fut.jpg (219.31 Kio) Vu 8935 fois

Re: PP Points pivots - Solution stable pour tous V3

par Mikelmarcus » 22 mai 2019 20:40

Nice job Robinhood :top:

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 09:26

Hello

Une précision les amis sur le cac. Il est un des rares à avoir systématiquement une échéance 1 mois. Mais ce n'est pas forcément la plus liquide. Actuellement c'est le contrat juin. Le contrat juillet va devenir de plus en plus liquide, et à l'approche du rolling (3ème vendredi sauf erreur de ma part), il va dépasser le contrat juin en volume et donc être plus liquide. Je le sais car j'ai les data d'Euronext en direct. Pour plus d'infos :

https://www.euronext.com/en/reports-statistics/derivatives/daily-statistics

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 13:49

URGENT


Après investigation poussée sur les PP hebdos/mensuels, j'ai décidé de les retirer temporairement des rapports PP.

Pour vous expliquer rapidement pourquoi :

- je me base pour chacun des actifs sur le contrat future continuous
- les high/low/settle sont donc calculés excusivement sur ce contrat
- le problème est que lors des rollings, le contrat continuous se base sur l'échéance la plus liquide. En conséquence les high/low/settle changent. Et comme les PP sont basés à chaque instant sur les anciens high/low/settle du contrat le plus liquide de chaque période, on ne peut pas simplement prendre le continuous. Il faut déterminer sur chacune des périodes quels sont les high/low/settle à retenir puis appliquer une correction éventuelle pour qu'à l'instant t, on soit certain d'avoir les bons PP sur le contrat le plus liquide à l'instant t.
- Ceci est particulièrement impactant pour le cac qui a des rolling mensuels vs trimestriels pour les autres indices
- Pour les autres indices, les PP hebdos me semblent correct mais ce qui est sûr, pas pour le cac
- Pour les PP mensuels c'est variable
- Maintenant pour être certain de vous communiquer des données "justes", j'ai donc décidé pour le moment de restreindre l'analyse aux PP journaliers
- Comme je l'ai toujours indiqué, j'invite chaque utilisateur à se poser des questions sur les niveaux affichés. Un bon exercice est d'avoir toujours le graphique du CF.D future d'actif qu'on trade, et de regarder si les high/low/settle du jour précédent ont du sens (simplement graphiquement)
- Par ailleurs, je vous invite de nouveau à afficher les PP PRT CF.D Futures, ainsi que les high/low/settle associés. Ensuite à bien les analyser pour voir si ils sont cohérents. Ce qui est sûr, c'est que PRT a rencontré le même problème que moi :mur: Je comprends mieux pourquoi désormais il y a tant de questionnement sur les PP. Autant vous dire que c'est un jour important et un challenge majeur pour cet outil !

Je vais faire mon possible pour trouver une solution stable vraiment définitive. Je crains que cela m'oblige à récupérer les données de chaque échéances et de traiter tout au cas par cas.

D'ici là, tradez disciplinés :top:

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 13:53

NB : j'ai mis à jour le rapport PP d'aujourd'hui en conséquence

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 14:19

Après contrôle rapide tous les PP daily/weekly/mensuel sur le Dax sont justes. Je vous le dis car la majorité d'entre vous traitent cet actif.

LA good news par ailleurs est que je devrais pouvoir corriger le problème dans la journée. Désormais je n'afficherai dans les rapports que les PP dont je suis certains de la validité.

++

Re: PP Points pivots - Solution stable pour tous V3

par kondor7 » 23 mai 2019 16:33

On trouve toujours un exemple qui arrange bien une situation et vice-versa
Tu as bien raison sur ce point là.

Désolé de ne répondre que maintenant, un grand merci pour ta réponse et tes screens.
Jusqu'à présent aucun souci avec ton outil et je check la cohérence chaque matin.
Mais hier, gros doute. Plusieurs membre ayant les futurs voyait le PHebdo en dessous du PMensuel ; tandis que sur mon screen comme le tient c'est l'inverse.
Je me suis dit c'est pas vrai!! il a du faire une modif dans le code et il a inversé l'affichage hebdo et mensuel :D . Mais je te rejoins entièrement, et je fais d'avantage confiance au calcul avec les cours officiels des exchanges que tu prends.

Pour la MidR1, oui ça concorde bien : ID_R1 12 161,00 + le diff qui était autour de 4,x et quelques . Ca nous faisait du 12 165,xx sur les pp cash ajustés.
Spoiler:
Tant pis pour la tournée de bière :lol:

Je me suis fait une interface test pour suivre ça différemment de ce que je faisais pour les prochains jours :

1 fenêtre CF.D-Futures JUNE19 avec les PP de PRT
1 fenêtre CF.D-Futures JUNE19 avec tes PP CF.D futures
1 fenêtre CF.D avec tes PP cash ajustés.

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 17:39

Parfait Kondor tu as tout compris. J'invite tout ceux qui utilisent cet outil à faire comme Kondor, i.e :

- se poser des questions. Ne pas suivre aveuglement un indicateur, quand bien même il vous paraisse "robuste". Rien n'est parfait et le risque d'erreur existe toujours
- vérifier régulièrement les niveaux indiqués

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 17:59

Update suite à ma découverte de toute à l'heure (voir ci-dessous) :

- Vous trouverez désormais dans l'onglet "ALL" de la colonne "FUTURE_LIQUID_ID" la référence du contrat utilisé pour le calcul des high/low/settle et donc pour le calcul des PP
pp matching.jpg
pp matching.jpg (95.44 Kio) Vu 816 fois
- Désormais lorsque ce contrat en cours (le plus liquide donc) n'a pas exactement les mêmes valeurs que le contrat continuous, je met par défaut des valeurs égales à zéro. Sans surprise, c'est le cas aujourd'hui avec le CAC pour ses PP mensuels. Pour tous les autres indices RAS.
pp matching 2.jpg
pp matching 2.jpg (121.84 Kio) Vu 816 fois
Ce n'est pas une solution définitive mais elle a le mérite d'indiquer des PP exacts et pas l'inverse. Donc si vous voyez à un moment donné des données égales à zéro c'est qu'il y a un souci de matching au niveau des données.

Voilà n'hésitez pas si ce n'est pas clair.

A++

NB : dernier truc j'ai viré le Russell 2000 car je n'ai pas été en mesure d'obtenir l'indice sous-jacent pour afficher le "cashclose". Je peux le rajouter sur demande.

Re: PP Points pivots - Solution stable pour tous V3

par Robinhood » 23 mai 2019 18:07

Info supplémentaire pour les curieux, le lien ci-dessous permet de controler quel est le dernier contrat à avoir été rollé et donc qui est celui qui est le plus liquide (exemple avec le future mini Dow) : https://stooq.com/q/e/?s=ym.f

Re: PP Points pivots - Solution stable pour tous V3

par Barik » 23 mai 2019 20:46

j'étais passer à coté de ce topic.... juste un énorme travail.. un très gros merci à Robinhood pour le boulot fourni et donner gratuitement :merci: :bravo: :mercichinois:

Re: PP Points pivots - Solution stable pour tous V3

par benk2 » 24 mai 2019 10:07

Bonjour Robinhood,

merci pour ce travail que je test depuis la V1, sauf si j'ai mal compris, je pense qu'il y a un souci sur le DAX en Hebdo, voici une copie écran de Benoist et ensuite le mien, c'est nikel sur le journalier, mais le MS1H est vraiment très différent. qu'en penses tu ?
2019-05-24_9-32-34.jpg
2019-05-24_9-32-34.jpg (224.16 Kio) Vu 793 fois
PP BK.JPG
PP BK.JPG (90.32 Kio) Vu 793 fois

Re: PP Points pivots - Solution stable pour tous V3

par Actarus21 » 24 mai 2019 10:13

En outre comment avoir pivot 4h?

Sujets similaires
PP Points pivots - Solution stable pour tous
Fichier(s) joint(s) par Robinhood » 08 oct. 2018 15:51 (162 Réponses)
PP Points pivots - Solution stable pour tous V2
Fichier(s) joint(s) par naol » 12 mars 2019 13:00 (56 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)