Alerte kijun avec super ichi

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #265144 quote
    stephxr
    Participant
    Junior

    bonjour

    Je souhaiterais pouvoir poser une alerte quand la kijun est haussière ou baissière

    Es ce possible de le faire dans ce script que Ivan m’a transcrit?

    merci d’avance!

    PRC_Super-Ichimoku-3.itf
    #265148 quote
    robertogozzi
    Moderator
    Legend

    Ce code modifié renverra le signal :

    • 1 en cas de croisement haussier
    • -1 en cas de croisement baissier
    DEFPARAM DRAWONLASTBARONLY = TRUE
    //--------------------------------------------
    // PRC_SuperIchi (SuperIchi [LUX] by LuxAlgo)
    // version = 0
    // 04.09.2026
    // Ivan Gonzalez @ www.prorealcode.com
    // Sharing ProRealTime knowledge
    //--------------------------------------------
    // Ichimoku-style set of lines built on an ATR trailing-stop
    // engine instead of the classic Donchian midpoints.
    // Each line is the midpoint between the extreme reached by
    // price and the trailing stop of its own regime.
    //--------------------------------------------
    
    
    //=== INPUTS (declare as Variables in the editor) ===
    //tenkanLen  = 9        // Tenkan ATR length
    //tenkanMult = 2.0      // Tenkan ATR multiplier
    //kijunLen   = 26       // Kijun ATR length
    //kijunMult  = 4.0      // Kijun ATR multiplier
    //spanBLen   = 52       // Senkou Span B ATR length
    //spanBMult  = 6.0      // Senkou Span B ATR multiplier
    //disp       = 26       // Displacement
    
    
    //=== ADAPTIVE MIDLINE ENGINE - TENKAN ===
    atrT = averagetruerange[tenkanLen](close) * tenkanMult
    upT  = (high + low) / 2 + atrT
    dnT  = (high + low) / 2 - atrT
    
    
    IF barindex <= tenkanLen THEN
    upperT = upT
    lowerT = dnT
    osT    = 0
    sptT   = close
    mxT    = close
    mnT    = close
    ELSE
    IF close[1] < upperT[1] THEN
    upperT = min(upT, upperT[1])
    ELSE
    upperT = upT
    ENDIF
    IF close[1] > lowerT[1] THEN
    lowerT = max(dnT, lowerT[1])
    ELSE
    lowerT = dnT
    ENDIF
       
    IF close > upperT THEN
    osT = 1
    ELSIF close < lowerT THEN
    osT = 0
    ELSE
    osT = osT[1]
    ENDIF
       
    IF osT = 1 THEN
    sptT = lowerT
    ELSE
    sptT = upperT
    ENDIF
       
    crT = 0
    IF close[1] < sptT[1] AND close > sptT THEN
    crT = 1
    ENDIF
    IF close[1] > sptT[1] AND close < sptT THEN
    crT = 1
    ENDIF
       
    IF crT = 1 OR osT = 1 THEN
    mxT = max(close, mxT[1])
    ELSE
    mxT = sptT
    ENDIF
    IF crT = 1 OR osT = 0 THEN
    mnT = min(close, mnT[1])
    ELSE
    mnT = sptT
    ENDIF
    ENDIF
    
    
    //=== ADAPTIVE MIDLINE ENGINE - KIJUN ===
    atrK = averagetruerange[kijunLen](close) * kijunMult
    upK  = (high + low) / 2 + atrK
    dnK  = (high + low) / 2 - atrK
    
    
    IF barindex <= kijunLen THEN
    upperK = upK
    lowerK = dnK
    osK    = 0
    sptK   = close
    mxK    = close
    mnK    = close
    ELSE
    IF close[1] < upperK[1] THEN
    upperK = min(upK, upperK[1])
    ELSE
    upperK = upK
    ENDIF
    IF close[1] > lowerK[1] THEN
    lowerK = max(dnK, lowerK[1])
    ELSE
    lowerK = dnK
    ENDIF
       
    IF close > upperK THEN
    osK = 1
    ELSIF close < lowerK THEN
    osK = 0
    ELSE
    osK = osK[1]
    ENDIF
       
    IF osK = 1 THEN
    sptK = lowerK
    ELSE
    sptK = upperK
    ENDIF
       
    crK = 0
    IF close[1] < sptK[1] AND close > sptK THEN
    crK = 1
    ENDIF
    IF close[1] > sptK[1] AND close < sptK THEN
    crK = 1
    ENDIF
       
    IF crK = 1 OR osK = 1 THEN
    mxK = max(close, mxK[1])
    ELSE
    mxK = sptK
    ENDIF
    IF crK = 1 OR osK = 0 THEN
    mnK = min(close, mnK[1])
    ELSE
    mnK = sptK
    ENDIF
    ENDIF
    
    
    //=== ADAPTIVE MIDLINE ENGINE - SENKOU SPAN B ===
    atrS = averagetruerange[spanBLen](close) * spanBMult
    upS  = (high + low) / 2 + atrS
    dnS  = (high + low) / 2 - atrS
    
    
    IF barindex <= spanBLen THEN
    upperS = upS
    lowerS = dnS
    osS    = 0
    sptS   = close
    mxS    = close
    mnS    = close
    ELSE
    IF close[1] < upperS[1] THEN
    upperS = min(upS, upperS[1])
    ELSE
    upperS = upS
    ENDIF
    IF close[1] > lowerS[1] THEN
    lowerS = max(dnS, lowerS[1])
    ELSE
    lowerS = dnS
    ENDIF
       
    IF close > upperS THEN
    osS = 1
    ELSIF close < lowerS THEN
    osS = 0
    ELSE
    osS = osS[1]
    ENDIF
       
    IF osS = 1 THEN
    sptS = lowerS
    ELSE
    sptS = upperS
    ENDIF
       
    crS = 0
    IF close[1] < sptS[1] AND close > sptS THEN
    crS = 1
    ENDIF
    IF close[1] > sptS[1] AND close < sptS THEN
    crS = 1
    ENDIF
       
    IF crS = 1 OR osS = 1 THEN
    mxS = max(close, mxS[1])
    ELSE
    mxS = sptS
    ENDIF
    IF crS = 1 OR osS = 0 THEN
    mnS = min(close, mnS[1])
    ELSE
    mnS = sptS
    ENDIF
    ENDIF
    
    
    //=== OUTPUT LINES (masked during the longest warm-up) ===
    IF barindex <= spanBLen THEN
    tenkan  = undefined
    kijun   = undefined
    senkouA = undefined
    senkouB = undefined
    ELSE
    tenkan  = (mxT + mnT) / 2
    kijun   = (mxK + mnK) / 2
    senkouB = (mxS + mnS) / 2
    senkouA = (kijun + tenkan) / 2
    ENDIF
    
    
    //=== CLOUD, SHIFTED FORWARD BY disp-1 BARS ===
    // A forward plot at +N is read on the chart as the value
    // computed N bars ago, so the past half of the cloud is a
    // plain series lag. The future half has no bars yet: drawn below.
    dispPlot = disp - 1
    sA = senkouA[dispPlot]
    sB = senkouB[dispPlot]
    
    
    IF sA > sB THEN
    aUp = 51
    aDn = 0
    ELSE
    aUp = 0
    aDn = 51
    ENDIF
    
    
    COLORBETWEEN(sA, sB, 0, 137, 123, aUp)
    COLORBETWEEN(sA, sB, 255, 82, 82, aDn)
    
    
    //=== PROJECTED CLOUD (bars that do not exist yet) ===
    IF islastbarupdate AND barindex > spanBLen + disp THEN
    FOR j = 1 TO dispPlot DO
    xa = barindex + j - 1
    xb = barindex + j
    ya = senkouA[dispPlot - j + 1]
    yb = senkouA[dispPlot - j]
    za = senkouB[dispPlot - j + 1]
    zb = senkouB[dispPlot - j]
    ym = (ya + yb) / 2
    zm = (za + zb) / 2
    IF ym > zm THEN
    rr = 0
    gg = 137
    bb = 123
    ELSE
    rr = 255
    gg = 82
    bb = 82
    ENDIF
    DRAWRECTANGLE(xa, min(ym, zm), xb, max(ym, zm)) COLOURED(rr, gg, bb, 0) FILLCOLOR(rr, gg, bb, 51)
    NEXT
    ENDIF
    
    
    //=== TENKAN / KIJUN CROSSES ===
    dotUp  = undefined
    dotDn  = undefined
    aDotUp = 0
    aDotDn = 0
    Signal = 0
    myColour = 0
    IF tenkan > kijun AND tenkan[1] <= kijun[1] THEN
    dotUp  = kijun
    aDotUp = 255
    Signal = 1
    myColour = 1
    ELSIF tenkan < kijun AND tenkan[1] >= kijun[1] THEN
    dotDn  = kijun
    aDotDn = 255
    Signal = -1
    myColour = -1
    ENDIF
    
    
    RETURN tenkan COLOURED(33, 87, 243, 255) STYLE(line, 2) AS "Tenkan-Sen", kijun COLOURED(255, 93, 0, 255) STYLE(line, 2) AS "Kijun-Sen", dotUp COLOURED(33, 87, 243, aDotUp) STYLE(point, 3) AS "Crossover", dotDn COLOURED(255, 93, 0, aDotDn) STYLE(point, 3) AS "Crossunder", sA COLOURED(0, 137, 123, 0) STYLE(line, 1) AS "Senkou Span A", sB COLOURED(255, 82, 82, 0) STYLE(line, 1) AS "Senkou Span B", Signal AS "Crossover" style(Histogram) coloured by (myColour)
    





    Iván González thanked this post
    PRC_Super-Ichimoku-2-1.itf
    #265150 quote
    stephxr
    Participant
    Junior

    bonjour roberto

    merci pour ta rapidité, je suis désolé je ne t’avais pas envoyé la derniere version du fichier finalisé par ivan

    je te réitère donc ma demande

    Ivan m’a rajouté au script la possibilité de configurer une alerte quand la kijun croise la tenkan et/ou la ssa croise la ssb donc quand le nuage change de couleur.

    Il me manque juste de pouvoir ajouter et configurer de la même façon une troisième condition à l’alerte: quand la kijun seule s’oriente à la hausse ou à la baisse Dans l’esprit Kijun > kijun[1] ou kijun < kijun [1]

    merci pour ton travail et ta patience

    stephane

    superich.itf
    #265159 quote
    Iván González
    Moderator
    Legend

    Bonjour. Je ne peux pas importer le code joint, mais j’ai pris mon indicateur et j’ai ajouté la variable sptK (Kijun) à la ligne de retour afin que vous puissiez créer une alerte avec.

    //DEFPARAM DRAWONLASTBARONLY = TRUE
    //--------------------------------------------
    // PRC_SuperIchi (SuperIchi [LUX] by LuxAlgo)
    // version = 0
    // 04.09.2026
    // Ivan Gonzalez @ www.prorealcode.com
    // Sharing ProRealTime knowledge
    //--------------------------------------------
    // Ichimoku-style set of lines built on an ATR trailing-stop
    // engine instead of the classic Donchian midpoints.
    // Each line is the midpoint between the extreme reached by
    // price and the trailing stop of its own regime.
    //--------------------------------------------
    
    
    //=== INPUTS (declare as Variables in the editor) ===
    tenkanLen  = 9        // Tenkan ATR length
    tenkanMult = 2.0      // Tenkan ATR multiplier
    kijunLen   = 26       // Kijun ATR length
    kijunMult  = 4.0      // Kijun ATR multiplier
    spanBLen   = 52       // Senkou Span B ATR length
    spanBMult  = 6.0      // Senkou Span B ATR multiplier
    disp       = 26       // Displacement
    
    
    //=== ADAPTIVE MIDLINE ENGINE - TENKAN ===
    atrT = averagetruerange[tenkanLen](close) * tenkanMult
    upT  = (high + low) / 2 + atrT
    dnT  = (high + low) / 2 - atrT
    
    
    IF barindex <= tenkanLen THEN
       upperT = upT
       lowerT = dnT
       osT    = 0
       sptT   = close
       mxT    = close
       mnT    = close
    ELSE
       IF close[1]  lowerT[1] THEN
          lowerT = max(dnT, lowerT[1])
       ELSE
          lowerT = dnT
       ENDIF
       
       
       IF close > upperT THEN
          osT = 1
       ELSIF close < lowerT THEN
          osT = 0
       ELSE
          osT = osT[1]
       ENDIF
       
       
       IF osT = 1 THEN
          sptT = lowerT
       ELSE
          sptT = upperT
       ENDIF
       
       
       crT = 0
       IF close[1]  sptT THEN
          crT = 1
       ENDIF
       IF close[1] > sptT[1] AND close < sptT THEN
          crT = 1
       ENDIF
       
       
       IF crT = 1 OR osT = 1 THEN
          mxT = max(close, mxT[1])
       ELSE
          mxT = sptT
       ENDIF
       IF crT = 1 OR osT = 0 THEN
          mnT = min(close, mnT[1])
       ELSE
          mnT = sptT
       ENDIF
    ENDIF
    
    
    //=== ADAPTIVE MIDLINE ENGINE - KIJUN ===
    atrK = averagetruerange[kijunLen](close) * kijunMult
    upK  = (high + low) / 2 + atrK
    dnK  = (high + low) / 2 - atrK
    
    
    IF barindex <= kijunLen THEN
       upperK = upK
       lowerK = dnK
       osK    = 0
       sptK   = close
       mxK    = close
       mnK    = close
    ELSE
       IF close[1]  lowerK[1] THEN
          lowerK = max(dnK, lowerK[1])
       ELSE
          lowerK = dnK
       ENDIF
       
       
       IF close > upperK THEN
          osK = 1
       ELSIF close < lowerK THEN
          osK = 0
       ELSE
          osK = osK[1]
       ENDIF
       
       
       IF osK = 1 THEN
          sptK = lowerK
       ELSE
          sptK = upperK
       ENDIF
       
       
       crK = 0
       IF close[1]  sptK THEN
          crK = 1
       ENDIF
       IF close[1] > sptK[1] AND close < sptK THEN
          crK = 1
       ENDIF
       
       
       IF crK = 1 OR osK = 1 THEN
          mxK = max(close, mxK[1])
       ELSE
          mxK = sptK
       ENDIF
       IF crK = 1 OR osK = 0 THEN
          mnK = min(close, mnK[1])
       ELSE
          mnK = sptK
       ENDIF
    ENDIF
    
    
    //=== ADAPTIVE MIDLINE ENGINE - SENKOU SPAN B ===
    atrS = averagetruerange[spanBLen](close) * spanBMult
    upS  = (high + low) / 2 + atrS
    dnS  = (high + low) / 2 - atrS
    
    
    IF barindex <= spanBLen THEN
       upperS = upS
       lowerS = dnS
       osS    = 0
       sptS   = close
       mxS    = close
       mnS    = close
    ELSE
       IF close[1]  lowerS[1] THEN
          lowerS = max(dnS, lowerS[1])
       ELSE
          lowerS = dnS
       ENDIF
       
       
       IF close > upperS THEN
          osS = 1
       ELSIF close < lowerS THEN
          osS = 0
       ELSE
          osS = osS[1]
       ENDIF
       
       
       IF osS = 1 THEN
          sptS = lowerS
       ELSE
          sptS = upperS
       ENDIF
       
       
       crS = 0
       IF close[1]  sptS THEN
          crS = 1
       ENDIF
       IF close[1] > sptS[1] AND close < sptS THEN
          crS = 1
       ENDIF
       
       
       IF crS = 1 OR osS = 1 THEN
          mxS = max(close, mxS[1])
       ELSE
          mxS = sptS
       ENDIF
       IF crS = 1 OR osS = 0 THEN
          mnS = min(close, mnS[1])
       ELSE
          mnS = sptS
       ENDIF
    ENDIF
    
    
    //=== OUTPUT LINES (masked during the longest warm-up) ===
    IF barindex  sB THEN
       aUp = 51
       aDn = 0
    ELSE
       aUp = 0
       aDn = 51
    ENDIF
    
    
    COLORBETWEEN(sA, sB, 0, 137, 123, aUp)
    COLORBETWEEN(sA, sB, 255, 82, 82, aDn)
    
    
    //=== PROJECTED CLOUD (bars that do not exist yet) ===
    IF islastbarupdate AND barindex > spanBLen + disp THEN
       FOR j = 1 TO dispPlot DO
          xa = barindex + j - 1
          xb = barindex + j
          ya = senkouA[dispPlot - j + 1]
          yb = senkouA[dispPlot - j]
          za = senkouB[dispPlot - j + 1]
          zb = senkouB[dispPlot - j]
          ym = (ya + yb) / 2
          zm = (za + zb) / 2
          IF ym > zm THEN
             rr = 0
             gg = 137
             bb = 123
          ELSE
             rr = 255
             gg = 82
             bb = 82
          ENDIF
          DRAWRECTANGLE(xa, min(ym, zm), xb, max(ym, zm)) COLOURED(rr, gg, bb, 0) FILLCOLOR(rr, gg, bb, 51)
       NEXT
    ENDIF
    
    
    //=== TENKAN / KIJUN CROSSES ===
    dotUp  = undefined
    dotDn  = undefined
    aDotUp = 0
    aDotDn = 0
    IF tenkan > kijun AND tenkan[1] <= kijun[1] THEN
       dotUp  = kijun
       drawtext("●", barindex,dotUp,dialog,bold,30) coloured(33, 87, 243)
       aDotUp = 255
    ENDIF
    IF tenkan = kijun[1] THEN
       dotDn  = kijun
       drawtext("●", barindex,dotDn,dialog,bold,30) coloured(255, 93, 0)
       aDotDn = 255
    ENDIF
    
    RETURN tenkan COLOURED(33, 87, 243, 255) STYLE(line, 2) AS "Tenkan-Sen", kijun COLOURED(255, 93, 0, 255) STYLE(line, 2) AS "Kijun-Sen", dotUp COLOURED(33, 87, 243, aDotUp) STYLE(point, 3) AS "Crossover", dotDn COLOURED(255, 93, 0, aDotDn) STYLE(point, 3) AS "Crossunder", sA COLOURED(0, 137, 123, 0) STYLE(line, 1) AS "Senkou Span A", sB COLOURED(255, 82, 82, 0) STYLE(line, 1) AS "Senkou Span B", senkouA COLOURED(0, 137, 123, 0) STYLE(line, 1) AS "Span A (no shift)", senkouB COLOURED(255, 82, 82, 0) STYLE(line, 1) AS "Span B (no shift)", sptK COLOURED(255, 93, 0, 255) STYLE(line, 1) AS "Kijun stop"
    



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

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Alerte kijun avec super ichi


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
stephxr @stephxr Participant
Summary

This topic contains 3 replies,
has 3 voices, and was last updated by Iván González
1 hour, 49 minutes ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/16/2026
Status: Active
Attachments: 3 files
Logo Logo
Loading...