Code RENKO (sur prix)

Bonjour à tous,

 

Voici un petit code bien sympa, et donc je suis fier finalement !

En effet à mes débuts de codeur, il m’était impossible de pouvoir créer un Renko sur prix.

Quel est l’intérêt de créer un Renko, alors que cette représentation graphique est déjà présente sur ProRealTime ?

 

Eh bien, tout simplement : PRT ne peut pas backtester à partir du Renko !

Il faut donc créer soi-même un indicateur correspondant.

A partir de ce code, vous pourrez donc backtester de nombreuses stratégies à base de Renko, enfin !

 

Cet indicateur a la particularité de présenter des boîtes à taille fixe, d’où le nom que je lui ai donné.

En fait, il se sert encore du cours de clôture. Il serait parfait s’il se servait du cours quel qu’il soit, à n’importe quel moment. Mais je ne vois pas comment me servir autrement que de la commande « close » pour déterminer le prix à un instant donné.

 

Pour ce graphique et pour l’exemple, j’ai mis cet indicateur sur le DAX, à boîtes fixes de 100 points.

Renko Fixed on Price

 

Voici le code de l’INDICATEUR :

à insérer directement sur le prix

 

boxsize = 100
// à paramétrer selon la valeur.
//Exemple 100 points pour le DAX, 0.0020 point pour l'EUR/USD, etc.

once upbox = close
once downbox = close - boxsize

IF close crosses over upbox + boxsize THEN
upbox = upbox + boxsize
downbox = downbox + boxsize
ELSIF close crosses under downbox - boxsize THEN
upbox = upbox - boxsize
downbox = downbox - boxsize
ENDIF


RETURN upbox as "UP Box", downbox as "DOWN Box"



ATTENTION !

Il existe encore un bug, en raison de très grosses bougies.

En effet, la boîte reste fixe jusqu’à ce qu’elle soit traversée dans l’autre sens.

Je vais m’attarder à corriger cela, si quelqu’un a la solution je serais ravi de l’apprendre.

 

Renko Bug

.

.

MISE A JOUR : 20 août 2017

Un de mes lecteurs m’a gracieusement envoyé un email avec un nouveau code corrigé.

De plus, ce code a l’avantage de se fixer sur des valeurs « rondes » des prix.

 

ATTENTION

Ce code n’est pas encore parfait.
En effet, il affichera une nouvelle brique renko QUE si le cours clôture au-dessous ou en-dessous du niveau précédent de Renko.
Je n’ai pas encore trouvé la solution pour que le renko s’affiche même si le cours n’a pas clôturé encore au-dessous / en dessous du niveau précédent.

 

 

 

Voici le code de l’INDICATEUR :

à insérer directement sur le prix

 

boxSize = 20

// On aime bien que les valeurs des Renko soient "rondes"...
once renkoMax = ROUND(close / boxSize) * boxSize
once renkoMin = renkoMax - boxSize

IF close crosses over renkoMax + boxSize THEN
WHILE close > renkoMax + boxSize
renkoMax = renkoMax + boxSize
renkoMin = renkoMin + boxSize
WEND

ELSIF close crosses under renkoMin - boxSize THEN
WHILE close < renkoMin - boxSize
renkoMax = renkoMax - boxSize
renkoMin = renkoMin - boxSize
WEND

ENDIF

RETURN renkoMax as "Renko Max", renkoMin as "Renko Min"

 

..

MISE A JOUR : 20 août 2017

Alors, comment faire pour que le Renko s’affiche non pas lorsqu’une bougie a clôturé au-dessus / en-dessous du stade suivant, mais bien lorsque le plus haut / le plus bas a dépassé le stade suivant ?

 

J’ai donc remodifé le code, et enfin le résultat semble correct et définitif.

 

 

 

Voici le code de l’INDICATEUR : 

 

boxSize = 20

// On aime bien que les valeurs des Renko soient "rondes"...
once renkoMax = ROUND(close / boxSize) * boxSize
once renkoMin = renkoMax - boxSize

IF high > renkoMax + boxSize THEN
WHILE high > renkoMax + boxSize
renkoMax = renkoMax + boxSize
renkoMin = renkoMin + boxSize
WEND

ELSIF low < renkoMin - boxSize THEN
WHILE low < renkoMin - boxSize
renkoMax = renkoMax - boxSize
renkoMin = renkoMin - boxSize
WEND

ENDIF

RETURN renkoMax as "Renko Max", renkoMin as "Renko Min"
Share Button