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

Code de l'indicateur Niveaux Symboliques corrigé

par Luc45 » 01 janv. 2025 21:51

Bonjour,

j'essaye prt après avoir fais mes indicateurs sur MT4,MT5,PineScript.
J'avais besoin de l'indicateur pour afficher les niveaux symboliques et je suis passé sur le Gold, boum!, un niveau plus bas que 0 a pas été prévu dans le code. J'ai seulement ajouté les ifs qui conviennent. Je lui ai ajouté une optimisation pour aller chercher que les niveaux des 200 dernières barres quand il se lance pour la première fois (ensuite c'est dynamique).
Voici le code et le fichier .tif pour seulement l'importer.
Spoiler:

Code : #

DEFPARAM CALCULATEONLASTBARS = 200
// --- settings ProRealTime
// active1000=1
// active750=1
// active500=1
// active250=1
// active100=1
// active50=1
// --- end of settings ProRealTime

// -----------------------------------------------------------------------------
// Comments
// -----------------------------------------------------------------------------

// 50
// 100
// 250
// 500
// 750
// 1000

// -----------------------------------------------------------------------------
// Main
// -----------------------------------------------------------------------------

//unset( $ArrayNiv )

IF intradaybarindex=0 THEN

// 1000,250,500,750
symb=1000
base=floor(DOpen(0)/symb)
FOR i = -3 TO 3 DO
// 1000
niv=base*symb+i*symb
IF niv >= 0 THEN
IF NOT ISSET($ArrayNiv[niv]) AND active1000 THEN
DRAWHLINE(niv) COLOURED ("black") STYLE(DOTTEDLINE,2)
$ArrayNiv[niv]=1
ENDIF
ENDIF
// 250
niv=base*symb+i*symb+250
IF niv >= 0 THEN
IF NOT ISSET($ArrayNiv[niv]) AND active250 THEN
DRAWHLINE(niv) COLOURED ("orange") STYLE(DOTTEDLINE,1)
$ArrayNiv[niv]=1
ENDIF
ENDIF
// 500
niv=base*symb+i*symb+500
IF niv >= 0 THEN
IF NOT ISSET($ArrayNiv[niv]) AND active500 THEN
DRAWHLINE(niv)COLOURED ("orange") STYLE(DOTTEDLINE,1)
$ArrayNiv[niv]=1
ENDIF
ENDIF
// 750
niv=base*symb+i*symb+750
IF niv >= 0 THEN
IF NOT ISSET($ArrayNiv[niv]) AND active750 THEN
DRAWHLINE(niv) COLOURED ("orangeRed") STYLE(DOTTEDLINE,1)
$ArrayNiv[niv]=1
ENDIF
ENDIF
NEXT

// 100,50
symb=100
base=floor(DOpen(0)/symb)
FOR i = -7 TO 7 DO
// 100
niv=base*symb+i*symb
IF niv >= 0 THEN
IF NOT ISSET($ArrayNiv[niv]) AND active100 THEN
DRAWHLINE(niv) COLOURED ("grey") STYLE(DOTTEDLINE,1)
$ArrayNiv[niv]=1
ENDIF
ENDIF
// 50
niv=base*symb+i*symb+50
IF niv >= 0 THEN
IF NOT ISSET($ArrayNiv[niv]) AND active50 THEN
DRAWHLINE(niv) COLOURED ("grey") STYLE(DOTTEDLINE,1)
$ArrayNiv[niv]=1
ENDIF
ENDIF
NEXT

ENDIF

RETURN

// -----------------------------------------------------------------------------
// Annexes
// -----------------------------------------------------------------------------

// https://www.andlil.com/forum/indicateur-prt-pour-afficher-tous-les-niveaux-symboliques-t39441-30.html

Niveaux Symboliques.zip
(1.17 Kio) Téléchargé 13 fois

Re: Code de l'indicateur Niveaux Symboliques corrigé

par ChristelleP » 02 janv. 2025 06:01

merci Luc45 :mercichinois:

Code de l'indicateur Niveaux Symboliques corrigé V1.1

par Luc45 » 03 janv. 2025 06:08

Maintenant les niveaux fonctionnent aussi pour les pairs, il va s'adapter grâce à un merveilleux logarithme.
Par exemple pour le nasdaq qui est dans les 20000, ou le SP500 qui est dans les 6000 et EURUSD qui est dans les 1.
Voici l'indicateur à importer, le code est lisible.
Niveaux Symboliques V1.1.zip
(1.28 Kio) Téléchargé 10 fois

Re: Code de l'indicateur Niveaux Symboliques corrigé

par ChristelleP » 03 janv. 2025 12:18

La pièce-jointe n'est pas passé. :oops:

Re: Code de l'indicateur Niveaux Symboliques corrigé

par Amarantine » 03 janv. 2025 13:42

Luc: mets le code en spoiler comme dans ton 1er message et toujours vérifier que ça passe, sinon il faut corriger immédiatement.

Re: Code de l'indicateur Niveaux Symboliques corrigé

par Luc45 » 03 janv. 2025 16:46

Oh, voici le code et le fichier.
Spoiler:

Code : #

