RSI custom

Forum d'entraide ProRealTime : prise en main, réglages, indicateurs, programmation ProBuilder et ProOrder, astuces entre utilisateurs de la plateforme.
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

RSI custom

Message non lu par Fredo »

Bonjour,

Je cherche à customiser le RSI en choisissant le "prix" de la dernière bougie (celle qui est active) pour voir par exemple quelle serait la valeur de ce RSI si la clôture avait été au niveau du plus bas, du plus, ... et à terme, trouver le prix qui génère un RSI avec une valeur spécifique (comme 70 ou 30 par exemple).

Bref, donc comment faire pour que sur un RSI(14), PRT utilise les données de la close de chaque bougie antérieure et une information quiu n'est pas le prix pour le bougie en cours.

J'ai fait ce petit code pour le moement, mais je me dis que c'est trop "facile" pour être valable!
for i = 0 to P
if i= 0 then
prix = N
else
prix = close
endif
next

R = RSI[P](prix)

Return R
Avec comme Variables :
P = Période du RSI (entier >0, par défaut 14)
N = prix "simulé" du cours utilisé pour le RSI sur la barre active (décimal>0).

Qu'en pensez vous?
GOLDS
Compagnon Jedi
Messages : 1072
Enregistré le : 03 juin 2013 21:26

Re: RSI custom

Message non lu par GOLDS »

J'ai pas bien compris ton problème fredo mais le RSI est un indicateur qui est calculé à partir d'une cloture de bougie donc de toute façon sur une bougie en cours le RSI classique n'a aucun valeur puisque pas construit pour.
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

En effet Golds. Justement, ce que je souhaite c'est que ce RSI utilise le cours de clotuure pour toutes les bougies, sauf celle en cours, ou je souhaite moi même fixer ce cours.
Avatar du membre
falex
Le Gladiateur
Messages : 34275
Enregistré le : 12 févr. 2013 15:41

Re: RSI custom

Message non lu par falex »

ah ça ressemble a un bout de code que j'avais fait ou je calculait le prix de clôture nécessaire pour que la MM de période X) fasse une clôture au-dessus ou en dessous de la bougie courante.

ça ressemblait à ça , j'affiche le prix nécessaire et non la MM.

Code : #

//Calcul de la valeurs MMn = close barre courante

sommes7 = summation[7](close) - close
n17 = sommes7/6 //periode -1

sommes20 = summation[20](close) - close
n120 = sommes20/19 //periode -1

return n17 as "MM(7)", n120 as "MM(20)"
donc à toi de faire pareil, par contre le RSI est un peu plus casse-pied à calculer qu'une simple MM.
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

Merci falex, y'a un peu de ça dans mon objectif sur ce RSI. Parcontre je comprends pas très bien ton code...
Avatar du membre
falex
Le Gladiateur
Messages : 34275
Enregistré le : 12 févr. 2013 15:41

Re: RSI custom

Message non lu par falex »

normal car il faut que tu fasses, sur papier, l'exercice d'analyse mathématique : quel est la formule mathématique qui te donne le cours X pour le calcul de ta moyenne pour quel remplisse la condition demandé.

J'ai plus la formul exact mais le code n'est que le reflet de cette exercice.
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

OK
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

Maintenant qu'on peut "toper" le barindex de la dernière barre, va falloir reprendre cette recherche!
Avatar du membre
falex
Le Gladiateur
Messages : 34275
Enregistré le : 12 févr. 2013 15:41

Re: RSI custom

Message non lu par falex »

Lol au boulot !
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

J'allais te le dire!
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

Pffft, en fait il faudrait que PRT permette de gérer des tableaux de données, mais c'est impossible!
Autre solution, que PRT puisse gérer des variables paramétrées, avec un paramètre dans le nom de la variable (ex : "variable "), mais ça non plus il ne sait pas faire.

Faut donc tout faire à la main. Donc on peut rien faire de variable. Tant pis.
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

Décidément, je n'y arrive pas.

Je tente de coder un RSI de période 2 et cela me donne plein de Bêtises. Je sais que je ne fait que de la moyenne arithmétique, mais à ce détail près, les résultats sont très surprenants.

Voici mon code :

Code : #

gainT = 0
perteT = 0
p0 = close
p1 = close[1]
if p0 - p1 < 0 then
perteT = perteT + (p1 - p0)
else
gainT = gainT + (p0 - p1)
endif

p2 = close[2]
if p1 - p2 < 0 then
perteT = perteT + (p2 - p1)
else
gainT = gainT + (p2 - p1)
endif

I = (gainT/2) / ( (gainT/2)+(perteT/2) )

Return I
Où y a t il une erreur???
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

J'ai réussi!!!
C'est une version qui approxime le RSI, mais c'est largement suffisant en terme de précision.

Voici donc un code qui calcule une valeur approchée du RSI de Période P (à mettre en paramètre) et une valeur approché du RSI de période P où le cours de clôture de la barre courante est remplacée par le plus haut de la barre courante (appelé "RSI High") et par le plus bas de la barre courante (appelé "RSI Low").

Code : #

hausse=max(0,close[1]-close[2])
baisse=max(0,close[2]-close[1])

// Calcul RSI approximatif
mh=((wilderaverage[p-1](hausse))*(p-1) + max(0,close-close[1])) / p
mb=((wilderaverage[p-1](baisse))*(p-1) + max(0,close[1]-close)) / p
rs=mh/mb
I=100-100/(1+rs)

// Calcul RSI approx sur le High de la dernière bougie
mhh=((wilderaverage[p-1](hausse))*(p-1) + max(0,high-close[1])) / p
mbh=((wilderaverage[p-1](baisse))*(p-1) + max(0,close[1]-high)) / p
rsh=mhh/mbh
IH=100-100/(1+rsh)

// Calcul RSI approx sur le Low de la dernière bougie
mhl=((wilderaverage[p-1](hausse))*(p-1) + max(0,low-close[1])) / p
mbl=((wilderaverage[p-1](baisse))*(p-1) + max(0,close[1]-low)) / p
rsl=mhl/mbl
IL=100-100/(1+rsl)

Return I as "RSI approx", IH as "RSI High", IL as "RSI Low"


Espérant que cela peut en aider certains d'entre vous...

La prochaine étape sera d'utiliser ce bout de code pour calculer quelle devrait être la valeur de la barre à venir pour que le RSI soit de X (par exemple 30 ou 70...).

-+
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: RSI custom

Message non lu par ladefense92800 »

:merci: de partager ça . :mercichinois:
Fredo
Ewok
Messages : 69
Enregistré le : 23 juin 2014 09:24

Re: RSI custom

Message non lu par Fredo »

Ton merci eme touche.

C'est comme ça que j'envisage un forum : un lieu d'échange et de partage !