Bonjour à tous,
Est-il possible d’avoir la conversion du code ci dessous en version PRT ?
Merci beaucoup
study("Reversal zone finder", overlay=true)
// User inputs
longAlerts = input(title="Trigger Long Alerts", type=input.bool, defval=true)
shortAlerts = input(title="Trigger Short Alerts", type=input.bool, defval=true)
rsiOB = input(title="RSI OverBought Value", type=input.integer, defval=65)
rsiOS = input(title="RSI OverSold Value", type=input.integer, defval=35)
// Big candle detector
lastCandleSize = abs(high[1] - low[1])
curCandleSize = abs(high - low)
bullishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close > open)
bearishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close < open)
// RSI
rsiValue = rsi(close[1],14)
// Plot signal
plotshape(bullishCandle and ((rsiValue[1] < rsiOS) or (rsiValue < rsiOS)) , color=color.green, style=shape.triangleup, size=size.tiny, location=location.belowbar)
plotshape(bearishCandle and ((rsiValue[1] > rsiOB) or (rsiValue > rsiOB)) , color=color.red, style=shape.triangledown, size=size.tiny, location=location.abovebar)
// Two Way Alert generator
alertcondition((bullishCandle and longAlerts) or (bearishCandle and shortAlerts), title="Alert", message="Alert for {{ticker}}")
Ci-dessous le code traduit pour prorealtime, il s’agit de tracer des flèches de couleurs sur de grandes bougies lorsque le RSI quitte les zones de surachat et de survente.
rsiOB = 65 //RSI OverBought Value
rsiOS = 35 //RSI OverSold Value
// Big candle detector
lastCandleSize = abs(high[1] - low[1])
curCandleSize = abs(high - low)
bullishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close > open)
bearishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close < open)
// RSI
rsiValue = rsi[14](close[1])
if bullishCandle and ((rsiValue[1] < rsiOS) or (rsiValue < rsiOS)) then
drawarrowup(barindex,low) coloured("green")
elsif bearishCandle and ((rsiValue[1] > rsiOB) or (rsiValue > rsiOB)) then
drawarrowdown(barindex,high) coloured("red")
endif
return
Merci Nicolas, pour ce retour rapide.
J’ai tenté d’en faire un screener pour qu’il me ressorte les valeurs pour lesquelles une flèche vient d’apparaitre (baisse ou hausse).
Code ci dessous, mais cela ne fonctionne pas comme désiré, il me ressort la liste de toutes les actions du compartiment screené , seule celles avec critère a 1 il y a bien une fleche ( bear ) rien en bull et toutes les autres valeurs sortent en critere 0 mais sans aucune fleche (signal)
Peux tu m’indiquer commet modifier ce code pour qu’il fonctionne ?
Merci
rsiOB = 65 //RSI OverBought Value
rsiOS = 35 //RSI OverSold Value
// Big candle detector
lastCandleSize = abs(high[1] - low[1])
curCandleSize = abs(high - low)
bullishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close > open)
bearishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close < open)
// RSI
rsiValue = rsi[14](close[1])
c1 = bullishCandle and ((rsiValue[1] < rsiOS) or (rsiValue < rsiOS))
c2 = bearishCandle and ((rsiValue[1] > rsiOB) or (rsiValue > rsiOB))
screener (c1 or c2)
[c1 or c2] pour filtrer, pas (c1 or c2)… les crochets pour filtrer, les parenthèses pour dire dans quel ordre…
SCREENER
Merci Bryan,
Si je veux ajouter une condition c3 = volume > 100 000 par exemple et que cette condition soit respectée pour C1 et C2
Comment dois-je l’ecrire ? j’ai essayé ainsi : screener [c1 or c2] and c3
Mais cela fonctionne pas.
J’ai essayé avec : screener [(c1 and c3) or (c2 and c3)], cela à l’air de fonctionner, mais n’y a t il pas plus simple a écrire ?
screener [(c1 or c2) and c3]
Parfait, merci j’ai un peu de mal avec les crochets et parentheses.
Bonjour,
L’indicateur n’est pas dénué d’intérêt me semble t’il ?
Comme souvent on a trop d’indicateurs sur le graphe et on arrive à s’y perdre j’ai rajouté du texte.
pas de bouton pour insérer du code ?
// RSI REVERSAL ZONE
// rsiOB = 80 //RSI OverBought Value
// rsiOS = 20 //RSI OverSold Value
// Big candle detector
lastCandleSize = abs(high[1] - low[1])
curCandleSize = abs(high - low)
bullishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close > open)
bearishCandle = (curCandleSize > (lastCandleSize * 1.5)) and (close < open)
// RSI
rsiValue = rsi[prsi](close[1])
if bullishCandle and ((rsiValue[1] < rsiOS) or (rsiValue < rsiOS)) then
drawarrowup(barindex,low) coloured (247,255,0)//("green")
DRAWTEXT(" RSI UP ", barindex,close,Dialog, Standard, 15) COLOURED(247,255,0)//jaune
elsif bearishCandle and ((rsiValue[1] > rsiOB) or (rsiValue > rsiOB)) then
drawarrowdown(barindex,high) coloured (255,0,247)//("red")
DRAWTEXT(" RSI DW ", barindex,close,Dialog, Standard, 15) COLOURED(255,0,247)//violet
endif
return customclose as "customclose"
// Variables :
// OB = 70
// OS = 30
// RSI = 12
Bons trades à tous
merci pour cet ajout.
Pour ma part je pense qu’effectivement il n’est pas sans intérêt.
Concernant ton code, pourrais tu poster le fichier itf ? l’idée des variable top mais je ne sais pas les coder, j’ai donc une erreur en copié collé.
Pour le bouton d’insertion de code je ne sais pas pour quelle raison, parfois il apparait et parfois non.
Encore merci
au dessus du code tu as une petite clef “variables”
il suffit de rajouter les paramètres : OB , OS, PRSI et le tour est joué.
bons trades
OK merci.
par contre j’ai une ligne qui rejoint les closes de chaque bougie qui apparait. Comment la supprimer ?
tu l’a met en petits pointillés (l’option invisible manque à PRT , ce serait une idée de la rajouter) ou sinon il faut supprimer customclose après return
Bonjour,
l’option invisible est là mais a changé, avant (jusqu’à la v10.3 si je ne dis pas de bêtise) elle était dans le même menu déroulant que ligne pleine ou pointillée ou autres styles, et maintenant en v11 l’invisibilité “ligne par ligne” s’obtient en décochant la case devant chaque ligne retournée par return dans la fenêtre de propriétés de l’indicateur. Mais quand il n’y a qu’une seule valeur dans le return comme dans le code ci-dessus, la case à décocher devant cette ligne seule n’apparait pas.
Si on ne se sert pas du tout de la ligne customclose, le plus simple est de terminer le code par “return” sans ajouter customclose, seul les graphismes du code rajouté au prix s’afficheront.
Si on veut garder l’option de pouvoir utiliser la ligne customclose, alors on peut aussi contourner le problème en modifiant la ligne return pour y rajouter une 2e variable qu’on n’utilisera pas, ce qui fera apparaitre les 2 cases à décocher pour l’invisibilité ligne par ligne (par ex: return customclose as “customclose”, high as “high”), de là décocher en permanence la case devant le high pour la garder invisible, et cocher/décocher la case devant customclose selon qu’on veuille faire apparaitre la ligne ou pas.
Bonjour JC
Ne serait-il pas mieux de revenir à un peu de simplicité comme c’était dans les versions antérieures ?
merci pour tes explications
bonne journée