Indicazione barra precedente
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Indicazione barra precedente
- This topic has 11 replies, 3 voices, and was last updated 2 years ago by Zigo.
-
-
11/01/2022 at 9:37 AM #203342
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
11/01/2022 at 7:10 PM #203381Puoi 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?
11/02/2022 at 5:12 PM #203426Fondamentalmente 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
11/03/2022 at 6:25 PM #203490Questo è 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:
Visualizza SWING123456789101112131415161718192021Periodi = 30Rialzo = close > openRibasso = close < openHHalto = max(high,high[1]) = highest[Periodi](high)LLbasso = min(low,low[1]) = lowest [Periodi](low)SwingALTO = Rialzo[1] AND Ribasso AND HHaltoSwingBASSO = Ribasso[1] AND Rialzo AND LLbassoOffset = max(range,range[1]) * 1.1IF SwingALTO THENDrawSegment(BarIndex[2],high + Offset,BarIndex+1,high + Offset) style(Line,5) coloured("Blue")ENDIFIF SwingBASSO THENDrawSegment(BarIndex[2],low - Offset,BarIndex+1,low - Offset) style(Line,5) coloured("Red")ENDIFx = 0IF SwingALTO THENx = 1ELSIF SwingBASSO THENx = -1ENDIFRETURN 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:
Rottura SWING12345678910111213141516171819202122232425Periodi = 30Rialzo = close > openRibasso = close < openHHalto = max(high,high[1]) = highest[Periodi](high)LLbasso = min(low,low[1]) = lowest [Periodi](low)SwingALTO = Rialzo[1] AND Ribasso AND HHaltoSwingBASSO = Ribasso[1] AND Rialzo AND LLbassoOffset = range * 1.0IF SwingALTO THENPrezzoALTO = max(high,high[1])ENDIFIF SwingBASSO THENPrezzoBASSO = min(low,low[1])ENDIFRotturaALTA = close > PrezzoALTORotturaBASSA = close < PrezzoBASSOx = 0IF RotturaALTA THENDrawArrowUP(BarIndex,low - Offset) coloured("Green")x = 1ELSIF RotturaBASSA THENDrawArrowDOWN(BarIndex,high + Offset) coloured("Green")x = -1ENDIFRETURN x AS "Rottura",0 AS "Zero"11/03/2022 at 7:11 PM #203495Grazie Roberto! Tornerà utile:)
Gentilissimo!
11/04/2022 at 7:46 AM #203498Buongiorno 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!
11/05/2022 at 11:30 AM #203582Eccolo (la foto allegata si riferisce al Dax, 5 minuti, con 10 periodi):
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455DEFPARAM DrawOnLastBarOnly = TrueONCE SwingAlto1 = 0ONCE SwingAlto2 = 0ONCE SwingAlto3 = 0ONCE SwingBasso1 = 0ONCE SwingBasso2 = 0ONCE SwingBasso3 = 0////ONCE Periodi = 10Rialzo = close > openRibasso = close < openHH = 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 HHaltoSwingBASSO = Ribasso[1] AND Rialzo AND LLbassoOffset = max(range,range[1]) * 0.6IF SwingALTO THENSwingAlto3 = SwingAlto2BarraAlta3 = BarraAlta2SwingAlto2 = SwingAlto1BarraAlta2 = BarraAlta1SwingAlto1 = HHBarraAlta1 = BarIndexENDIFIF SwingBASSO THENSwingBasso3 = SwingBasso2BarraBassa3 = BarraBassa2SwingBasso2 = SwingBasso1BarraBassa2 = BarraBassa1SwingBasso1 = LLBarraBassa1 = BarIndexENDIF//IF SwingAlto3 THENDrawText("██",BarraAlta3,SwingAlto3 + Offset,Dialog,Bold,5) coloured("Blue")ENDIFIF SwingAlto2 THENDrawText("██",BarraAlta2,SwingAlto2 + Offset,Dialog,Bold,5) coloured("Blue")ENDIFIF SwingAlto1 THENDrawText("██",BarraAlta1,SwingAlto1 + Offset,Dialog,Bold,5) coloured("Blue")ENDIF//IF SwingBasso3 THENDrawText("██",BarraBassa3,SwingBasso3 - Offset,Dialog,Bold,5) coloured("Red")ENDIFIF SwingBasso2 THENDrawText("██",BarraBassa2,SwingBasso2 - Offset,Dialog,Bold,5) coloured("Red")ENDIFIF SwingBasso1 THENDrawText("██",BarraBassa1,SwingBasso1 - Offset,Dialog,Bold,5) coloured("Red")ENDIFRETURN close AS "Prezzo"1 user thanked author for this post.
11/07/2022 at 8:48 AM #203736Roberto 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
11/15/2022 at 11:50 AM #204203Non 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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960DEFPARAM DrawOnLastBarOnly = TrueONCE SwingAlto1 = 0ONCE SwingAlto2 = 0ONCE SwingAlto3 = 0ONCE SwingBasso1 = 0ONCE SwingBasso2 = 0ONCE 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.7IF SwingALTO THENSwingAlto3 = SwingAlto2BarraAlta3 = BarraAlta2SwingAlto2 = SwingAlto1BarraAlta2 = BarraAlta1SwingAlto1 = close[1]BarraAlta1 = BarIndex[1]ENDIFIF SwingBASSO THENSwingBasso3 = SwingBasso2BarraBassa3 = BarraBassa2SwingBasso2 = SwingBasso1BarraBassa2 = BarraBassa1SwingBasso1 = close[1]BarraBassa1 = BarIndex[1]ENDIF//IF SwingAlto3 THENDrawText("#SwingAlto3#",BarraAlta3,SwingAlto3 + Offset,Dialog,Bold,12) coloured("Blue")ENDIFIF SwingAlto2 THENDrawText("#SwingAlto2#",BarraAlta2,SwingAlto2 + Offset,Dialog,Bold,12) coloured("Blue")ENDIFIF SwingAlto1 THENDrawText("#SwingAlto1#",BarraAlta1,SwingAlto1 + Offset,Dialog,Bold,12) coloured("Blue")ENDIF//IF SwingBasso3 THENDrawText("#SwingBasso3#",BarraBassa3,SwingBasso3 - Offset,Dialog,Bold,12) coloured("Red")ENDIFIF SwingBasso2 THENDrawText("#SwingBasso2#",BarraBassa2,SwingBasso2 - Offset,Dialog,Bold,12) coloured("Red")ENDIFIF SwingBasso1 THENDrawText("#SwingBasso1#",BarraBassa1,SwingBasso1 - Offset,Dialog,Bold,12) coloured("Red")ENDIFx = 0IF SwingALTO THENIF SwingALTO1 > SwingALTO2 THENDrawText("↓",BarraAlta1,SwingAlto1 + Offset*2.5,Dialog,Bold,25) coloured("Blue")x = 1ENDIFELSIF SwingBASSO THENIF SwingBASSO1 < SwingBASSO2 THENDrawText("↑",BarraBassa1,SwingBasso1 - Offset*2.5,Dialog,Bold,25) coloured("Red")x = -1ENDIFENDIFRETURN 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.11/16/2022 at 7:56 AM #204239Buongiorno Roberto! Questa era la bozza… appena ho un attimo provo quello che mi hai mandato! Ti ringrazio molto:)
11/17/2022 at 7:21 PM #20435511/17/2022 at 8:22 PM #204358Price (Roberto) With RGB colours12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455DEFPARAM DrawOnLastBarOnly = TrueONCE SwingAlto1 = 0ONCE SwingAlto2 = 0ONCE SwingAlto3 = 0ONCE SwingBasso1 = 0ONCE SwingBasso2 = 0ONCE SwingBasso3 = 0//ONCE Periodi = 10Rialzo = close > openRibasso = close < openHH = 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 HHaltoSwingBASSO = Ribasso[1] AND Rialzo AND LLbassoOffset = max(range,range[1]) * 0.6IF SwingALTO THENSwingAlto3 = SwingAlto2BarraAlta3 = BarraAlta2SwingAlto2 = SwingAlto1BarraAlta2 = BarraAlta1SwingAlto1 = HHBarraAlta1 = BarIndexENDIFIF SwingBASSO THENSwingBasso3 = SwingBasso2BarraBassa3 = BarraBassa2SwingBasso2 = SwingBasso1BarraBassa2 = BarraBassa1SwingBasso1 = LLBarraBassa1 = BarIndexENDIF//IF SwingAlto3 THENDrawText("██",BarraAlta3,SwingAlto3 + Offset,Dialog,Bold,15) coloured(0,155,55,255)ENDIFIF SwingAlto2 THENDrawText("██",BarraAlta2,SwingAlto2 + Offset,Dialog,Bold,15) coloured(0,155,55,255)ENDIFIF SwingAlto1 THENDrawText("██",BarraAlta1,SwingAlto1 + Offset,Dialog,Bold,18) coloured(0,255,255,255)ENDIF//IF SwingBasso3 THENDrawText("██",BarraBassa3,SwingBasso3 - Offset,Dialog,Bold,15) coloured(255,0,0,255)ENDIFIF SwingBasso2 THENDrawText("██",BarraBassa2,SwingBasso2 - Offset,Dialog,Bold,15) coloured(255,0,0,255)ENDIFIF SwingBasso1 THENDrawText("██",BarraBassa1,SwingBasso1 - Offset,Dialog,Bold,18) coloured(255,255,0,255)ENDIFRETURN1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on