Max min con estensioni

Viewing 13 posts - 16 through 28 (of 28 total)
  • Author
    Posts
  • #98485 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Basta aggiungere un’ulteriore variabile da aggiornare al cambio del giorno (non l’ho provato):

    DEFPARAM DrawOnLastBarOnly = true
    IF OpenTime >= 080000 AND OpenTime <= 220000 THEN
       IF OpenTime = 080000 THEN
          MinimoPrec2 = MinimoPrec
          MassimoPrec2 = MassimoPrec
          MinimoPrec = Minimo
          MassimoPrec = Massimo
          Sopra10Prec2 = Sopra10Prec
          Sotto10Prec2 = Sotto10Prec
          Sopra10Prec = Sopra10
          Sotto10Prec = Sotto10
          Minimo = low
          Massimo = high
          Inizio = BarIndex
       ENDIF
       Massimo = max(Massimo, high)
       Minimo = min(Minimo, low)
     ENDIF
    IF OpenTime >= 080000 AND OpenTime <= 140000 THEN
       Estensione = (Massimo – Minimo) * 0.1 //10%
       Sopra10 = Massimo + Estensione
       Sotto10 = Minimo – Estensione
    ENDIF
    DRAWSEGMENT(Inizio,MassimoPrec2,BarIndex,MassimoPrec2) coloured(0,201,87,255)
    DRAWTEXT(” #MassimoPrec2#”, barindex,MassimoPrec2, SansSerif,Bold,10) coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,MinimoPrec2 ,BarIndex,MinimoPrec2) coloured(0,201,87,255)
    DRAWTEXT(” #MinimoPrec2#” , barindex, MinimoPrec2, SansSerif,Bold,10) coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Sopra10Prec2,BarIndex,Sopra10Prec2) coloured(218,165,32,255)
    DRAWTEXT(” #Sopra10Prec2#”, barindex, Sopra10Prec2, SansSerif,Bold,10)coloured(218,165,32,255)
    DRAWSEGMENT(Inizio,Sotto10Prec2,BarIndex,Sotto10Prec2) coloured(218,165,32,255)
    DRAWTEXT(” #Sotto10Prec2#”, barindex, Sotto10Prec2, SansSerif,Bold,10)coloured(218,165,32,255)
    RETURN

    Per fare l’altra cosa con RETURN dovrai aggiornare la riga come segue:

    RETURN MassimoPrec2,MinimoPrec2,Sopra10Prec2,Sotto10Prec2
    #98789 quote
    MarcotradingMarcotrading
    Participant
    Junior

    Salve Roberto buongiorno. appena provato il codice e funziona alla grande.

    Un ultima domanda. Se volessi ottenere il max e minimo della settimana precedente con relative estensioni, come fare?

    Grazie anticipata per la tua umile disponibilità

    #98801 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Te lo farò lunedì. Buon fine settimana.

    #98867 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Provalo, mi sembra funzioni:

    DEFPARAM CalculateOnLastBars = 1000
    DEFPARAM DrawOnLastBarOnly   = true
    IF OpenTime >= 080000 AND OpenTime <= 220000 THEN
       IF OpenTime = 080000 THEN
          IF OpenDayOfWeek = 1 THEN
             MinimoPrec  = Minimo
             MassimoPrec = Massimo
             Sopra10Prec = Sopra10
             Sotto10Prec = Sotto10
             Minimo  = low
             Massimo = high
             Inizio  = BarIndex
          ENDIF
       ENDIF
       Massimo = max(Massimo, high)
       Minimo  = min(Minimo, low)
    ENDIF
    IF OpenTime >= 080000 AND OpenTime <= 140000 THEN
       Estensione = (Massimo - Minimo) * 0.1              //10%
       Sopra10    = Massimo  + Estensione
       Sotto10    = Minimo   - Estensione
    ENDIF
    DRAWSEGMENT(Inizio,MassimoPrec,BarIndex,MassimoPrec)                                 coloured(0,201,87,255)
    DRAWTEXT("                 #MassimoPrec#", barindex,MassimoPrec, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,MinimoPrec ,BarIndex,MinimoPrec)                                  coloured(0,201,87,255)
    DRAWTEXT("                 #MinimoPrec#" , barindex, MinimoPrec, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Sopra10Prec,BarIndex,Sopra10Prec) coloured(218,165,32,255)
    DRAWTEXT("                  #Sopra10Prec#", barindex, Sopra10Prec, SansSerif,Bold,10)coloured(218,165,32,255)
    DRAWSEGMENT(Inizio,Sotto10Prec,BarIndex,Sotto10Prec) coloured(218,165,32,255)
    DRAWTEXT("                  #Sotto10Prec#", barindex, Sotto10Prec, SansSerif,Bold,10)coloured(218,165,32,255)
    RETURN
    #198396 quote
    MarcotradingMarcotrading
    Participant
    Junior

    Ciao Roberto buongiorno. Vorrei lo stesso indicatore che mi tracci le estensioni, pero’ questa volta non calcolate sul max e minimo del giono precedente, ma bensi’ calcolate con il max e minimo candela che viene identificata con il maggior picco di atr a 5 periodi della giornata che si viene a creare dalle ore 10:00 alle ore 17:00.

    è lo stesso indicatore, solo che dovremmo inserire l’atr per calcolare il max e minimo candela. potresti aiutarmi? grazie

    #198809 quote
    MarcotradingMarcotrading
    Participant
    Junior

    Roberto ti allego un’immagine in modo tale che cio’ che ho scritto sia piu’ comprensibile.

    Grazie

    prorealtimeATR.jpg prorealtimeATR.jpg
    #198868 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Eccolo:

    DEFPARAM CalculateOnLastBars = 1000
    DEFPARAM DrawOnLastBarOnly   = true
    //
    //ONCE atrP              = 5
    //ONCE OraInizio         = 100000
    //ONCE OraFine           = 170000
    //ONCE EstenzionePerCent = 1.0
    //
    ATR = AverageTrueRange[atrP](close)
    IF OpenTime >= OraInizio AND OpenTime <= OraFine THEN
       IF OpenTime = OraInizio THEN
          MyAtr   = ATR
          Massimo = high
          Minimo  = low
          Inizio  = BarIndex
       ENDIF
    ENDIF
    IF OpenTime >= OraInizio AND OpenTime <= OraFine THEN
       MyAtr      = max(ATR,MyAtr)
       IF MyAtr <> MyAtr[1] THEN
          Massimo = high
          Minimo  = low
          //Inizio  = BarIndex
       ENDIF
       Sopra = Massimo  + (Massimo  * (EstenzionePerCent / 100))
       Sotto = Minimo   - (Minimo   * (EstenzionePerCent / 100))
    ENDIF
    DRAWSEGMENT(Inizio,Massimo,BarIndex,Massimo)                                 coloured(0,201,87,255)
    DRAWTEXT("                 #Massimo#", barindex,Massimo, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Minimo ,BarIndex,Minimo)                                  coloured(0,201,87,255)
    DRAWTEXT("                 #Minimo#" , barindex, Minimo, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Sopra,BarIndex,Sopra) coloured(218,165,32,255)
    DRAWTEXT("                  #Sopra#", barindex, Sopra, SansSerif,Bold,10)coloured(218,165,32,255)
    DRAWSEGMENT(Inizio,Sotto,BarIndex,Sotto) coloured(218,165,32,255)
    DRAWTEXT("                  #Sotto#", barindex, Sotto, SansSerif,Bold,10)coloured(218,165,32,255)
    RETURN

    Inizia a stampare le linee dall’ora di INIZIO. Se preferisci stamparle solo dalla barra in cui fa il nuvomassimo ATR, basta che togli le barre iniziali dei commenti dalla riga 23.

    x-3.jpg x-3.jpg MaxMinEstenzioniATR.itf
    #198873 quote
    MarcotradingMarcotrading
    Participant
    Junior

    Ciao Roberto, l’indicatore mi traccia perfettamente due linee su max e minimo candela identificata tramite ATR, ma non mi disegna le estensioni

    atrptova.jpg atrptova.jpg
    #198882 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Penso dipenda dalla percentuale, prova a restringere verticalmente il grafico (o indicare una percentuale più piccola).

    #198936 quote
    MarcotradingMarcotrading
    Participant
    Junior

    Ciao Roberto buongiorno. L’indicatore mi traccia le linee, ma sballa un po la percentuale.

    Questo classici e cio’ quello che mi hai programmato un anno fa, va benissimo.

    Potresti aggiungere l’identificazione del max e minimo della candela con Atr a questo classico che mi hai già fatto? Ti allego il codice:

    DEFPARAM CalculateOnLastBars = 1000
    DEFPARAM DrawOnLastBarOnly   = true
    IF OpenTime >= 080000 AND OpenTime <= 220000 THEN
       IF OpenTime = 080000 THEN
          IF OpenDayOfWeek = 1 THEN
             MinimoPrec  = Minimo
             MassimoPrec = Massimo
             Sopra10Prec = Sopra10
             Sotto10Prec = Sotto10
             Minimo  = low
             Massimo = high
             Inizio  = BarIndex
          ENDIF
       ENDIF
       Massimo = max(Massimo, high)
       Minimo  = min(Minimo, low)
    ENDIF
    IF OpenTime >= 080000 AND OpenTime <= 140000 THEN
       Estensione = (Massimo - Minimo) * 0.1              //10%
       Sopra10    = Massimo  + Estensione
       Sotto10    = Minimo   - Estensione
    ENDIF
    DRAWSEGMENT(Inizio,MassimoPrec,BarIndex,MassimoPrec)                                 coloured(0,201,87,255)
    DRAWTEXT("                 #MassimoPrec#", barindex,MassimoPrec, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,MinimoPrec ,BarIndex,MinimoPrec)                                  coloured(0,201,87,255)
    DRAWTEXT("                 #MinimoPrec#" , barindex, MinimoPrec, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Sopra10Prec,BarIndex,Sopra10Prec) coloured(218,165,32,255)
    DRAWTEXT("                  #Sopra10Prec#", barindex, Sopra10Prec, SansSerif,Bold,10)coloured(218,165,32,255)
    DRAWSEGMENT(Inizio,Sotto10Prec,BarIndex,Sotto10Prec) coloured(218,165,32,255)
    DRAWTEXT("                  #Sotto10Prec#", barindex, Sotto10Prec, SansSerif,Bold,10)coloured(218,165,32,255)
    RETURN
    MaxMinEstenzioniATR-2.itf
    #198949 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    In effetti avevo capito male la richiesta ed avevo cambiato il calcolo.

    Eccolo giusto:

    DEFPARAM CalculateOnLastBars = 1000
    DEFPARAM DrawOnLastBarOnly   = true
    //
    //ONCE atrP              = 5
    //ONCE OraInizio         = 100000
    //ONCE OraFine           = 170000
    //ONCE EstenzionePerCent = 30.0
    //
    ATR = AverageTrueRange[atrP](close)
    IF OpenTime >= OraInizio AND OpenTime <= OraFine THEN
       IF OpenTime = OraInizio THEN
          MyAtr   = ATR
          Massimo = high
          Minimo  = low
          Inizio  = BarIndex
       ENDIF
       MyAtr      = max(ATR,MyAtr)
       IF MyAtr <> MyAtr[1] THEN
          Massimo = high
          Minimo  = low
          //Inizio  = BarIndex
       ENDIF
       Estensione = (Massimo - Minimo) * (EstenzionePerCent / 100)
       Sopra      = Massimo  + Estensione
       Sotto      = Minimo   - Estensione
    ENDIF
    DRAWSEGMENT(Inizio,Massimo,BarIndex,Massimo)                                 coloured(0,201,87,255)
    DRAWTEXT("                 #Massimo#", barindex,Massimo, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Minimo ,BarIndex,Minimo)                                  coloured(0,201,87,255)
    DRAWTEXT("                 #Minimo#" , barindex, Minimo, SansSerif,Bold,10)  coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Sopra,BarIndex,Sopra) coloured(218,165,32,255)
    DRAWTEXT("                  #Sopra#", barindex, Sopra, SansSerif,Bold,10)coloured(218,165,32,255)
    DRAWSEGMENT(Inizio,Sotto,BarIndex,Sotto) coloured(218,165,32,255)
    DRAWTEXT("                  #Sotto#", barindex, Sotto, SansSerif,Bold,10)coloured(218,165,32,255)
    RETURN
    #198957 quote
    MarcotradingMarcotrading
    Participant
    Junior

    Perfetto, appena testato. funziona benissimo Roberto.

    Ultima domanda: se volessi identificare sempre max e minimo di una candela identificata tramite Atr, quindi lo stesso calcolo, ma del giorno precedente è possibile farlo? Quindi stesso indicatore, ma nel giorno precedente

    #198967 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Questa è la versione per il giorno precedente:

    DEFPARAM CalculateOnLastBars = 1000
    DEFPARAM DrawOnLastBarOnly   = true
    //
    //ONCE atrP              = 5
    //ONCE OraInizio         = 100000
    //ONCE OraFine           = 170000
    //ONCE EstenzionePerCent = 30.0
    //
    ATR = AverageTrueRange[atrP](close)
    IF OpenTime >= OraInizio AND OpenTime <= OraFine THEN
       IF OpenTime = OraInizio THEN
          HH         = Massimo
          LL         = Minimo
          Estensione = (HH - LL) * (EstenzionePerCent / 100)
          Sopra      = HH  + Estensione
          Sotto      = LL  - Estensione
          Inizio     = Barra
          //
          MyAtr   = ATR
          Massimo = high
          Minimo  = low
          Barra   = BarIndex
       ENDIF
       MyAtr      = max(ATR,MyAtr)
       IF MyAtr <> MyAtr[1] THEN
          Massimo = high
          Minimo  = low
       ENDIF
    ENDIF
    DRAWSEGMENT(Inizio,HH,BarIndex,HH)                                        coloured(0,201,87,255)
    DRAWTEXT("                 #HH#", barindex, HH, SansSerif,Bold,10)        coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,LL ,BarIndex,LL)                               coloured(0,201,87,255)
    DRAWTEXT("                 #LL#", barindex, LL, SansSerif,Bold,10)        coloured(0,201,87,255)
    DRAWSEGMENT(Inizio,Sopra,BarIndex,Sopra) coloured(218,165,32,255)
    DRAWTEXT("                  #Sopra#", barindex, Sopra, SansSerif,Bold,10) coloured(218,165,32,255)
    DRAWSEGMENT(Inizio,Sotto,BarIndex,Sotto) coloured(218,165,32,255)
    DRAWTEXT("                  #Sotto#", barindex, Sotto, SansSerif,Bold,10) coloured(218,165,32,255)
    RETURN
    MaxMinEstenzioniATR-ieri-1.itf
Viewing 13 posts - 16 through 28 (of 28 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

Max min con estensioni


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
Summary

This topic contains 27 replies,
has 2 voices, and was last updated by robertogozzirobertogozzi
4 years, 1 month ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 05/02/2019
Status: Active
Attachments: 7 files
ProRealCode ProRealCode
Loading...