Porcentaje correccion-retroceso desde maximos

Viewing 11 posts - 16 through 26 (of 26 total)
  • Author
    Posts
  • #211272 quote
    nautilus23
    Participant
    Average

     

    En el gráfico del BUND, 5 minutos el descenso desde el punto 2 (aproximadamente 13.275) al punto 3 (aproximadamente 13.160), según mis cálculos efectuados a mano y salvo error mío es una corrección 0,85% aproximadamente. Por otra parte por lógica el BUND alemán no puede descender en cuatro horas es decir desde las 12 a las 16 según el gráfico adjuntado un 93,4% como señala el indicador.
    Lo que yo busco el ese resultado del 0,85%.
    Muchas gracias.
    Un saludo.
    #211273 quote
    nautilus23
    Participant
    Average

    Lo que yo busco es ese resultado del 0,85%.

    #211410 quote
    robertogozzi
    Moderator
    Master

    El punto mínimo del punto 1 es 13152.5, el máximo del punto 3 es 13273.5 (diferencia de 121 puntos).

    El mínimo del punto 3 (retroceso) es 13160.5 igual a 113 puntos de retroceso, igual a 93.38 (redondeado a 93.4) ​​de 121.

    Todo me parece correcto.  ¿Cómo calculaste tu 85%?

    nautilus23 thanked this post
    x-3.jpg x-3.jpg
    #211731 quote
    nautilus23
    Participant
    Average

    En la última imagen tenemos los puntos 2 y 3 que son los que importan para el cálculo. El punto 2 identificado como “HH 13.273,5” y el punto 3 identificado como “low retrace 13.160,5”  la diferencia entre los dos es de 113. Estos 113 puntos si hacemos el cálculo manualmente equivalen al 0,85% de “HH 13.273,5″o expresado de otra manera el punto “low retrace 13.160,5” equivale al 99,15% del punto HH.

    El “pullback% 93,4” de la imagen no sé con qué cifras está calculado pero en mi opinión no es correcto.

    En la imagen que adjunté el 12/20/2022 at 12:10 PM se aprecia el cálculo en diario efectuado con la herramienta regla del programa. Yo tengo la versión fin de día por eso no puedo replicar ese mismo cálculo en la imagen que has enviado.

    Muchas gracias Roberto.

    #211784 quote
    robertogozzi
    Moderator
    Master

    Ahora entiendo. El cálculo del retroceso no suele hacerse así, no es un porcentaje del precio, sino un porcentaje del rango de precios que había en el periodo elegido.

    Si el precio, en un período determinado, ha hecho una subida de 500 puntos y luego vuelve a 400 puntos, ha hecho un retroceso del 80%, independientemente del instrumento, de lo contrario, 400 puntos serían diferentes en SP o en DOW JONES o en EURUSD.

    De todos modos, aquí está el cálculo como lo desea:

    DEFPARAM DrawOnLastBarOnly = True
    Trend       = 0
    p           = 250                //250 periods
    HH          = highest[p](high)
    LL          = lowest[p](low)
    //Diff1     = abs(HH - LL)
    FOR i = 0 TO (p - 1)
       IF high[i] = HH THEN
          Trend = 1
          MyBar = BarIndex[i]
          BREAK
       ENDIF
       IF low[i] = LL THEN
          Trend = -1
          //MyBar = BarIndex[i]
          HH    = HH[1]
          LL    = LL[1]
          Bx    = Bx[1]
          Rg    = Rg[1]
          BREAK
       ENDIF
    NEXT
    IF Trend = 1 THEN
       bx          = BarIndex
       Retracement = lowest[max(1,BarIndex - MyBar)](low)
       Diff2       = HH - Retracement
       //PerCent     = round(Diff2 * 100 / Diff1,1)
       PerCent     = round(Diff2 * 100 / HH,2)
       Rg          = average[p,0](Range) * 2.0
    ENDIF
    DrawSegment(MyBar,HH,Bx,HH) coloured("Blue")
    DrawSegment(MyBar,LL,Bx,LL) coloured("Blue")
    IF Trend = 1 THEN
       DrawText("PullBack %     : #PerCent#"    ,Bx,HH + Rg*1.0) coloured("Blue",255)
       DrawText("        LOW retrace: #Retracement#",Bx,HH + Rg*1.5) coloured("Blue",255)
       DrawText(" HH                       : #HH#"         ,Bx,HH + Rg*2.0) coloured("Blue",255)
       DrawText(" LL                       : #LL#"         ,Bx,HH + Rg*2.5) coloured("Blue",255)
    ENDIF
    RETURN

    Este es el screener:

    p       = 250              //250   periods
    PerCent = 30.0             //30.0  minimum % of retracement
    HH      = highest[p](high)
    LL      = lowest[p](low)
    Trend   = 0
    Signal  = 0
    IF close[p] > 0 THEN
       FOR i = 0 TO (p - 1)
          IF high[i] = HH THEN
             MyBar = BarIndex[i]
             Trend = 1
             BREAK
          ENDIF
          IF low[i] = LL THEN
             Trend = -1
             BREAK
          ENDIF
       NEXT
    ENDIF
    IF Trend = 1 THEN
       Retracement = lowest[max(1,BarIndex - MyBar)](low)
       Diff2       = HH - Retracement
       PC          = round(Diff2 * 100 / HH,2)
       Signal      = (close <= Retracement)
    ENDIF
    SCREENER[Signal AND (PC >= PerCent)](PC AS "Pullback %")
    nautilus23 thanked this post
    #211900 quote
    nautilus23
    Participant
    Average
    En primer lugar mis disculpas por no haberme explicado mejor.
    El indicador funciona perfectamente.
    En cuanto al screener lo he aplicado a los datos diarios del Ibex 35 y no me han salido los resultados correctos. He modificado el screener tomando como base el código del indicador que funciona perfectamente y de esta manera manera el screener da los mismos resultados que el indicador.  De todas formas por favor revisa el código por si hubiera algún error de programación porque yo no entiendo casi nada y lo he hecho por intuición pero hay muchas líneas de código que no entiendo lo que hacen. En la imagen se ve que el resultado del screener  31,86 coincide con el porcentaje del indicador y el porcentaje calculado con la herramienta regla del programa. Adjunto imagen con los resultados e inserto el código del screener corregido para su revisión.
    Muchas gracias Roberto.
    Un saludo.

    Trend       = 0
    p           = 250                //250 periods
    HH          = highest[p](high)
    LL          = lowest[p](low)
    //Diff1     = abs(HH - LL)
    
    FOR i = 0 TO (p - 1)
    IF high[i] = HH THEN
    Trend = 1
    MyBar = BarIndex[i]
    BREAK
    ENDIF
    IF low[i] = LL THEN
    Trend = -1
    //MyBar = BarIndex[i]
    HH    = HH[1]
    LL    = LL[1]
    Bx    = Bx[1]
    Rg    = Rg[1]
    BREAK
    ENDIF
    NEXT
    IF Trend = 1 THEN
    bx          = BarIndex
    Retracement = lowest[max(1,BarIndex - MyBar)](low)
    Diff2       = HH - Retracement
    //PerCent     = round(Diff2 * 100 / Diff1,1)
    PerCent     = round(Diff2 * 100 / HH,2)
    Rg          = average[p,0](Range) * 2.0
    ENDIF
    C1= HIGH < HH
    SCREENER[PerCent AND C1](PerCent AS "Pullback %")

     

    imagen8.png imagen8.png
    #212147 quote
    robertogozzi
    Moderator
    Master

    El filtro que publiqué es exactamente igual que el indicador, obviamente sin las instrucciones gráficas. No necesitas hacer ningún cambio.

    Agregaste la variable C1, pero no es necesaria, ya que HIGH nunca puede ser mayor que HH.

    No se que decirte, para mi los porcentajes entre el indicador y el screener coinciden. He notado que a veces hay resultados con tendencias bajistas, pero no sé por qué. El código es correcto.

    Si intentas indicar menos periodos, por ejemplo 100 o 150, me parece que los resultados son más correctos.

    Trato de preguntar a los otros moderadores para saber si tienen una explicación.

    #212161 quote
    robertogozzi
    Moderator
    Master

    El error estuvo en haber usado -1 para las tendencias bajistas. ProScreener solo quiere números positivos.
    Usé 0 para las tendencias bajistas que deberían descartarse.
    Sin embargo, realicé algunos otros cambios menores para tratar de eliminar las acciones que tienen 0 precio o 0 volumen de los resultados.
    Pruébalos y dame tu opinión.

    Indicator:

    DEFPARAM DrawOnLastBarOnly = True
    Trend       = 0
    p           = 250                //250 periods
    HH          = highest[p](high)
    LL          = lowest[p](low)
    //Diff1     = abs(HH - LL)
    FOR i = 0 TO (p - 1)
    IF high[i] = HH THEN
    Trend = 1
    MyBar = BarIndex[i]
    BREAK
    ENDIF
    IF low[i] = LL THEN
    //Trend = -1
    //MyBar = BarIndex[i]
    HH    = HH[1]
    LL    = LL[1]
    Bx    = Bx[1]
    Rg    = Rg[1]
    BREAK
    ENDIF
    NEXT
    IF Trend = 1 THEN
    bx          = BarIndex
    Retracement = lowest[max(1,BarIndex - MyBar)](low)
    Diff2       = HH - Retracement
    //PerCent     = round(Diff2 * 100 / Diff1,1)
    PerCent     = round(Diff2 * 100 / HH,2)
    Rg          = average[p,0](Range) * 2.0
    ENDIF
    DrawSegment(MyBar,HH,Bx,HH) coloured("Blue")
    DrawSegment(MyBar,LL,Bx,LL) coloured("Blue")
    IF Trend = 1 THEN
    DrawText("PullBack %     : #PerCent#"    ,Bx,HH + Rg*1.0) coloured("Blue",255)
    DrawText("        LOW retrace: #Retracement#",Bx,HH + Rg*1.5) coloured("Blue",255)
    DrawText(" HH                       : #HH#"         ,Bx,HH + Rg*2.0) coloured("Blue",255)
    DrawText(" LL                       : #LL#"         ,Bx,HH + Rg*2.5) coloured("Blue",255)
    ENDIF
    RETURN

    Screener:

    p       = 250              //250   periods
    PerCent = 20.0             //30.0  minimum % of retracement
    HH      = highest[p](high)
    LL      = lowest[p](low)
    Trend   = 0
    Signal  = 0
    IF (close[p] > 0) AND (close <> 0) AND (close <> open) AND (Volume > 0) THEN
    FOR i = 0 TO (p - 1)
    IF high[i] = HH THEN
    MyBar = BarIndex[i]
    Trend = 1
    BREAK
    ENDIF
    IF low[i] = LL THEN
    //Trend = 0
    BREAK
    ENDIF
    NEXT
    ENDIF
    IF Trend = 1 THEN
    Retracement = lowest[max(1,BarIndex - MyBar)](low)
    Diff2       = HH - Retracement
    PC          = round(Diff2 * 100 / HH,2)
    Signal      = (close <= Retracement)
    ENDIF
    SCREENER[Signal AND (PC >= PerCent)](PC AS "Pullback %")
    nautilus23 thanked this post
    #212495 quote
    nautilus23
    Participant
    Average

    Me parecen bien los cambios que has efectuado.

    He  sustituido la línea 24 del screener

    [Signal      = (close <= Retracement)]

    por la siguiente

    [Signal      = (close >= Retracement)]

    que se ajusta más a lo que yo busco. Una vez hecho esto he ejecutado el screener y los resultados parecen ser correctos (adjunto imagen). En cuanto al indicador también parece que funciona. Seguiré haciendo pruebas.

    En cuanto al indicador ¿es posible completarlo añadiéndole una nueva línea (low retrace) en el lugar señalado con flechas rojas?.

    Muchas gracias y un saludo.

    imagen-9.png imagen-9.png
    #212563 quote
    robertogozzi
    Moderator
    Master

    Aquí está modificado:

    DEFPARAM DrawOnLastBarOnly = True
    Trend       = 0
    p           = 250                //250 periods
    HH          = highest[p](high)
    LL          = lowest[p](low)
    FOR i = 0 TO (p - 1)
       IF high[i] = HH THEN
          Trend = 1
          MyBar = BarIndex[i]
          BREAK
       ENDIF
       IF low[i] = LL THEN
          HH    = HH[1]
          LL    = LL[1]
          Bx    = Bx[1]
          Rg    = Rg[1]
          BREAK
       ENDIF
    NEXT
    IF Trend = 1 THEN
       bx          = BarIndex
       Retracement = lowest[max(1,BarIndex - MyBar)](low)
       Diff2       = HH - Retracement
       PerCent     = round(Diff2 * 100 / HH,2)
       Rbar = MyBar
       FOR i = 0 TO (p - 1)
          IF low[i] = Retracement THEN
             Rbar = BarIndex[i]
             break
          ENDIF
       NEXT
       Rg          = average[p,0](Range) * 2.0
    ENDIF
    DrawSegment(MyBar,HH,Bx,HH) coloured("Blue")
    DrawSegment(MyBar,LL,Bx,LL) coloured("Blue")
    IF Trend = 1 THEN
       DrawSegment(Rbar,Retracement,BarIndex,Retracement)                   coloured("Grey",255)
       DrawText("PullBack %     : #PerCent#"    ,Bx,HH + Rg*1.0)            coloured("Blue",255)
       DrawText("        LOW retrace: #Retracement#",Bx,HH + Rg*1.5)        coloured("Blue",255)
       DrawText(" HH                       : #HH#"         ,Bx,HH + Rg*2.0) coloured("Blue",255)
       DrawText(" LL                       : #LL#"         ,Bx,HH + Rg*2.5) coloured("Blue",255)
    ENDIF
    RETURN
    nautilus23 thanked this post
    #213102 quote
    nautilus23
    Participant
    Average

    La linea se dibuja correctamente.

    Muy agradecido por tu ayuda Roberto.

    Un saludo.

Viewing 11 posts - 16 through 26 (of 26 total)
  • You must be logged in to reply to this topic.

Porcentaje correccion-retroceso desde maximos


ProScreener: Buscadores de Mercado y Rastreo

New Reply
Author
author-avatar
nautilus23 @nautilus23 Participant
Summary

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

Topic Details
Forum: ProScreener: Buscadores de Mercado y Rastreo
Language: Spanish
Started: 12/20/2022
Status: Active
Attachments: 16 files
Logo Logo
Loading...