ZigZag y SR

Viewing 1 post (of 1 total)
  • #252108
    Hola, me gustaría que me hicieran un ProScreener del indicador ZigZag y Sr,  que subió Iván hace un mes, lo llevo usando desde entoncces y me gusta mucho, es muy útil y para aprovecharlo al máximo me gustaría lo siguiente: He comprobado que en la vela del momento actual (con tiempo real lógicamente) según la sigla que esté en ese momento (HH,HL,LL,LH), puede variar en vivo según el movimiento del mercado que se este dando, pues si se pudiera avisar en el momento de dicho cambio me sería muy útil, gracias.
    Aquí la codificación del indicador:
    //————————————//
    //PRC_ZigZag and SR
    //version = 0
    //03.12.2024
    //Iván González @ http://www.prorealcode.com
    //Sharing ProRealTime knowledge
    //————————————//
    // Inputs
    //————————————//
    prd=15
    showSR=1 //Show Support and Resistance//Boolean// 0 means false 1 means True
    showLabels=1 //Boolean// 0 means false 1 means True
    showZZ=1 //Boolean// 0 means false 1 means True
    atr=averagetruerange[14](close)
    //————————————//
    // Calculate Pivot High and Low
    //————————————//
    ph = high=highest[prd](high)
    pl = low=lowest[prd](low)
    //————————————//
    // Calculate Direction
    //————————————//
    if ph and pl=0 then
       dir=1
    elsif pl and ph=0 then
       dir=1
    else
       dir=dir
    endif
    dirchanged=dir<>dir[1]
    //————————————//
    // Calculate ZizZag levels and x
    //————————————//
    if ph or pl then
       if dirchanged then
          if dir=1 then
             $zigzag[t+1]=highest[prd](high)
             $zigzagidx[t+1]=barindex
             $dir[t+1]=1
             t=t+1
          elsif dir=1 then
             $zigzag[t+1]=lowest[prd](low)
             $zigzagidx[t+1]=barindex
             $dir[t+1]=1
             t=t+1
          endif
       else
          if dir=1 and highest[prd](high)> $zigzag[t] then
             $zigzag[t]=highest[prd](high)
             $zigzagidx[t]=barindex
          elsif dir=1 and lowest[prd](low)< $zigzag[t] then
             $zigzag[t]=lowest[prd](low)
             $zigzagidx[t]=barindex
          endif
       endif
    endif
    //————————————//
    // Draw ZigZag and Levels
    //————————————//
    $zigzag[0]=undefined
    $zigzagidx[0]=undefined
    if islastbarupdate then
       if showZZ then
          //Last ZigZag
          drawsegment($zigzagidx[max(0,t1)],$zigzag[max(0,t1)],$zigzagidx[t],$zigzag[t])
       endif
       if showSR and $dir[t]=1 then
          drawsegment($zigzagidx[t],$zigzag[t],barindex,$zigzag[t])style(dottedline,3)coloured(“green”)
          drawsegment($zigzagidx[max(0,t1)],$zigzag[max(0,t1)],barindex,$zigzag[max(0,t1)])style(dottedline,3)coloured(“red”)
          if $zigzag[t]<$zigzag[t2] then
             drawtext(“HL”,$zigzagidx[t],$zigzag[t]+0.5*atr)coloured(“green”)
          else
             drawtext(“HH”,$zigzagidx[t],$zigzag[t]+0.5*atr)coloured(“green”)
          endif
       elsif showSR and $dir[t]=1 then
          drawsegment($zigzagidx[t],$zigzag[t],barindex,$zigzag[t])style(dottedline,3)coloured(“red”)
          drawsegment($zigzagidx[max(0,t1)],$zigzag[max(0,t1)],barindex,$zigzag[max(0,t1)])style(dottedline,3)coloured(“green”)
          if $zigzag[t]<$zigzag[t2] then
             drawtext(“LL”,$zigzagidx[t],$zigzag[t]0.5*atr)coloured(“red”)
          else
             drawtext(“LH”,$zigzagidx[t],$zigzag[t]0.5*atr)coloured(“red”)
          endif
       endif
       if showLabels then
          drawpoint($zigzagidx[max(0,t1)],$zigzag[max(0,t1)],2)coloured(“blue”,100)
          drawpoint($zigzagidx[t],$zigzag[t],2)coloured(“blue”,100)
       endif
      
       //Draw all ZigZag
       for i=t1 downto 3 do
          if showZZ then
             drawsegment($zigzagidx[max(0,i1)],$zigzag[max(0,i1)],$zigzagidx[i],$zigzag[i])
          endif
          if showSR and $dir[i]=1 then
             drawsegment($zigzagidx[i],$zigzag[i],$zigzagidx[i+1],$zigzag[i])style(dottedline,3)coloured(“green”)
             drawsegment($zigzagidx[max(0,i1)],$zigzag[max(0,i1)],$zigzagidx[i],$zigzag[max(0,i1)])style(dottedline,3)coloured(“red”)
          elsif showSR and $dir[i]=1 then
             drawsegment($zigzagidx[i],$zigzag[i],$zigzagidx[i+1],$zigzag[i])style(dottedline,3)coloured(“red”)
             drawsegment($zigzagidx[max(0,i1)],$zigzag[max(0,i1)],$zigzagidx[i],$zigzag[max(0,i1)])style(dottedline,3)coloured(“green”)
          endif
          
          if showLabels and $dir[i]=1 and $zigzag[i]>$zigzag[i2] then
             drawtext(“LH”,$zigzagidx[i],$zigzag[i]0.5*atr)coloured(“red”)
          elsif showLabels and $dir[i]=1 and $zigzag[i]<=$zigzag[i2] then
             drawtext(“LL”,$zigzagidx[i],$zigzag[i]0.5*atr)coloured(“red”)
          elsif showLabels and $dir[i]=1 and $zigzag[i]>$zigzag[i2] then
             drawtext(“HH”,$zigzagidx[i],$zigzag[i]+0.5*atr)coloured(“green”)
          elsif showLabels and $dir[i]=1 and $zigzag[i]<=$zigzag[i2] then
             drawtext(“HL”,$zigzagidx[i],$zigzag[i]+0.5*atr)coloured(“green”)
          endif
       next
    endif
    //————————————//
    returnZ
Viewing 1 post (of 1 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login