Indicazione barra precedente

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #203342 quote
    fabioerliam
    Participant
    Junior

    Buongiorno a tutti!

    Ho creato un indicatore che mi restituisce come valori 1 e 0…quindi classico istogramma e in più all’1 ho assegnato il valore della chiusura del prezzo.

    In pratica mi segnala ogni volta che il prezzo mi fa un nuovo minimo o massimo indicandomi appunto anche il valore della chiusura.

    Quindi l’indicatore mi passa da 0 (quando non succede nulla) a una barra positiva con tot valore ogni volta che si crea un nuovo minimo/massimo.

    Ora il mio problema è quello di creare un nuovo indicatore basato su questo che mi indichi con la classica barra positiva (1) quando il nuovo massimo/minimo che si è appena creato è anche superiore/inferiore al precedente.

    Ho provato a codificare, ma sbaglio qualcosa perchè quando vado a confrontare la barra positiva che mi da il segnale con il segnale precedente, uso [1] , ma codifico sempre quella precedente che è la barra “0” e non quella con il valore…che può essere anche 5 o 6 candele prima…

    Esiste quindi un modo per non fargli “calcolare” le barre con valore “0” in modo tale che quando indico la precedente con [1] mi vada a prendere la precedente barra con valore>0?

    Grazie

    Spero di essermi spiegato bene…

    Non so se serve girarvi il codice…magari può essere d’aiuto

    Vv=0

    Giu=close[1]<close and close[2]>close[1]

    If giu then vv=close[1]

    Endif

    Return vv

    #203381 quote
    robertogozzi
    Moderator
    Master

    Puoi allegare una foto dove identifichi le barre 0, 1 e 2. E’ l’uso della candela 2 che non capisco bene. In pratica il CLOSE che sta nel mezzo deve essere il più basso delle tre candele?

    #203426 quote
    fabioerliam
    Participant
    Junior

    Fondamentalmente Roberto vorrei creare un indicatore che mi dia il segnale quando il close mi supera al rialzo o al ribasso l’ultimo swing del prezzo…magari dandomi come segnale +1 quando mi supera lo swing high e -1 quando mi supera lo swing low

    #203490 quote
    robertogozzi
    Moderator
    Master
    Questo è l’indicatore che visualizza gli swing. Se lo metti SUL grafico vedi le linee sopra/sotto lo swing. Se lo metti SOTTO al grafico vedi l’istogramma:
    Periodi    = 30
    Rialzo     = close > open
    Ribasso    = close < open
    HHalto     = max(high,high[1]) = highest[Periodi](high)
    LLbasso    = min(low,low[1])   = lowest [Periodi](low)
    SwingALTO  = Rialzo[1]  AND Ribasso AND HHalto
    SwingBASSO = Ribasso[1] AND Rialzo  AND LLbasso
    Offset     = max(range,range[1]) * 1.1
    IF SwingALTO THEN
       DrawSegment(BarIndex[2],high + Offset,BarIndex+1,high + Offset) style(Line,5) coloured("Blue")
    ENDIF
    IF SwingBASSO THEN
       DrawSegment(BarIndex[2],low -  Offset,BarIndex+1,low - Offset) style(Line,5) coloured("Red")
    ENDIF
    x = 0
    IF SwingALTO THEN
       x = 1
    ELSIF SwingBASSO THEN
       x = -1
    ENDIF
    RETURN x AS "Swing",0 AS "Zero"
    Questo è l’indicatore che  visualizza la ROTTURA dell’ultimo SWING, Se lo metti SUL grafico vedi una freccia sopra/sotto la rottura. Se lo metti SOTTO al grafico vedi l’istogramma:
    Periodi    = 30
    Rialzo     = close > open
    Ribasso    = close < open
    HHalto     = max(high,high[1]) = highest[Periodi](high)
    LLbasso    = min(low,low[1])   = lowest [Periodi](low)
    SwingALTO  = Rialzo[1]  AND Ribasso AND HHalto
    SwingBASSO = Ribasso[1] AND Rialzo  AND LLbasso
    Offset     = range * 1.0
    IF SwingALTO THEN
       PrezzoALTO = max(high,high[1])
    ENDIF
    IF SwingBASSO THEN
       PrezzoBASSO = min(low,low[1])
    ENDIF
    RotturaALTA  = close > PrezzoALTO
    RotturaBASSA = close < PrezzoBASSO
    x = 0
    IF RotturaALTA THEN
       DrawArrowUP(BarIndex,low - Offset) coloured("Green")
    x = 1
    ELSIF RotturaBASSA THEN
       DrawArrowDOWN(BarIndex,high + Offset) coloured("Green")
    x = -1
    ENDIF
    RETURN x AS "Rottura",0 AS "Zero"
    Visualizza-SWING.itf Rottura-SWING.itf Swing.jpg Swing.jpg
    #203495 quote
    fabioerliam
    Participant
    Junior
    Grazie Roberto! Tornerà utile:) Gentilissimo!
    #203498 quote
    fabioerliam
    Participant
    Junior
    Buongiorno Roberto! Ti ho fatto uno schizzo a penna per aiutarti a capire perchè se no faccio fatica a spiegarmi. In pratica a me servirebbe un indicatore da mettere sotto al grafico che mi identifichi e che possa mettere a confronto gli ultimi 3 swing, che si riferiscono alle CHIUSURE delle candele su un grafico a linee. Di volta in volta dovrebbe aggiornarsi in modo tale che l’ultimo appena realizzato sia lo swing1 e via via così…lo swing3 sarà dei 3 il primo a “cancellarsi” . Un pò come se volessi confrontare tra loro le ultime 3 chiusure delle candele (close(1), close(2),close(3) solo che al posto delle chiusure metto a confronto questi swing per poi implementare una strategia del tipo…se swing1 è più basso di swing2, ma più alto di swing3 allora… È possibile realizzare una cosa di questo tipo? Ti ringrazio Roberto e buona giornata!
    20221104_073532.jpg 20221104_073532.jpg
    #203582 quote
    robertogozzi
    Moderator
    Master
    Eccolo (la foto allegata si riferisce al Dax, 5 minuti, con 10 periodi):
    DEFPARAM DrawOnLastBarOnly = True
    ONCE SwingAlto1  = 0
    ONCE SwingAlto2  = 0
    ONCE SwingAlto3  = 0
    ONCE SwingBasso1 = 0
    ONCE SwingBasso2 = 0
    ONCE SwingBasso3 = 0
    //
    //ONCE Periodi = 10
    Rialzo     = close > open
    Ribasso    = close < open
    HH         = max(high,high[1])
    LL         = min(low,low[1])
    HHalto     = HH = highest[Periodi](high)
    LLbasso    = LL = lowest [Periodi](low)
    SwingALTO  = Rialzo[1]  AND Ribasso AND HHalto
    SwingBASSO = Ribasso[1] AND Rialzo  AND LLbasso
    Offset     = max(range,range[1]) * 0.6
    IF SwingALTO  THEN
    SwingAlto3  = SwingAlto2
    BarraAlta3  = BarraAlta2
    SwingAlto2  = SwingAlto1
    BarraAlta2  = BarraAlta1
    SwingAlto1  = HH
    BarraAlta1  = BarIndex
    ENDIF
    IF SwingBASSO THEN
    SwingBasso3 = SwingBasso2
    BarraBassa3 = BarraBassa2
    SwingBasso2 = SwingBasso1
    BarraBassa2 = BarraBassa1
    SwingBasso1 = LL
    BarraBassa1 = BarIndex
    ENDIF
    //
    IF SwingAlto3 THEN
    DrawText("██",BarraAlta3,SwingAlto3 + Offset,Dialog,Bold,5)   coloured("Blue")
    ENDIF
    IF SwingAlto2 THEN
    DrawText("██",BarraAlta2,SwingAlto2 + Offset,Dialog,Bold,5)   coloured("Blue")
    ENDIF
    IF SwingAlto1 THEN
    DrawText("██",BarraAlta1,SwingAlto1 + Offset,Dialog,Bold,5)   coloured("Blue")
    ENDIF
    //
    IF SwingBasso3 THEN
    DrawText("██",BarraBassa3,SwingBasso3 - Offset,Dialog,Bold,5) coloured("Red")
    ENDIF
    IF SwingBasso2 THEN
    DrawText("██",BarraBassa2,SwingBasso2 - Offset,Dialog,Bold,5) coloured("Red")
    ENDIF
    IF SwingBasso1 THEN
    DrawText("██",BarraBassa1,SwingBasso1 - Offset,Dialog,Bold,5) coloured("Red")
    ENDIF
    RETURN close AS "Prezzo"
    Zigo thanked this post
    x.jpg x.jpg Visualizza-SWING2.itf
    #203736 quote
    fabioerliam
    Participant
    Junior
    Roberto buongiorno! Ti ringrazio per il tempo che mi stai dedicando! Due cose: ho provato a fare copia incolla, ma mi da errore e non me lo convalida nella versione10.3 . Dovrei usare la 11? La seconda cosa è che purtroppo dallo script che mi hai mandato, non credo di essermi spiegato bene. Ti riallego una foto di uno schizzo che ho fatto. Credo tu abbia inteso che l’indicatore debba tirar fuori gli swing degli ultimi tot periodi…no… È molto più semplice. Ti dico quelle che sono le fasi da codificare a mio modestissimo parere: 1. Indicare il cambio colore della barra (da verde passa a rossa esempio) riferito alla chiusura. 2 ogni volta che cambia colore la barra, su un grafico a linee, si crea un angolo. Di quell’angolo a me interessa sapere il valore del VERTICE quindi proprio il valore della punta di quell’angolo che si è creato. (La chiusura) 3.  una volta dato il valore a quel vertice, lo si dovrebbe poter confrontare con i precedenti vertici creati…in che modo non lo so. Se è possibile crearlo per la versione 10.3 meglio ancora perchè ho sempre usato questa…altrimenti no problem. Ti ringrazio Roberto
    #204203 quote
    robertogozzi
    Moderator
    Master
    Non ricordo cosa avesse di nuovo la versione 11 rispetto alla 10.3. Forse il modo di usare COLOURED, prova a sostituire “Red” e “Blue” con i codici RGB che trovi alla tabella https://www.prorealcode.com/wp-content/uploads/2015/09/P1jHlnG.jpg. Non hai allegato la foto del nuovo schizzo. Sono rimasto a quello vecchio. Ad ogni modo credo di avere capito. Eccolo:
    DEFPARAM DrawOnLastBarOnly = True
    ONCE SwingAlto1  = 0
    ONCE SwingAlto2  = 0
    ONCE SwingAlto3  = 0
    ONCE SwingBasso1 = 0
    ONCE SwingBasso2 = 0
    ONCE SwingBasso3 = 0
    //
    SwingALTO  = (close < close[1]) AND (close[1] > close[2])
    SwingBASSO = (close  > close[1])  AND (close[1]  < close[2])
    Offset     = max(range,range[1]) * 0.7
    IF SwingALTO  THEN
    SwingAlto3  = SwingAlto2
    BarraAlta3  = BarraAlta2
    SwingAlto2  = SwingAlto1
    BarraAlta2  = BarraAlta1
    SwingAlto1  = close[1]
    BarraAlta1  = BarIndex[1]
    ENDIF
    IF SwingBASSO THEN
    SwingBasso3 = SwingBasso2
    BarraBassa3 = BarraBassa2
    SwingBasso2 = SwingBasso1
    BarraBassa2 = BarraBassa1
    SwingBasso1 = close[1]
    BarraBassa1 = BarIndex[1]
    ENDIF
    //
    IF SwingAlto3 THEN
    DrawText("#SwingAlto3#",BarraAlta3,SwingAlto3 + Offset,Dialog,Bold,12)   coloured("Blue")
    ENDIF
    IF SwingAlto2 THEN
    DrawText("#SwingAlto2#",BarraAlta2,SwingAlto2 + Offset,Dialog,Bold,12)   coloured("Blue")
    ENDIF
    IF SwingAlto1 THEN
    DrawText("#SwingAlto1#",BarraAlta1,SwingAlto1 + Offset,Dialog,Bold,12)   coloured("Blue")
    ENDIF
    //
    IF SwingBasso3 THEN
    DrawText("#SwingBasso3#",BarraBassa3,SwingBasso3 - Offset,Dialog,Bold,12)   coloured("Red")
    ENDIF
    IF SwingBasso2 THEN
    DrawText("#SwingBasso2#",BarraBassa2,SwingBasso2 - Offset,Dialog,Bold,12)   coloured("Red")
    ENDIF
    IF SwingBasso1 THEN
    DrawText("#SwingBasso1#",BarraBassa1,SwingBasso1 - Offset,Dialog,Bold,12)   coloured("Red")
    ENDIF
    x = 0
    IF SwingALTO THEN
    IF SwingALTO1 > SwingALTO2 THEN
    DrawText("↓",BarraAlta1,SwingAlto1 + Offset*2.5,Dialog,Bold,25)   coloured("Blue")
    x = 1
    ENDIF
    ELSIF SwingBASSO THEN
    IF SwingBASSO1 < SwingBASSO2 THEN
    DrawText("↑",BarraBassa1,SwingBasso1 - Offset*2.5,Dialog,Bold,25) coloured("Red")
    x = -1
    ENDIF
    ENDIF
    RETURN x AS "Segnale"
    Ho fatto le seguenti modifiche: – stampa il valore degli ultimi 3 swing (Altyi e Bassi) sopra/sotto la candela dove avvengono – stampa una freccetta sopra/sotto il prezzo quanto lo swing è più alto o più basso del precedente – ho sostituito i massimi ed i minim1 con le CHIUSURE.
    Il-Mio-Indicatore5.itf x-3.jpg x-3.jpg
    #204239 quote
    fabioerliam
    Participant
    Junior
    Buongiorno Roberto! Questa era la bozza… appena ho un attimo provo quello che mi hai mandato! Ti ringrazio molto:)
    20221107_083317.jpg 20221107_083317.jpg
    #204355 quote
    Zigo
    Participant
    Master
    Very clear this indicator. (RGB)
    
    
    DAX-12-minuten.swingpng.png DAX-12-minuten.swingpng.png
    #204358 quote
    Zigo
    Participant
    Master
    
    DEFPARAM DrawOnLastBarOnly = True
    ONCE SwingAlto1  = 0
    ONCE SwingAlto2  = 0
    ONCE SwingAlto3  = 0
    ONCE SwingBasso1 = 0
    ONCE SwingBasso2 = 0
    ONCE SwingBasso3 = 0
    //
    ONCE Periodi = 10
    Rialzo     = close > open
    Ribasso    = close < open
    HH         = max(high,high[1])
    LL         = min(low,low[1])
    HHalto     = HH = highest[Periodi](high)
    LLbasso    = LL = lowest [Periodi](low)
    SwingALTO  = Rialzo[1]  AND Ribasso AND HHalto
    SwingBASSO = Ribasso[1] AND Rialzo  AND LLbasso
    Offset     = max(range,range[1]) * 0.6
    IF SwingALTO  THEN
    SwingAlto3  = SwingAlto2
    BarraAlta3  = BarraAlta2
    SwingAlto2  = SwingAlto1
    BarraAlta2  = BarraAlta1
    SwingAlto1  = HH
    BarraAlta1  = BarIndex
    ENDIF
    IF SwingBASSO THEN
    SwingBasso3 = SwingBasso2
    BarraBassa3 = BarraBassa2
    SwingBasso2 = SwingBasso1
    BarraBassa2 = BarraBassa1
    SwingBasso1 = LL
    BarraBassa1 = BarIndex
    ENDIF
    //
    IF SwingAlto3 THEN
    DrawText("██",BarraAlta3,SwingAlto3 + Offset,Dialog,Bold,15)   coloured(0,155,55,255)
    ENDIF
    IF SwingAlto2 THEN
    DrawText("██",BarraAlta2,SwingAlto2 + Offset,Dialog,Bold,15)   coloured(0,155,55,255)
    ENDIF
    IF SwingAlto1 THEN
    DrawText("██",BarraAlta1,SwingAlto1 + Offset,Dialog,Bold,18)   coloured(0,255,255,255)
    ENDIF
    //
    IF SwingBasso3 THEN
    DrawText("██",BarraBassa3,SwingBasso3 - Offset,Dialog,Bold,15) coloured(255,0,0,255)
    ENDIF
    IF SwingBasso2 THEN
    DrawText("██",BarraBassa2,SwingBasso2 - Offset,Dialog,Bold,15) coloured(255,0,0,255)
    ENDIF
    IF SwingBasso1 THEN
    DrawText("██",BarraBassa1,SwingBasso1 - Offset,Dialog,Bold,18) coloured(255,255,0,255)
    ENDIF
    RETURN
    robertogozzi thanked this post
    DAX-12-minutenPrijs.png DAX-12-minutenPrijs.png
Viewing 12 posts - 1 through 12 (of 12 total)
  • You must be logged in to reply to this topic.

Indicazione barra precedente


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
Summary

This topic contains 11 replies,
has 3 voices, and was last updated by Zigo
3 years, 4 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 11/01/2022
Status: Active
Attachments: 11 files
Logo Logo
Loading...