DEFPARAM CALCULATEONLASTBARS = 200
//defparam drawonlastbaronly = true
// --- settings ProRealTime
// active1000=1
// active750=1
// active500=1
// active250=1
// active100=1
// active50=1
// --- end of settings ProRealTime

// -----------------------------------------------------------------------------
// Comments
// -----------------------------------------------------------------------------

// 50
// 100
// 250
// 500
// 750
// 1000

// -----------------------------------------------------------------------------
// Main
// -----------------------------------------------------------------------------

//unset( $ArrayNiv )

IF intradaybarindex=0 THEN

// nombre de zeros
n=floor(Log(DOpen(0))/Log(10))
// 1000,250,500,750
symb=Pow(10, n-1)
base=floor(DOpen(0)/symb)*symb

FOR i = -3 TO 3 DO
// 1000
niv=base+i*symb
IF niv >= 0 THEN
nivIdx = niv
IF floor(niv) <> niv THEN
nivIdx = niv * 1000
ENDIF

IF NOT ISSET($ArrayNiv[nivIdx]) AND active1000 THEN
DRAWHLINE(niv) COLOURED ("black") STYLE(DOTTEDLINE,2)
$ArrayNiv[nivIdx]=1
ENDIF
ENDIF
// 250
niv=base + (i+0.25)*symb
IF niv >= 0 THEN
nivIdx = niv
IF floor(niv) <> niv THEN
nivIdx = niv * 1000
ENDIF
IF NOT ISSET($ArrayNiv[nivIdx]) AND active250 THEN
DRAWHLINE(niv) COLOURED ("orange") STYLE(DOTTEDLINE,1)
$ArrayNiv[nivIdx]=1
ENDIF
ENDIF
// 500
niv=base + (i + 0.5)*symb
IF niv >= 0 THEN
nivIdx = niv
IF floor(niv) <> niv THEN
nivIdx = niv * 1000
ENDIF
IF NOT ISSET($ArrayNiv[nivIdx]) AND active500 THEN
DRAWHLINE(niv)COLOURED ("orange") STYLE(DOTTEDLINE,1)
$ArrayNiv[nivIdx]=1
ENDIF
ENDIF
// 750
niv=base + (i + 0.75)*symb
IF niv >= 0 THEN
nivIdx = niv
IF floor(niv) <> niv THEN
nivIdx = niv * 1000
ENDIF
IF NOT ISSET($ArrayNiv[nivIdx]) AND active750 THEN

DRAWHLINE(niv) COLOURED ("orangeRed") STYLE(DOTTEDLINE,1)
$ArrayNiv[nivIdx]=1
ENDIF
ENDIF
NEXT

// 100,50
symb = symb / 10
base=floor(DOpen(0)/symb) * symb
FOR i = -7 TO 7 DO
// 100
niv=base+i*symb
IF niv >= 0 THEN
nivIdx = niv
IF floor(niv) <> niv THEN
nivIdx = niv * 1000
ENDIF
IF NOT ISSET($ArrayNiv[nivIdx]) AND active100 THEN
DRAWHLINE(niv) COLOURED ("grey") STYLE(DOTTEDLINE,1)
$ArrayNiv[nivIdx]=1
ENDIF
ENDIF
// 50
niv=base+(i+0.5)*symb
IF niv >= 0 THEN
nivIdx = niv
IF floor(niv) <> niv THEN
nivIdx = niv * 1000
ENDIF
IF NOT ISSET($ArrayNiv[nivIdx]) AND active50 THEN

DRAWHLINE(niv) COLOURED ("grey") STYLE(DOTTEDLINE,1)
$ArrayNiv[nivIdx]=1
ENDIF
ENDIF
NEXT

ENDIF

RETURN

// -----------------------------------------------------------------------------
// Annexes
// -----------------------------------------------------------------------------

// https://www.andlil.com/forum/indicateur-prt-pour-afficher-tous-les-niveaux-symboliques-t39441-30.html

Niveaux Symboliques V1.1.zip
(1.28 Kio) Téléchargé 10 fois

Re: Code de l'indicateur Niveaux Symboliques corrigé

par Amarantine » 03 janv. 2025 16:56

:top: :mercichinois:

Sujets similaires
Indicateur de niveaux symboliques
Fichier(s) joint(s) par DarthTrader » 23 août 2016 17:07 (21 Réponses)
Indicateur niveaux symboliques
Fichier(s) joint(s) par Trading360 » 20 juil. 2020 12:53 (2 Réponses)
Indicateur PRT pour afficher tous les niveaux symboliques
Fichier(s) joint(s) par luccho » 07 oct. 2020 17:37 (61 Réponses)
Tracer les niveaux symboliques
par TT32 » 05 sept. 2019 22:59 (5 Réponses)
Premier passage sur PP et Niveaux symboliques
par tjee » 12 sept. 2019 09:52 (2 Réponses)
niveaux symboliques
par bruno78 » 13 avr. 2020 10:28 (10 Réponses)
Code indicateur
par benylio » 18 nov. 2014 18:50 (5 Réponses)
Adapter un indicateur déjà codé
par Katana » 07 sept. 2018 18:02 (9 Réponses)
Points pivots, Seuils symboliques, Supports/résistances
par Jaack03 » 13 avr. 2020 11:54 (6 Réponses)