Señalizador de cruces con parabolica

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #227689 quote
    PatrickgarridooPatrickgarridoo
    Participant
    New

    Buenas, me gustaria crear un indicador que cuando un ema3 cruce a un ema9 alcista me dibujaria de 0 un parabolica sar pero me la dibuje a partir de la parabolica sar actual en el cruce es decir que sea una sar que empiece el factor de aceleracion de 0. Un saludo

    #227719 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Quieres decir así?

    Ema3  = average[3,1](close)
    Ema9  = average[9,1](close)
    pSAR1 = SAR[0.02,0.02,0.2]
    pSAR2 = SAR[0.000000001,0.02,0.2] //no puede ser 0
    ONCE mySAR = pSAR1
    IF Ema3 CROSSES OVER Ema9 THEN
       mySAR = pSAR2
    ENDIF
    RETURN mySAR AS "SAR" style(line,2),Ema3 AS "Ema3" style(line,2),Ema9 AS "Ema9" style(line,2)

    Pero, ¿tiene que volver a la normalidad o tiene que permanecer así siempre?

    #228036 quote
    PatrickgarridooPatrickgarridoo
    Participant
    New

    Lo he estado probando y deberia ser asi pero que los puntos vaya sumando 0.02 cada maximo desde el cruce no que sigan en linea recta como adjunto en la imagen.

    28c8a6ab7432e2e4353799b3bf304b32.jpg 28c8a6ab7432e2e4353799b3bf304b32.jpg
    #228160 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    No entiendo muy bien lo que quieres, puedes dibujar el SAR estándar y el que te gustaría para entender la diferencia.

    #228214 quote
    PatrickgarridooPatrickgarridoo
    Participant
    New

    si claro, te explico mejor. En la imagen puedes ver que cuando se cruza ema 3 con ema9 me sale otra sar nueva pero el punto que empieza es en la sar donde ha echo el cruce y de ahi empieza una nueva sar a contar hasta que haya un cambio de tendencia o otro cruce de ema3 con ema9, creo que así esta mejor explicado. La sar negra es una nueva sar que ha salido por el cruce de ema3 con ema9 y su punto de inicio es la sar donde la vela ha echo el cruce y de ahi va sumando 0.02 cada nuevo maximo o minimo Un saludo

    6e9c027ab61cbf7b1640b97dfd72a266.png 6e9c027ab61cbf7b1640b97dfd72a266.png
    #228271 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Espero haber entendido bien:

    ONCE SARinit  = 0.02
    ONCE SARstep  = 0.02
    ONCE SARlimit = 0.2
    Ema3 = average[3,1](close)
    Ema9 = average[9,1](close)
    IF BARINDEX < 2 THEN
       parabolic = LOW
       islong    = 1
       af        = SARlimit
       hp        = HIGH
       lp        = LOW
    ELSE
       IF Ema3 CROSSES UNDER Ema9 THEN
          af = SARlimit
       ENDIF
       IF islong THEN
          parabolic = parabolic + af * (hp - parabolic)
       parabolic = MIN(parabolic, LOW[1])
          parabolic = MIN(parabolic, LOW[2])
       ELSE
          parabolic = parabolic + af * (lp - parabolic)
          parabolic = MAX(parabolic, HIGH[1])
          parabolic = MAX(parabolic, HIGH[2])
       ENDIF
       reverse = 0
       IF islong THEN
          IF LOW < parabolic THEN
             islong    = 0
             reverse   = 1
             parabolic = hp
             lp        = LOW
             af        = SARinit
          ENDIF
       ELSE
          IF HIGH > parabolic THEN
             islong    = 1
             reverse   = 1
             parabolic = lp
             hp        = HIGH
             af        = SARinit
          ENDIF
       ENDIF
       IF NOT reverse THEN
          IF islong THEN
             IF HIGH > hp THEN
                hp = HIGH
                af = af + SARstep
                af = MIN (af,SARlimit)
             ENDIF
          ELSE
             IF LOW < lp THEN
                lp = LOW
                af = af + SARstep
                af = MIN (af,SARlimit)
             ENDIF
          ENDIF
       ENDIF
    ENDIF
    Offset = parabolic - (average[100,0](range) / 3)
    IF close <= parabolic THEN
       Offset = parabolic + (average[100,0](range) / 3)
    ENDIF
    RETURN Parabolic AS "mySAR"
    x-8.jpg x-8.jpg Parabolic-SAR-custom1.itf
    #228468 quote
    PatrickgarridooPatrickgarridoo
    Participant
    New

    Funciona pero me gustaría que si hace un cruce y aparece las sar nuevas se borren todas las sar dibujadas anteriores que solo se queden las de la tendencia actual

    #228495 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Lamentablemente, los datos antiguos no se pueden eliminar.

    #228538 quote
    PatrickgarridooPatrickgarridoo
    Participant
    New

    Creo que si se puede hacer ya que yo lo hice con algún otro indicador. Quiero que cuando no me cumpla la condición: “IF NN > 0 and N > 0 and A1 < M1 and A2 < M2 THEN” se me borre todo y cuando se cumpla empiece a dibujarse hasta que ya no se cumpla o el precio rebase las sar. A1, M1, A2 Y M2 ya los tengo yo definidos en el codigo restante pero es en esa parte donde hay que mnodificar. Un saludo

    ONCE SARinittt  = 0.02
    ONCE SARsteppp  = 0.02
    ONCE SARlimittt = 0.2
    
    IF BARINDEX < 2  THEN
    paraboliccc = LOW
    islonggg    = 1
    afff        = SARlimittt
    hppp        = HIGH
    lppp        = LOW
    ELSE
    IF NN > 0 and N > 0 and A1 < M1 and A2 < M2  THEN
    afff = SARlimittt
    ENDIF
    IF islonggg THEN
    paraboliccc = paraboliccc + afff * (hppp - paraboliccc)
    paraboliccc = MIN(paraboliccc, LOW[1])
    paraboliccc = MIN(paraboliccc, LOW[2])
    ELSE
    paraboliccc = paraboliccc + afff * (lppp - paraboliccc)
    paraboliccc = MAX(paraboliccc, HIGH[1])
    paraboliccc = MAX(paraboliccc, HIGH[2])
    ENDIF
    reverseee = 0
    IF islonggg THEN
    IF LOW < paraboliccc THEN
    islonggg    = 0
    reverseee   = 1
    paraboliccc = hppp
    lppp        = LOW
    afff        = SARinittt
    ENDIF
    ELSE
    IF HIGH > paraboliccc THEN
    islonggg    = 1
    reverseee   = 1
    paraboliccc = lppp
    hppp        = HIGH
    afff        = SARinittt
    ENDIF
    ENDIF
    IF NOT reverseee THEN
    IF islonggg THEN
    IF HIGH > hppp THEN
    hppp = HIGH
    afff = afff + SARsteppp
    afff = MIN (afff,SARlimittt)
    ENDIF
    ELSE
    IF LOW < lppp THEN
    lppp = LOW
    afff = afff + SARsteppp
    afff = MIN (afff,SARlimittt)
    ENDIF
    ENDIF
    ENDIF
    ENDIF
    Offsettt = paraboliccc - (average[100,0](range) / 3)
    IF close <= paraboliccc THEN
    Offsettt = paraboliccc + (average[100,0](range) / 3)
    ENDIF
    RETURN Paraboliccc AS "mySAR"
    
    
    #228540 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Esto no se puede hacer con los datos devueltos por RETURN.
    Necesitas usar una matriz, pero es bastante complicado. Puedo intentar hacerlo, pero necesitaré tiempo.

    #228755 quote
    PatrickgarridooPatrickgarridoo
    Participant
    New

    Vale de acuerdo coméntame cuando tengas algo por favor ya que a mi me da error al desarrollarlo. Un saludo

    #229404 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Publica el archivo ITF, el que publicaste no tiene todas las variables.

Viewing 12 posts - 1 through 12 (of 12 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

Señalizador de cruces con parabolica


ProBuilder: Indicadores y Herramientas

New Reply
Author
Summary

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

Topic Details
Forum: ProBuilder: Indicadores y Herramientas
Language: Spanish
Started: 02/08/2024
Status: Active
Attachments: 4 files
ProRealCode ProRealCode
Loading...