ProRealTime
Pour discuter sur l’interface de ProRealTime Software, nos configurations graphiques...
Répondre • Page 1 sur 1

Indicateurs boites de Darvas pour PRT 10.3

par Jim » 13 oct. 2017 22:18

Voici une séries de codes pour différents indicateurs pour traiter le système de Darvas.

Attention : ces codes ne constituent pas des systèmes de trading. Ils ne font que construire les boites, selon le principe :
- borne haute = le plus haut est suivi de trois chandeliers moins hauts.
- borne basse = le plus bas est suivi de trois chandeliers moins bas.

Quoi de neuf alors ? Cet indicateur met à profit les nouvelles fonctions de dessin de PRT 10.3 pour faire des jolies boites, qui se construisent en direct.

Indicateur Darvas Bullish v1.3.0 : c'est le classique pour trader les UT journalières et au-delà :

Code : #

//Darvas Bullish v1.3.0

ONCE Marge = 0.25

ONCE TriggerDeterminationBorneHaute = 1 //Trigger = 1 si borne haute pas encore trouvée
ONCE TriggerDeterminationBorneBasse = 0 // Trigger = 1 dès que borne haute est trouvée
ONCE BornesHautesEtBassesDeterminees = 0


// 1ère phase : détermination borne haute
IF TriggerDeterminationBorneHaute AND (barindex > BarIndexSortieBoite+2) THEN
IF highest[3](high) < high[3] THEN
BorneHaute = high[3] +Marge
BarIndexDebutBoite = barindex-3
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
ENDIF
ENDIF

// 2ème phase : détermination borne basse
IF TriggerDeterminationBorneBasse THEN
IF high > BorneHaute THEN
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
ELSIF lowest[3](low) > low[3] THEN
BorneBasse = low[3] -Marge
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,barindex,BorneHaute) coloured (0,200,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneBasse,barindex,BorneBasse) coloured (0,200,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,BarIndexDebutBoite,BorneBasse) coloured (0,200,0)
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 1
ENDIF
ENDIF

// 3ème phase : bornes hautes et basses déterminées
IF BornesHautesEtBassesDeterminees THEN
IF high > BorneHaute OR low < BorneBasse THEN  // sortie en dehors des bornes
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (0,200,0)
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 0
BarIndexSortieBoite = barindex
ELSE  // on est dans les bornes et on continue le tracé
DRAWSEGMENT (barindex-1,BorneHaute,barindex,BorneHaute) coloured (0,200,0)
DRAWSEGMENT (barindex-1,BorneBasse,barindex,BorneBasse) coloured (0,200,0)
ENDIF
ENDIF

RETURN
Le paramètre Marge est une coquetterie graphique pour régler la distance entre les plus hauts/bas et les boites.


Indicateur Darvas Bearish v1.3.0 : c'est la version baissière pour trader les UT journalières et au-delà :

Code : #

//Darvas Bearish v1.3.0

ONCE Marge = 0.25

ONCE TriggerDeterminationBorneHaute = 0
ONCE TriggerDeterminationBorneBasse = 1
ONCE BornesHautesEtBassesDeterminees = 0


// 1ère phase : détermination borne basse
IF TriggerDeterminationBorneBasse AND (barindex > BarIndexSortieBoite+2) THEN
IF lowest[3](low) > low[3] THEN
BorneBasse = low[3] -Marge
BarIndexDebutBoite = barindex-3
TriggerDeterminationBorneBasse = 0
TriggerDeterminationBorneHaute = 1
ENDIF
ENDIF

// 2ème phase : détermination borne haute
IF TriggerDeterminationBorneHaute THEN
IF low < BorneBasse THEN
TriggerDeterminationBorneBasse = 1
TriggerDeterminationBorneHaute = 0
ELSIF highest[3](high) < high[3] THEN
BorneHaute = high[3] +Marge
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,barindex,BorneHaute) coloured (250,0,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneBasse,barindex,BorneBasse) coloured (250,0,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,BarIndexDebutBoite,BorneBasse) coloured (250,0,0)
TriggerDeterminationBorneHaute = 0
BornesHautesEtBassesDeterminees = 1
ENDIF
ENDIF

