Conversion indicateur “reversal zone” de TV vers PRT

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #207249 quote
    maxlys
    Participant
    Senior

    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}}")
    #207256 quote
    Nicolas
    Keymaster
    Master

    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
    reversal-zone.png reversal-zone.png
    #207291 quote
    maxlys
    Participant
    Senior

    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)
    #207292 quote
    JC_Bywan
    Moderator
    Master

    [c1 or c2] pour filtrer, pas (c1 or c2)… les crochets pour filtrer, les parenthèses pour dire dans quel ordre…

    SCREENER

    #207294 quote
    maxlys
    Participant
    Senior

    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 ?

    #207295 quote
    JC_Bywan
    Moderator
    Master

    screener [(c1 or c2) and c3]

    #207296 quote
    maxlys
    Participant
    Senior

    Parfait, merci j’ai un peu de mal avec les crochets et parentheses.

    #207342 quote
    supertiti
    Participant
    Master

    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

    RSI-REVERSAL-ZONE.jpg RSI-REVERSAL-ZONE.jpg
    #207346 quote
    maxlys
    Participant
    Senior

    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

    #207351 quote
    supertiti
    Participant
    Master

    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

    #207356 quote
    maxlys
    Participant
    Senior

    OK merci.

    par contre j’ai une ligne qui rejoint les closes de chaque bougie qui apparait. Comment la supprimer ?

    #207359 quote
    supertiti
    Participant
    Master

    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

    #207361 quote
    maxlys
    Participant
    Senior

    OK merci

    #207364 quote
    JC_Bywan
    Moderator
    Master

    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.

    #207365 quote
    supertiti
    Participant
    Master

    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

Viewing 15 posts - 1 through 15 (of 15 total)
  • You must be logged in to reply to this topic.

Conversion indicateur “reversal zone” de TV vers PRT


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
maxlys @maxlys Participant
Summary

This topic contains 14 replies,
has 4 voices, and was last updated by supertiti
3 years, 2 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 01/11/2023
Status: Active
Attachments: 2 files
Logo Logo
Loading...