Bonjour à tous,
Indicateur = 0
signalachat = RSI[3](2) > RSI[3](1) and RSI[3](1) < RSI[2]
signalvente = RSI[3](2) < RSI[3](1) and RSI[3](1) > RSI[2]
if signalvente then
indicateur=1
endif
if signalachat then
indicateur=-1
endif
return indicateur
J’essaie de coder un retournement de RSI (RSI passant de descendant à ascendant, vice et versa.).
Ci-dessus ce que je pensais être correcte mais qui ne donne rien.
Je compare la valeur du rsi N-2 et N-1 puis N-1 et close.
Je ne vois pas où j’ai fais l’erreur.
L’objectif de récupérer cette information c’est de donner des points d’entrés dans certains cas précis.
Merci d’avance.
Le offset de période s’écrit entre crochets et non entre parenthèses, soit la valeur du RSI de période 14 de la bougie précédente:
RSI[14][1]
Pour comparer les valeurs précédentes, c’est [ ], pas ( )
(et peut-être la période 2 au lieu de 3 à la fin, mais dans un souci d’homogénéité des valeurs, pas d’un problème de syntaxe)
le plus simple pour ne pas s’enmêler les pinceaux, mettre son RSI personnalisé dans une variable: myRSI=RSI[3](close)
puis faire: myRSI[2]>myRSI[1] and myRSI[1]<myRSI
Edit: Nicolas plus rapide
Merci pour vos réponses.
Ce qui m’a induit en erreur c’est ça :myRSI=RSI[3](close)
le close est entre () et non []. donc j’étais persuadé que c’était des () pour comparer les valeurs passées…
Encore merci et bonne journée
j’ajoute ci-dessous le code si cela peut aidé.
Indicateur = 0
myrsi = rsi[3](close)
signalachat = myrsi[3] > myrsi[2] and myrsi[2] < myrsi[1]
signalvente = myrsi[3] < myrsi[2] and myrsi[2] > myrsi[1]
if signalvente then
indicateur=1
endif
if signalachat then
indicateur=-1
endif
return indicateur
Bonjour, je pense que vous avez une période de retard dans votre code final, par rapport à votre demande initiale. Je mettrais:
signalachat = myrsi[2] > myrsi[1] and myrsi[1] < myrsi[0]
Je ne sais pas si c’est une erreur, ou si c’est voulu.
Pour approfondir un peu, RSI est une fonction qui prend un paramètre entre crochets (à cause de la formule même du RSI), et qui s’applique sur une série ou tableau de données entre paranthèses, pour retourner une autre série de données.
En général en programmation, l’indice du premier élément d’un tableau est 0, et aller chercher une valeur dans une table s’écrit variable[indice]. Du coup, on écrit souvent close, mais on pourrait très bien écrire close[0].
Merci pour votre réponse Swingueur.
Effectivement j’avais un train de retard, ce que j’ai immédiatement vu et corrigé dans le code.
Merci pour votre explication.
J’avoue ne pas être doué pour la programmation, je cherche je fais des essais, j’avance petit à petit. je sais pertinemment que je n’écrirais jamais de code “compliqué” comme on peut voir sur le forum. Mais je reste persuadé que l’on peut faire des choses sympas avec du code de base. Et même si cela ne me mène nul part j’aurai appris les bases pour coder :p
Bonne soirée à tous