// 3ème phase : bornes hautes et basses déterminées
IF BornesHautesEtBassesDeterminees THEN
IF high > BorneHaute OR low < BorneBasse THEN  // sortie en dehors des bornes
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (250,0,0)
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
BornesHautesEtBassesDeterminees = 0
BarIndexSortieBoite = barindex
ELSE  // on est dans les bornes et on continue le tracé
DRAWSEGMENT (barindex-1,BorneHaute,barindex,BorneHaute) coloured (250,0,0)
DRAWSEGMENT (barindex-1,BorneBasse,barindex,BorneBasse) coloured (250,0,0)
ENDIF
ENDIF

RETURN

Indicateur Darvas Bullish v1.2.2 : c'est pour trader les hausses en intraday (réinitialisation quotidienne de l'indicateur) :

Code : #

//Darvas Bullish v1.2.2

ONCE Marge = 0.25

// RAZ quotidienne de l'indicateur
IF intradaybarindex = 0 THEN
TriggerDeterminationBorneHaute = 1 //Trigger = 1 si borne haute pas encore trouvée
TriggerDeterminationBorneBasse = 0 // Trigger = 1 dès que borne haute est trouvée
IF BornesHautesEtBassesDeterminees THEN  // on ferme le rectangle en cours de construction
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (0,200,0)
BornesHautesEtBassesDeterminees = 0
ENDIF
BarIndexSortieBoite = barindex
ENDIF

// 1ère phase : détermination borne haute
IF TriggerDeterminationBorneHaute AND (barindex > BarIndexSortieBoite+2) THEN
IF highest[3](high) < high[3] THEN
BorneHaute = high[3] +Marge
BarIndexDebutBoite = barindex-3
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
ENDIF
ENDIF

// 2ème phase : détermination borne basse
IF TriggerDeterminationBorneBasse THEN
IF high > BorneHaute THEN
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
ELSIF lowest[3](low) > low[3] THEN
BorneBasse = low[3] -Marge
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,barindex,BorneHaute) coloured (0,200,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneBasse,barindex,BorneBasse) coloured (0,200,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,BarIndexDebutBoite,BorneBasse) coloured (0,200,0)
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 1
ENDIF
ENDIF

// 3ème phase : bornes hautes et basses déterminées
IF BornesHautesEtBassesDeterminees THEN
IF high > BorneHaute OR low < BorneBasse THEN  // sortie en dehors des bornes
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (0,200,0)
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 0
BarIndexSortieBoite = barindex
ELSE  // on est dans les bornes et on continue le tracé
DRAWSEGMENT (barindex-1,BorneHaute,barindex,BorneHaute) coloured (0,200,0)
DRAWSEGMENT (barindex-1,BorneBasse,barindex,BorneBasse) coloured (0,200,0)
ENDIF
ENDIF

RETURN

Indicateur Darvas Bearish v1.2.2 : c'est pour trader les baisses en intraday (réinitialisation quotidienne de l'indicateur) :

Code : #

//Darvas Bearish v1.2.2

ONCE Marge = 0.25

// RAZ quotidienne de l'indicateur
IF intradaybarindex = 0 THEN
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
IF BornesHautesEtBassesDeterminees THEN  // on ferme le rectangle en cours de construction
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (250,0,0)
BornesHautesEtBassesDeterminees = 0
ENDIF
BarIndexSortieBoite = barindex
ENDIF

// 1ère phase : détermination borne basse
IF TriggerDeterminationBorneBasse AND (barindex > BarIndexSortieBoite+2) THEN
IF lowest[3](low) > low[3] THEN
BorneBasse = low[3] -Marge
BarIndexDebutBoite = barindex-3
TriggerDeterminationBorneBasse = 0
TriggerDeterminationBorneHaute = 1
ENDIF
ENDIF

// 2ème phase : détermination borne haute
IF TriggerDeterminationBorneHaute THEN
IF low < BorneBasse THEN
TriggerDeterminationBorneBasse = 1
TriggerDeterminationBorneHaute = 0
ELSIF highest[3](high) < high[3] THEN
BorneHaute = high[3] +Marge
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,barindex,BorneHaute) coloured (250,0,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneBasse,barindex,BorneBasse) coloured (250,0,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,BarIndexDebutBoite,BorneBasse) coloured (250,0,0)
TriggerDeterminationBorneHaute = 0
BornesHautesEtBassesDeterminees = 1
ENDIF
ENDIF

