STC Indicator – de trading view

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #212122 quote
    NathanC
    Participant
    New

    Bonjour, j’essaye de convertir un code trading view :

    //@version=5
    //[SHK] STC colored indicator
    //https://www.tradingview.com/u/shayankm/
    
    indicator(title='[SHK] Schaff Trend Cycle (STC)', shorttitle='STC', overlay=false)
    EEEEEE = input(12, 'Length')
    BBBB = input(26, 'FastLength')
    BBBBB = input(50, 'SlowLength')
    
    AAAA(BBB, BBBB, BBBBB) =>
        fastMA = ta.ema(BBB, BBBB)
        slowMA = ta.ema(BBB, BBBBB)
        AAAA = fastMA - slowMA
        AAAA
    
    AAAAA(EEEEEE, BBBB, BBBBB) =>
        AAA = input(0.5)
        var CCCCC = 0.0
        var DDD = 0.0
        var DDDDDD = 0.0
        var EEEEE = 0.0
        BBBBBB = AAAA(close, BBBB, BBBBB)
        CCC = ta.lowest(BBBBBB, EEEEEE)
        CCCC = ta.highest(BBBBBB, EEEEEE) - CCC
        CCCCC := CCCC > 0 ? (BBBBBB - CCC) / CCCC * 100 : nz(CCCCC[1])
        DDD := na(DDD[1]) ? CCCCC : DDD[1] + AAA * (CCCCC - DDD[1])
        DDDD = ta.lowest(DDD, EEEEEE)
        DDDDD = ta.highest(DDD, EEEEEE) - DDDD
        DDDDDD := DDDDD > 0 ? (DDD - DDDD) / DDDDD * 100 : nz(DDDDDD[1])
        EEEEE := na(EEEEE[1]) ? DDDDDD : EEEEE[1] + AAA * (DDDDDD - EEEEE[1])
        EEEEE
    
    mAAAAA = AAAAA(EEEEEE, BBBB, BBBBB)
    mColor = mAAAAA > mAAAAA[1] ? color.new(color.green, 20) : color.new(color.red, 20)
    
    
    
    if mAAAAA[3] <= mAAAAA[2] and mAAAAA[2] > mAAAAA[1] and mAAAAA > 75
        alert("Red", alert.freq_once_per_bar)
    if mAAAAA[3] >= mAAAAA[2] and mAAAAA[2] < mAAAAA[1] and mAAAAA < 25
        alert("Green", alert.freq_once_per_bar)
    
    
    plot(mAAAAA, color=mColor, title='STC', linewidth=2)
    
    ul = plot(25, color=color.new(color.gray, 70))
    ll = plot(75, color=color.new(color.gray, 70))
    fill(ul, ll, color=color.new(color.gray, 96))
    
    

    Pour la 2eme fonction j’ai :

    // function_SchaffTrendCycle
    // Inputs
    Length = 12
    FastLength = 26
    SlowLength = 50
    
    // Schaff Trend Cycle calculation
    AAA = 0.5
    MACDD = CALL "function_MACD_Difference"[FastLength, SlowLength]
    CCC = Lowest[Length](MACDD)
    CCCC = Highest[Length](MACDD) - CCC
    
    CCCCC = 0
    IF CCCC > 0 THEN
    CCCCC = (MACDD - CCC) / CCCC * 100
    ELSif CCCCC[1] = undefined then
    CCCCC = 0
    else
    CCCCC =CCCCC[1]
    ENDIF
    
    DDD = 0
    IF DDD[1] = 0 THEN
    DDD = AAA * CCCCC
    ELSE
    DDD = DDD[1] + AAA * (CCCCC - DDD[1])
    ENDIF
    
    DDDD = Lowest[Length](DDD)
    DDDDD = Highest[Length](DDD) - DDDD
    
    DDDDDD = 0
    IF DDDDD > 0 THEN
    DDDDDD = (DDD - DDDD) / DDDDD * 100
    elsif DDDDDD[1]= undefined then
    DDDDDD = 0
    ELSE
    DDDDDD = DDDDDD[1]
    ENDIF
    
    EEEEE = 0
    IF EEEEE[1] = 0 THEN
    EEEEE = AAA * DDDDDD
    ELSE
    EEEEE = EEEEE[1] + AAA * (DDDDDD - EEEEE[1])
    ENDIF
    
    RETURN EEEEE

    Je pense qu’il y a un problème au niveau des fonctions undefined, (nz) sur le pine script) , je ne sais pas comment faire, des idées ?

    #212162 quote
    NathanC
    Participant
    New

    Bonjour besoin d’aide pour convertir ce code, les “nz” me poses vraiment des problèmes !

    //@version=5
    //[SHK] STC colored indicator
    //https://www.tradingview.com/u/shayankm/

    indicator(title='[SHK] Schaff Trend Cycle (STC)’, shorttitle=’STC’, overlay=false)
    EEEEEE = input(12, ‘Length’)
    BBBB = input(26, ‘FastLength’)
    BBBBB = input(50, ‘SlowLength’)

    AAAA(BBB, BBBB, BBBBB) =>
    fastMA = ta.ema(BBB, BBBB)
    slowMA = ta.ema(BBB, BBBBB)
    AAAA = fastMA – slowMA
    AAAA

    AAAAA(EEEEEE, BBBB, BBBBB) =>
    AAA = input(0.5)
    var CCCCC = 0.0
    var DDD = 0.0
    var DDDDDD = 0.0
    var EEEEE = 0.0
    BBBBBB = AAAA(close, BBBB, BBBBB)
    CCC = ta.lowest(BBBBBB, EEEEEE)
    CCCC = ta.highest(BBBBBB, EEEEEE) – CCC
    CCCCC := CCCC > 0 ? (BBBBBB – CCC) / CCCC * 100 : nz(CCCCC[1])
    DDD := na(DDD[1]) ? CCCCC : DDD[1] + AAA * (CCCCC – DDD[1])
    DDDD = ta.lowest(DDD, EEEEEE)
    DDDDD = ta.highest(DDD, EEEEEE) – DDDD
    DDDDDD := DDDDD > 0 ? (DDD – DDDD) / DDDDD * 100 : nz(DDDDDD[1])
    EEEEE := na(EEEEE[1]) ? DDDDDD : EEEEE[1] + AAA * (DDDDDD – EEEEE[1])
    EEEEE

    mAAAAA = AAAAA(EEEEEE, BBBB, BBBBB)
    mColor = mAAAAA > mAAAAA[1] ? color.new(color.green, 20) : color.new(color.red, 20)

    if mAAAAA[3] <= mAAAAA[2] and mAAAAA[2] > mAAAAA[1] and mAAAAA > 75
    alert(“Red”, alert.freq_once_per_bar)
    if mAAAAA[3] >= mAAAAA[2] and mAAAAA[2] < mAAAAA[1] and mAAAAA < 25
    alert(“Green”, alert.freq_once_per_bar)

    plot(mAAAAA, color=mColor, title=’STC’, linewidth=2)

    ul = plot(25, color=color.new(color.gray, 70))
    ll = plot(75, color=color.new(color.gray, 70))
    fill(ul, ll, color=color.new(color.gray, 96))

    STC-visu.png STC-visu.png
    #212178 quote
    Nicolas
    Keymaster
    Master

    Il n’y a pas d’équivalent “NZ” chez nous, c’est utile pour vérifier si une valeur est nulle ou non. Souvent, c’est un excés de zèle dans les codes TV, car pas forcément utile. Cependant, on peut le coder comme ceci en langage ProRealTime:

    if var = 0 then 
     //NZ 
    else 
     //PAS NZ
    endif

    Par ailleurs, tu utilises mal UNDEFINED, qui n’a rien à avoir avec le NZ de TV. Il est utile uniquement pour mettre à null une variable (une seule fois seulement), pour qu’elle ne soit pas égale à 0 dés le départ, puisqu’on ne déclare pas les variables en ProBuilder.

    Si tu cherches, le Schaff Trend Cycle, il est déjà présent ici:

    Schaff Trend Cycle

    et là

    Schaff Trend Cycle

    #212586 quote
    NathanC
    Participant
    New

    Merci pour l’info, si un calcul fait genre un diviser par 0, ca retroune 0 ou  autre ?

    Merci pour les liens, j’avais mal cherché … :/

    #212593 quote
    Nicolas
    Keymaster
    Master

    ça retourne n/a, pas un gros problème pour un indicateur, il continuera à s’afficher et faire ses calculs, mais pour une stratégie ça l’arrêtera.

    test:

    return rsi[14]/0
    
Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

STC Indicator – de trading view


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
NathanC @nathanc Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Nicolas
2 years, 11 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 03/26/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...