screener Retroceso de Fibonacci

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #258488 quote
    Maricarmen
    Participant
    Junior

    Se podría hace Screener de este indicador

    defparam drawonlastbaronly=true
    //----------------------------------------------------------------------------//
    //PRC_Fibonacci Retracement / Extension
    //version = 0
    //07.02.2025
    //Iván González @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //----------------------------------------------------------------------------//
    //-----Inputs-----------------------------------------------------------------//
    //ZZpercent=1
    //prd=8
    //percent=5
    //N=1 // check last n zig
    //checkUp=1 // check uptrend or downtrend
    //----------------------------------------------------------------------------//
    atr=averagetruerange[14](close) //Only drawing porpouse
    //----------------------------------------------------------------------------//
    //-----Pivots High&Low--------------------------------------------------------//
    if ZZpercent then
    //-----Mode Percent--------------------------------------------------------//
    zz = zigzag[percent](close)
    ph = zz<zz[1] and zz[1]>zz[2]
    pl = zz>zz[1] and zz[1]<zz[2]
    //-----Mode Highest/lowest Values------------------------------------------//
    else
    ph = high=highest[prd](high)
    pl = low=lowest[prd](low)
    endif
    //----------------------------------------------------------------------------//
    //-----Direction Calculation--------------------------------------------------//
    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 Arrays for each pivot----------------------------------------//
    if ph or pl then
    if dirchanged then
    if dir=1 and not ZZpercent then
    $zigzag[t+1]=highest[prd](high)
    $zigzagidx[t+1]=barindex
    $dir[t+1]=1
    t=t+1
    elsif dir=-1 and not ZZpercent then
    $zigzag[t+1]=lowest[prd](low)
    $zigzagidx[t+1]=barindex
    $dir[t+1]=-1
    t=t+1
    elsif dir=1 and ZZpercent then
    $zigzag[t+1]=zz[1]
    $zigzagidx[t+1]=barindex[1]
    $dir[t+1]=1
    t=t+1
    elsif dir=-1 and ZZpercent then
    $zigzag[t+1]=zz[1]
    $zigzagidx[t+1]=barindex[1]
    $dir[t+1]=-1
    t=t+1
    endif
    else
    if not ZZpercent then
    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
    endif
    //----------------------------------------------------------------------------//
    //-----Drawing conditions-----------------------------------------------------//
    if islastbarupdate then
    //-----Draw zig-zag--------------------------------------------------------//
    for i=1 to t do
    drawsegment($zigzagidx[max(0,i-1)],$zigzag[max(0,i-1)],$zigzagidx[i],$zigzag[i])coloured("grey",75)style(line,2)
    next
    //-----Draw Last N Zig and Fibonacci Levels---------------------------------//
    if $dir[t]=1 and checkUp then
    pos=t-2*N
    elsif $dir[t]=1 and not checkUp then
    pos=t-2*N-1
    elsif $dir[t]=-1 and checkUp then
    pos=t-2*N-1
    elsif $dir[t]=-1 and not checkUp then
    pos=t-2*N
    endif
    
    drawsegment($zigzagidx[max(0,pos-1)],$zigzag[max(0,pos-1)],$zigzagidx[max(0,pos)],$zigzag[max(0,pos)])
    drawpoint($zigzagidx[max(0,pos-1)],$zigzag[max(0,pos-1)],2)coloured("blue",100)
    drawpoint($zigzagidx[max(0,pos)],$zigzag[max(0,pos)],2)coloured("blue",100)
    
    
    if $dir[t]=1 then
    //-----Calculation when trend Up----------------------------------------//
    fib0=$zigzag[max(0,pos-1)]
    fib100=$zigzag[max(0,pos)]
    diff=fib100-fib0
    
    fib0236=fib100-diff*0.236
    fib0382=fib100-diff*0.382
    fib0500=fib100-diff*0.500
    fib0618=fib100-diff*0.618
    fib0786=fib100-diff*0.786
    
    if t>pos then
    extdiff=fib100-$zigzag[max(0,pos+1)]
    else
    extdiff=diff
    endif
    
    fib1618=fib100+extdiff*0.618
    fib2000=fib100+extdiff*1.0
    fib2382=fib100+extdiff*1.382
    fib2618=fib100+extdiff*1.618
    fib3382=fib100+extdiff*2.382
    fib3618=fib100+extdiff*2.618
    fib4618=fib100+extdiff*3.618
    fib5236=fib100+extdiff*4.236
    
    drawsegment($zigzagidx[max(0,pos-1)],fib0,barindex+10,fib0)style(line,2)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib0236,barindex+10,fib0236)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib0382,barindex+10,fib0382)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib0500,barindex+10,fib0500)style(dottedline,2)coloured("blue")
    
    drawsegment($zigzagidx[max(0,pos-1)],fib0618,barindex+10,fib0618)style(dottedline,2)coloured("red")
    drawsegment($zigzagidx[max(0,pos-1)],fib0786,barindex+10,fib0786)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib100,barindex+10,fib100)style(line,2)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib1618,barindex+10,fib1618)style(dottedline,1)coloured("grey")
    
    drawsegment($zigzagidx[max(0,pos-1)],fib2000,barindex+10,fib2000)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib2382,barindex+10,fib2382)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib2618,barindex+10,fib2618)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib3382,barindex+10,fib3382)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib3618,barindex+10,fib3618)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib4618,barindex+10,fib4618)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib5236,barindex+10,fib5236)style(dottedline,1)coloured("grey")
    
    drawrectangle($zigzagidx[max(0,pos-1)],fib1618,barindex+10,fib2000)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    drawrectangle($zigzagidx[max(0,pos-1)],fib2382,barindex+10,fib2618)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    drawrectangle($zigzagidx[max(0,pos-1)],fib3382,barindex+10,fib3618)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    drawrectangle($zigzagidx[max(0,pos-1)],fib4618,barindex+10,fib5236)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    
    drawrectangle($zigzagidx[max(0,pos-1)],fib0,barindex+10,fib0618)style(dottedline,1)coloured("grey",0)fillcolor("blue",30)
    
    drawtext("Fib 0%: #fib0#",barindex+10,fib100+0.05*atr)
    drawtext("Fib 50%: #fib0500#",barindex+10,fib0500+0.05*atr)
    drawtext("Fib 100%: #fib100#",barindex+10,fib0+0.05*atr)
    elsif $dir[t]=-1 then
    //-----Calculation when trend Down--------------------------------------//
    fib0=$zigzag[max(0,pos)]
    fib100=$zigzag[max(0,pos-1)]
    diff=fib100-fib0
    
    fib0236=fib0+diff*0.236
    fib0382=fib0+diff*0.382
    fib0500=fib0+diff*0.500
    fib0618=fib0+diff*0.618
    fib0786=fib0+diff*0.786
    
    if t>pos then
    extdiff=$zigzag[max(0,pos+1)]-fib0
    else
    extdiff=diff
    endif
    
    fib1618 = fib0 - extdiff * 0.618
    fib2000 = fib0 - extdiff * 1.0
    fib2382 = fib0 - extdiff * 1.382
    fib2618 = fib0 - extdiff * 1.618
    fib3382 = fib0 - extdiff * 2.382
    fib3618 = fib0 - extdiff * 2.618
    fib4618 = fib0 - extdiff * 3.618
    fib5236 = fib0 - extdiff * 4.236
    
    drawsegment($zigzagidx[max(0,pos-1)],fib0,barindex+10,fib0)style(line,2)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib0236,barindex+10,fib0236)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib0382,barindex+10,fib0382)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib0500,barindex+10,fib0500)style(dottedline,2)coloured("blue")
    drawsegment($zigzagidx[max(0,pos-1)],fib0618,barindex+10,fib0618)style(dottedline,2)coloured("red")
    drawsegment($zigzagidx[max(0,pos-1)],fib0786,barindex+10,fib0786)style(dottedline,1)coloured("grey")
    drawsegment($zigzagidx[max(0,pos-1)],fib100,barindex+10,fib100)style(line,2)coloured("grey")
    
    drawsegment($zigzagidx[max(0, pos-1)], fib1618, barindex + 10, fib1618) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib2000, barindex + 10, fib2000) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib2382, barindex + 10, fib2382) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib2618, barindex + 10, fib2618) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib3382, barindex + 10, fib3382) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib3618, barindex + 10, fib3618) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib4618, barindex + 10, fib4618) style(dottedline, 1) coloured("grey")
    drawsegment($zigzagidx[max(0, pos-1)], fib5236, barindex + 10, fib5236) style(dottedline, 1) coloured("grey")
    
    drawrectangle($zigzagidx[max(0,pos-1)],fib1618,barindex+10,fib2000)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    drawrectangle($zigzagidx[max(0,pos-1)],fib2382,barindex+10,fib2618)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    drawrectangle($zigzagidx[max(0,pos-1)],fib3382,barindex+10,fib3618)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    drawrectangle($zigzagidx[max(0,pos-1)],fib4618,barindex+10,fib5236)style(dottedline,1)coloured("grey",0)fillcolor("orange",30)
    
    drawrectangle($zigzagidx[max(0,pos-1)],fib100,barindex+10,fib0618)style(dottedline,1)coloured("grey",0)fillcolor("blue",30)
    
    drawtext("Fib 0%: #fib0#",barindex+10,fib0+0.05*atr)
    drawtext("Fib 50%: #fib0500#",barindex+10,fib0500+0.05*atr)
    drawtext("Fib 100%: #fib100#",barindex+10,fib100+0.05*atr)
    endif
    
    endif
    
    return
    

    Gracias

    #258492 quote
    Iván González
    Moderator
    Master

    Buenas. Este grupo es sólo para traducir indicadores de tradingview a prorealtime.

    En tu caso, quieres un screener por lo que el lugar correcto para publicarlo será el foro en español en la seccion de screeners.

    Lo muevo allí.

    Por otro lado, qué es lo que quieres buscar de este indicador?

    #258497 quote
    Maricarmen
    Participant
    Junior

    Buenas

    Perdón por no utilizar el foro correspondiente, procuraré que no vuelva a ocurrir.

    Lo que pretendo es utilizar patrones ZigZag anteriores para estimar posibles movimientos de precios que identifiquen Niveles de Extensión Fibonacci para futuros objetivos de precios (0.382 %, 0.50 %, 0.618 %)

    Un saludo, y muchísimas gracias.

    #258506 quote
    Iván González
    Moderator
    Master

    Me vas a perdonar pero la verdad es que no sé muy bien lo que buscas… he superpuesto al indicador fibonacci un indicador que marca los pivotes.

    Exactamente qué quieres localizar?


    2026-02-26_11-46.png 2026-02-26_11-46.png
    #258581 quote
    Maricarmen
    Participant
    Junior

    Yo, lo que pretendía era que el Screener me devolviese los valores que cumplan esos Niveles de Extensión Fibonacci para marcos temporales

    bajos (5 y 15 minutos).

    No se, si en el documento adjunto lo ilustro con la suficiente claridad, dado que el indicador que me habías facilitado en su momento, solamente

    cogía marcos temporales mayores, te adjunto el gráfico de INDRA a fecha viernes para que puedas observar que la otra plataforma si los coge..

     Gracias,

    Retroceso-Fibonacci-1.docx
    #258583 quote
    Maricarmen
    Participant
    Junior

    Perdona por todo lo que dije anteriormente, pues no me había dado cuenta de la figura que adjuntaste.

    Lo que quiero localizar en realidad es que cuando se dee dicha figura en un gráfico el Screener me devuelva para un marco temporal de 5 ó 15´ los

    valores que cumplen dicho requisito. (Punto PV1)..

    Espero haberme explicado ahora bien. 

    Gracias nuevamente.

    #258589 quote
    Iván González
    Moderator
    Master

    vale, entiendo, pero entonces no tiene nada que ver con el indicador anterior. Lo que quieres es ver un nuevo pivote en el retroceso de fibonacci del por ejemplo 50-62%.

    Sería algo así:

    // ==================================
    // ProScreener: Fibonacci
    // ==================================
    // --- Parámetros ---
    prd = 8 // Períodos para calcular máximos y mínimos
    
    ph = (High = Highest[prd](High))
    pl = (Low = Lowest[prd](Low))
    
    currentDir = dir
    IF ph AND NOT pl THEN
       currentDir = 1 // Dirección Alcista (Buscando techo)
    ELSIF pl AND NOT ph THEN
       currentDir = -1 // Dirección Bajista (Buscando suelo)
    ENDIF
    
    dirChanged = (currentDir <> dir)
    dir = currentDir
    
    IF ph OR pl THEN
       IF dirChanged THEN
          pvtPrice2 = pvtPrice1
          pvtPrice1 = pvtPrice0
          pvtType0 = dir
          
          IF dir = 1 THEN
             pvtPrice0 = High
          ELSIF dir = -1 THEN
             pvtPrice0 = Low
          ENDIF
          
       ELSE
          
          IF dir = 1 AND High > pvtPrice0 THEN
             pvtPrice0 = High
          ELSIF dir = -1 AND Low < pvtPrice0 THEN
             pvtPrice0 = Low
          ENDIF
       ENDIF
    ENDIF
    
    fib500 = 0
    fib618 = 0
    
    IF pvtType0 = -1 and pvtPrice0>pvtPrice2 THEN
       
       waveMove = pvtPrice1 - pvtPrice2
       
       fib500 = pvtPrice1 - (waveMove * 0.500)
       fib618 = pvtPrice1 - (waveMove * 0.618)
       
    ENDIF
    
    screener[dirChanged and pvtType0 = -1 and pvtPrice0<fib500 and pvtPrice0>fib618]
    


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

screener Retroceso de Fibonacci


ProScreener: Buscadores de Mercado y Rastreo

New Reply
Author
author-avatar
Maricarmen @maricarmen Participant
Summary

This topic contains 6 replies,
has 2 voices, and was last updated by Iván González
3 days, 19 hours ago.

Topic Details
Forum: ProScreener: Buscadores de Mercado y Rastreo
Language: Spanish
Started: 02/25/2026
Status: Active
Attachments: 2 files
Logo Logo
Loading...