// 3ème phase : bornes hautes et basses déterminées
IF BornesHautesEtBassesDeterminees THEN
IF high > BorneHaute OR low < BorneBasse THEN  // sortie en dehors des bornes
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (250,0,0)
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
BornesHautesEtBassesDeterminees = 0
BarIndexSortieBoite = barindex
ELSE  // on est dans les bornes et on continue le tracé
DRAWSEGMENT (barindex-1,BorneHaute,barindex,BorneHaute) coloured (250,0,0)
DRAWSEGMENT (barindex-1,BorneBasse,barindex,BorneBasse) coloured (250,0,0)
ENDIF
ENDIF

RETURN
Indicateur Darvas Bullish v1.3.1 : il fait du paper trading pour tester si la cible est Darvas-compatible :
- entrée longue si sortie par le haut de la boite.
- fermeture lorsqu'on passe le plus bas de la dernière boite.
- il affiche le gain en % à la fermeture de la position.

Code : #

//Darvas Bullish v1.3.1

ONCE Marge = 0.25

ONCE TriggerDeterminationBorneHaute = 1 //Trigger = 1 si borne haute pas encore trouvée
ONCE TriggerDeterminationBorneBasse = 0 // Trigger = 1 dès que borne haute est trouvée
ONCE BornesHautesEtBassesDeterminees = 0


// 1ère phase : détermination borne haute
IF TriggerDeterminationBorneHaute AND (barindex > BarIndexSortieBoite+2) THEN
IF highest[3](high) < high[3] THEN
BorneHaute = high[3] +Marge
BarIndexDebutBoite = barindex-3
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
ENDIF
ENDIF

// 2ème phase : détermination borne basse
IF TriggerDeterminationBorneBasse THEN
IF high > BorneHaute THEN
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
ELSIF lowest[3](low) > low[3] THEN
BorneBasse = low[3] -Marge
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,barindex,BorneHaute) coloured (0,170,255)
DRAWSEGMENT (BarIndexDebutBoite,BorneBasse,barindex,BorneBasse) coloured (0,170,255)
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,BarIndexDebutBoite,BorneBasse) coloured (0,170,255)
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 1
ENDIF
ENDIF

// 3ème phase : bornes hautes et basses déterminées
IF BornesHautesEtBassesDeterminees THEN
IF high > BorneHaute OR low < BorneBasse THEN  // sortie en dehors des bornes
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (0,170,255)
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 0
BarIndexSortieBoite = barindex
IF EnPosition = 0 AND high > BorneHaute THEN  // entrée en position
PrixEntree = max(open,BorneHaute)
DRAWARROWUP (barindex,PrixEntree)
EnPosition = 1
ENDIF
ELSE  // on est dans les bornes et on continue le tracé
DRAWSEGMENT (barindex-1,BorneHaute,barindex,BorneHaute) coloured (0,170,255)
DRAWSEGMENT (barindex-1,BorneBasse,barindex,BorneBasse) coloured (0,170,255)
ENDIF
ENDIF

IF EnPosition AND low < BorneBasse THEN // sortie de position
EnPosition = 0
PrixSortie = min(open,BorneBasse)
DRAWARROWDOWN (barindex,PrixSortie)
Gain = PrixSortie - PrixEntree
PourCent = (1000*Gain/PrixEntree MOD 1000)/10
// DRAWTEXT
IF PourCent >1 THEN
drawtext ("Gain= #Pourcent#%",barindex-5,low*0.99,dialog,standard,17) coloured (0,200,0)
ELSIF PourCent <-1 THEN
drawtext ("Gain= #Pourcent#%",barindex-5,low*0.99,dialog,standard,17) coloured (250,0,0)
ELSE
drawtext ("Gain= #Pourcent#%",barindex-5,low*0.99,dialog,standard,17)
ENDIF
ENDIF



RETURN


Par exemple, pour Apple en UT jour, avec "Darvas Bullish v1.3.1" :
Capture.PNG
Capture.PNG (63.12 Kio) Vu 2591 fois
Sur Apple, on voit qu'il y a une boite en cours de construction : Break out à surveiller à 165$ ;)

Re: Indicateurs boites de Darvas pour PRT 10.3

par Gabinou159 » 07 janv. 2018 15:00

Excellent travail Jim, merci! :top:

Re: Indicateurs boites de Darvas pour PRT 10.3

par BearIsDead » 07 janv. 2018 21:36

Joli partage Jim, j'avais loupé ça. merci. Je ne connais pas les boites de Darvas, je regarderai ça.
(et merci pour le déterrage Gab ;) )

Re: Indicateurs boites de Darvas pour PRT 10.3

par julien333 » 19 janv. 2020 00:23

Merci je vais tester, après avoir déterré ;-)

