Max min con estensioni

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

    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
    Marcotrading
    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
    robertogozzi
    Moderator
    Master

    Te lo farò lunedì. Buon fine settimana.

    #98867 quote
    robertogozzi
    Moderator
    Master

    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
    Marcotrading
    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
    Marcotrading
    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
    robertogozzi
    Moderator
    Master

    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
    Marcotrading
    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
    robertogozzi
    Moderator
    Master

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

    #198936 quote
    Marcotrading
    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
    robertogozzi
    Moderator
    Master

    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
    Marcotrading
    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
    robertogozzi
    Moderator
    Master

    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.

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 robertogozzi
3 years, 6 months ago.

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