Re: Indicateurs boites de Darvas pour PRT 10.3

par julien333 » 29 janv. 2020 09:58

Merci Jim, j'ai adapté ton code (celui avec le paper trading) :
- je considère que j'ai un signal (Achat ou vente) que si LA bougie suivant la cloture de l a boîte casse la limite de boîte en clôture (et non pas avec ses plus hauts ou plus bas).
- j'ai ajouté un signal = 1 pou rachat et -1 pour vente, histoire de déclencher une alerte ou d'automatiser avec ProOrder.

Code : #

//Darvas Bullish v1.3.1 adapté par Juju

ONCE Marge = 0

ONCE TriggerDeterminationBorneHaute = 1 //Trigger = 1 si borne haute pas encore trouvée
ONCE TriggerDeterminationBorneBasse = 0 // Trigger = 1 dès que borne haute est trouvée
ONCE BornesHautesEtBassesDeterminees = 0

// 1ère phase : détermination borne haute
IF TriggerDeterminationBorneHaute AND (barindex > BarIndexSortieBoite+2) THEN
IF highest[3](high) < high[3] THEN
BorneHaute = high[3] + Marge
BarIndexDebutBoite = barindex-3
TriggerDeterminationBorneHaute = 0
TriggerDeterminationBorneBasse = 1
ENDIF
ENDIF

// 2ème phase : détermination borne basse
IF TriggerDeterminationBorneBasse THEN
IF high > BorneHaute THEN
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
ELSIF lowest[3](low) > low[3] THEN
BorneBasse = low[3] -Marge
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,barindex,BorneHaute) coloured (255,255,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneBasse,barindex,BorneBasse) coloured (255,255,0)
DRAWSEGMENT (BarIndexDebutBoite,BorneHaute,BarIndexDebutBoite,BorneBasse) coloured (255,255,0)
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 1
ENDIF
ENDIF

// 3ème phase : bornes hautes et basses déterminées
IF BornesHautesEtBassesDeterminees THEN
IF high > BorneHaute OR low < BorneBasse THEN  // sortie en dehors des bornes
DRAWSEGMENT (barindex-1,BorneHaute,barindex-1,BorneBasse) coloured (255,255,0)
TriggerDeterminationBorneHaute = 1
TriggerDeterminationBorneBasse = 0
BornesHautesEtBassesDeterminees = 0
BarIndexSortieBoite = barindex

ELSE  // on est dans les bornes et on continue le tracé
DRAWSEGMENT (barindex-1,BorneHaute,barindex,BorneHaute) coloured (255,255,0)
DRAWSEGMENT (barindex-1,BorneBasse,barindex,BorneBasse) coloured (255,255,0)
ENDIF
ENDIF


IF barindex = BarIndexSortieBoite and Close > BorneHaute THEN ///////////////////////////////// Signal acheteur
DRAWARROWUP (barindex, high +20*pipsize) coloured(0,0,0)
Signal = 1
ELSIF barindex = BarIndexSortieBoite and Close < BorneBasse  THEN // signal vendeur
DRAWARROWDOWN (barindex,low -20*pipsize) coloured(0,0,0)
Signal = -1
ELSE
Signal = 0
ENDIF
/////////////////////////////////////////





RETURN Signal

Sujets similaires
des boites noires dans les voitures dès 2022
par HellionReign » 19 mai 2021 22:02 (7 Réponses)
Code Darvas mofications
Fichier(s) joint(s) par Anonymous99 » 28 févr. 2015 21:41 (3 Réponses)
Screener Darvas
par Raiko » 04 mars 2015 21:54 (1 Réponses)
Darvas Diaries
par kero » 14 avr. 2017 21:59 (16 Réponses)
Retouver les mêmes indicateurs PRT / MT4
par Ernesto » 02 mai 2014 13:20 (4 Réponses)
PRT 11 / Forcer l'affichage pour inclure les indicateurs
Fichier(s) joint(s) par OpenBar » 13 août 2021 12:58 (1 Réponses)
Indicateurs additionnels PRT ?
par HellionReign » 04 oct. 2023 09:49 (9 Réponses)
Indicateurs : lesquels utilisez vous et comment ?
par Lesdiguieres » 05 oct. 2011 00:38 (10 Réponses)
Histoire des indicateurs et des traders
par charlie » 26 oct. 2011 17:50 (6 Réponses)
Indicateurs
par kieran » 13 juin 2013 10:35 (22 Réponses)