COLORE INDICATORE CONDIZIONATO
Forums › ProRealTime forum Italiano › Supporto ProBuilder › COLORE INDICATORE CONDIZIONATO
- This topic has 17 replies, 3 voices, and was last updated 8 months ago by PaFM.
-
-
02/02/2024 at 3:12 AM #227287
Buonasera (Buongiorno),
mi stavo chiedendo se fosse possibile colorare le bande di bollinger di verde o di rosso, alternativamente, in modo condizionato, in modo simile a quanto avviene già (visivamente) per l’indicatore supertrend, ma senza nascondere del tutto la banda che è stata violata dai prezzi; ovvero, va colorata di un verde acceso la banda inferiore quando i prezzi superano in chiusura la banda superiore (a 1 deviazione standard) che a questo punto va colorata di un verde più tenue e tratteggiato medio; tutto ciò deve rimanere così fino a quando non si inverte totalmente la tendenza e i prezzi vanno a chiudere sotto la banda inferiore (a 1 deviazione standard) e a tal punto la banda superiore si deve colorare di un rosso acceso mentre quella inferiore di un rosso più tenue tratteggiato medio, fino a quando i prezzi non vanno a chiudere di nuovo sopra la banda superiore di bollinger e così via … la media centrale (a 12 periodi) deve rimanere sempre invisibile …
Grazie mille in anticipo per il prezioso aiuto che mi vorrete dare
P
XXXXXXXXXXXXXXXXX
02/02/2024 at 11:15 AM #227303Per favore non inserire informazioni personali nei post (email, telefonoi, indirizzo ecc…).
Grazie 🙂
Quanto prima te lo farò.
02/03/2024 at 2:50 AM #227348Grazie mille in anticipo, per quanto riguarda i colori non è necessario che i due verdi e i due rossi delle due bande siano diversi tra loro, basta che uno sia tratteggiato medio (quello della banda violata dai prezzi) e l’altro linea continua, grazie.
P
02/07/2024 at 5:12 PM #227591La tratteggiatura non è possibile variarla di volta in volta, meglio usare colori più accesi o più tenui.
Per difetto quando il prezzo è all’interno delle bande il colore l’ho fatto celeste (cyan). Qui c’è l’elenco dei colori, in questo caso devi utilizzare quello numerico nel formato RGB (Red, Green,Blue) e T (Trasparenza) che può andare da 0 a 255, dove 0=invisibile https://www.prorealcode.com/documentation/coloured/.
12345678910111213141516171819202122232425262728293031323334353637383940BBper = 20 //20 periodi BBBBdev = 1.0 //1.0 deviazione BB// VERDE defaultRs = 0Gs = 191Bs = 255Ts = 255//Ri = 0Gi = 191Bi = 255Ti = 255//BBavg = average[BBper,0](close) //BB linea MedianaBandaSup = BBavg + ((std[BBper](close)) * BBdev) //BB banda SuperioreBandaInf = BBavg - ((std[BBper](close)) * BBdev) //BB banda Inferiore//IF close > BandaSup THENRi = 173 //VERDE accesoGi = 255Bi = 47Ti = 255//Rs = 46 //VERDE tenueGs = 139Bs = 87Ts = 100ENDIFIF close < BandaInf THENRs = 255 //ROSSO accesoGs = 0Bs = 0Ts = 255//Ri = 178 //ROSSO tenueGi = 34Bi = 34Ti = 100ENDIFreturn BandaSup AS "Banda Superiore" style(line,3) coloured(Rs,Gs,Bs,Ts),BandaInf AS "Banda Inferiore" style(line,3) coloured(Ri,Gi,Bi,Ti)1 user thanked author for this post.
02/09/2024 at 2:22 AM #22769702/11/2024 at 5:22 AM #227900Ho testato il tuo lavoro Roberto, mi dispiace dirlo ma è lontano anni luce da quello che desideravo.
A me serviva, come ti avevo scritto, un indicatore simile al supertrend ma applicato alle logiche delle bollinger bands, ovvero con la deviazione standard come base di calcolo. Ho passato delle notti intere a guardare bene nella library e alla fine dopo estenuanti ricerche ho trovato qualcosa di molto simile a quello che desideravo io; ho studiato un po’ il prorealcode e mi sono messo a modificarlo e alla fine il risultato è arrivato, ho il mio indicatore perfettamente funzionante …
Per chi fosse interessato si tratta di un indicatore di tendenza basato su una meda mobile semplice a 13 periodi con una sola bollinger a 1 deviazione std che funge alternativamente da supporto o resistenza, inserisco qui sotto il codice. Ovviamente da una marea di falsi segnali (come il supertrend) ma se si usa in modalità multitime-frame e avendo l’accortezza di lavorare solo sui pullback funziona benissimo, sia per il medio e lungo termine, sia per il day trading sia per lo scalping!!!
Un saluto cordiale al forum
PBollinger Trend123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960// --- settingsSignalPeriod = 13ArrowPeriod = 1// --- end of settingsbbup = average[signalperiod]+std[signalperiod]*arrowperiodbbdn = average[signalperiod]-std[signalperiod]*arrowperiodsignal = average[signalperiod]if ts=0 and signalpos=0 thenif close crosses over bbup thents=bbdnsignalpos=signaltrend=1elsif close crosses under bbdn thents=bbupsignalneg=signaltrend=-1endifendifif trend=1 then// ts=max(ts,bbdn)ts=bbdnsignalpos=signalelsif trend=-1 then// ts=min(ts,bbup)ts=bbupsignalneg=signalendifif trend=1 and close crosses under ts thentrend=-1signalneg=signalts=bbupr=255g=0drawarrowdown(barindex,ts) coloured("red")// drawsegment(startbar,startts,barindex,ts) style(dottedline2) coloured("blue")startbar=barindexstartts=tsendifif trend=-1 and close crosses over ts thentrend=1signalpos=signalts=bbdnr=0g=255drawarrowup(barindex,ts) coloured("lime")// drawsegment(startbar,startts,barindex,ts) style(dottedline2) coloured("blue")startbar=barindexstartts=tsendifreturn ts coloured(r,g,50) style(line,1), signal coloured (r,g,50) style(dottedline,1)02/17/2024 at 4:47 AM #228321Ciao,
mi chiedevo se fosse possibile a determinate condizioni assegnare al trend valori diversi da 1 o -1 in modo da creare un indicatore vero e proprio (separato dal grafico) in modo da associarvi un allarme.
In parole povere, con un trend positivo (=1), se il prezzo fa un minimo sotto il ts (che è la bollinger down) ma chiude sopra il ts stesso (quindi non cambia il trend) ed inoltre chiude sopra la chiusura della barra precedente (in real time tick by tick), allora il trend assumerebbe un valore 2 invece che 1 e verrebbe anche disegnata un freccia verde sul grafico principale, similmente a quando cambia il trend in positivo. La situazione speculare sarebbe quella in caso di trend negativo (=-1), con una candela successiva che fa un massimo sopra il ts (che è la bollinger up), chiusura sotto il ts stesso e chiusura sotto la chiusura della barra precedente (in real time tick by tick); in tal caso il trend assumerebbe un valore pari a -2 invece che -1 e verrebbe anche disegnata un freccia rossa sul grafico principale.
Ho provato a mettere giù qualche riga di codice aggiuntivo ma non cambia più il trend correttamente come prima da verde a rosso e viceversa … non so come risolvere, mi riuscite ad aiutare per favore?
Grazie mille in anticipoCordialmente
P123456789101112131415161718192021if trend=1 and close[1]>ts and low<ts and close>ts and close>close[1] thentrend=2signalpos=signalts=bbdnr=0g=255drawarrowup(barindex,ts) coloured("lime")startbar=barindexstartts=tsendifif trend=-1 and close[1]<ts and high>ts and close<ts and close<close[1] thentrend=-2signalneg=signalts=bbupr=255g=0drawarrowdown(barindex,ts) coloured("red")startbar=barindexstartts=tsendif02/17/2024 at 5:09 AM #228322In pratica quando avviene un setup come quello visibile nell’immagine con test e tenuta del ts (bollinger down, linea verde continua) allora il trend assumerebbe un valore pari a 2 e si disegnerebbe una freccia verde alla base della candela. In aggiunta dovrebbe visualizzarsi in finestra separata il valore del ts che passa da 1 a 2.
Grazie dell’attenzioneCordialmente
P02/21/2024 at 6:26 PM #228519Puoi aggiungere queste righe proprio prima dell’ultima (quella con RETURN):
12345678910111213//----------------------------------------------------------------IF Trend = 1 THENif low < ts and close > ts and close > close[1] thenTrend = 2drawarrowup(barindex,ts) coloured("lime")endifELSIF Trend = -1 THENif high > ts and close < ts and close < close[1] thenTrend = -2drawarrowdown(barindex,ts) coloured("red")endifENDIF//----------------------------------------------------------------però non funziona correttamente, perché una volta che gli viene assegnato 2 o -2, il resto del codice non riconosce questi valori (quindi va variata laprima parte del codice), inoltre quand’è che 2 e -2 devono ritornare a 1 e -1?
02/27/2024 at 1:16 AM #228789Grazie del feedback Roberto,
effettivamente ho inserito il codice e da lo stresso problema di quello che avevo provato ad inserire io, ovvero non cambia più il trend da positivo a negativo e viceversa. In pratica, con questa variante che vorrei introdurre, il trend passerebbe da +1 a +2 per poi tornare direttamente a -1 (in caso di inversione) senza poter più passare da +1. Viceversa, con il passaggio da -1 a -2 il trend tornerebbe poi direttamente a +1 senza poter passare da -1. Forse va inserito nella parte iniziale del codice >0 o <0 invece che =1 o =-1 ?02/27/2024 at 5:49 PM #228860Puoi postare l’ultimo codice funzionante che hai provato (anche se non fa esattamente quello che vuoi), perché altrimenti tra i vari aggiornamenti parziali non so quale provare.
02/28/2024 at 1:59 AM #228911Certo Roberto, qui sotto trovi il codice funzionante con trend che passa da 1 a -1 e viceversa ….. a proposito, un problema che da questo codice, ma non del tutto importante, è che al primo trend che passa da 0 a 1 oppure a -1 non si colora niente, anzi si creano delle tracciature molto scure sulla bollinger che si dovrebbe colorare che coprono tutto ….
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960// --- settingsSignalPeriod = 13ArrowPeriod = 1// --- end of settingsbbup = average[signalperiod]+std[signalperiod]*arrowperiodbbdn = average[signalperiod]-std[signalperiod]*arrowperiodsignal = average[signalperiod]if ts=0 and signalpos=0 thenif close crosses over bbup thents=bbdnsignalpos=signaltrend=1elsif close crosses under bbdn thents=bbupsignalneg=signaltrend=-1endifendifif trend=1 then// ts=max(ts,bbdn)ts=bbdnsignalpos=signalelsif trend=-1 then// ts=min(ts,bbup)ts=bbupsignalneg=signalendifif trend=1 and close crosses under ts thentrend=-1signalneg=signalts=bbupr=255g=0drawarrowdown(barindex,ts) coloured("red")// drawsegment(startbar,startts,barindex,ts) style(dottedline2) coloured("blue")startbar=barindexstartts=tsendifif trend=-1 and close crosses over ts thentrend=1signalpos=signalts=bbdnr=0g=255drawarrowup(barindex,ts) coloured("lime")// drawsegment(startbar,startts,barindex,ts) style(dottedline2) coloured("blue")startbar=barindexstartts=tsendifreturn ts coloured(r,g,50) style(line,1), signal coloured (r,g,50) style(dottedline,1)03/05/2024 at 10:55 AM #229228FM, è questo quello che stai cercando per quanto riguarda le bande di colore.
Se necessario, è possibile nascondere la riga ‘ts’ dalla finestra di configurazione.
Rimuovi anche tutte le zone di colore predefinite che interferiscono con i colori della banda, una può essere impostata automaticamente.
Inoltre, in origine hai citato un periodo di 12, ma il codice è stato modificato in 13.
Potresti spiegare come stai utilizzando i segnali rispetto alla direzione del trading e ai punti di ingresso, stop e target proposti.
druby.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103// Ref:// Bollinger Bands --> https://www.britannica.com/money/bollinger-bands-indicator// https://www.prorealcode.com/topic/colore-indicatore-condizionato/// constantsperiod = 13deviation = 1up = 1down = -1begin = 1null = 0// (i) indicatorsiSTD = deviation * STD[period](close)iSMA = Average[period,0](close)// (c) conditionscUpperBand = iSMA + iSTDcMiddleBand = iSMAcLowerBand = iSMA - iSTD// delay startif begin = 1 and barindex < period then // hold off till enough bar presentts = undefined // removes ts tangent line from 0 til real value availableelsebegin = 0endif// logic operation// setup block --> When 'begin' = 0, executes next block.// Since 'trend' default = 0, being set to 1 or -1 will// allow the 'following' logic code blocks to be executed// Bollinger Logic -----------// initial, set trendif begin = null thenif close crosses over cUpperband thentrend = upelsif close crosses under cLowerBand thentrend = downendifendif// following from first time after trend set!// change of trend, up --> downif trend = up and close crosses under cLowerBand thentrend = downendif// change of trend, down --> upif trend = down and close crosses over cUpperBand thentrend = upendif// set 'ts' values to appropriate band threshold levelif trend = up thents = cLowerBandelsif trend = down thents = cUpperBandendif// drawing ==============================================================================os = 5 // drawing offset// arrow and set colorsif trend = down and trend[1] = up thendrawarrowdown(barindex,ts+os) coloured("red",255)elsif trend = up and trend[1] = down thendrawarrowup(barindex,ts-os) coloured("lime",255)endif// color settingsif trend = down thenr = 255g = 0a1 = 90 // upperBand reda2 = 60 // lowerBand reda3 = 0a4 = 0elsif trend = up thenr = 0g = 255a1 = 0a2 = 0a3 = 50 // upperBand greena4 = 90 // bottomBand greenendif// band colorscolorbetween(cMiddleBand,cUpperBand, r,g,0,a1) // upperBand red - trend downcolorbetween(cMiddleBand,cLowerBand, r,g,0,a2) // lowerBand red - trend downcolorbetween(cMiddleBand,cUpperBand, r,g,0,a3) // upperBand green - trend upcolorbetween(cMiddleBand,cLowerBand, r,g,0,a4) // lowerBand green - trend upreturn ts coloured(r,g,50) style(line,1) as "ts", cMiddleBand coloured(r,g,50) style(dottedline,1)as "signal"2 users thanked author for this post.
03/06/2024 at 2:54 AM #229292Druby,
grazie della colorazione che gli hai dato, è interessante e da un buon colpo d’occhio, ed hai anche ovviato al problema che mi dava in precedenza, lavoro molto bello, complimenti!
Quest’indicatore io lo utilizzo su molteplici timeframe contemporaneamente, in modo da monitorare tutti i possibili trend presenti su un indice oppure su un titolo: il funzionamento è molto simile al supertrend: dopo un cambio di trend, prima di effettuare l’entrata a mercato, attendo però un ritorno dei prezzi o sulla media tratteggiata o sulla bollinger opposta; in caso di tenuta di uno dei due di questi indicatori di trend, entro a mercato solo quando il prezzo supera il massimo della candela precedente (in caso di long), o quando il prezzo scende sotto il minimo della candela precedente (in caso di short).
Sarebbe molto bello se si riuscisse a migliorare ulteriormente l’indicatore dando un valore di +2 0 -2 al verificarsi della suddetta situazione di pullback e ripartenza del trend, avendo magari un indicatore separato con alert collegato.
Un saluto, complimenti ancora per il lavoro!PaFM
03/07/2024 at 3:05 AM #229359Chiedo aiuto, ho voluto aggiungere la colorazione anche alla 2° e 3° deviazione standard, ma credo di aver fatto confusione … vorrei che si colorassero di verde progressivo le 4 fasce rialziste quando il trend è up, e in rosso progressivo le quattro fasce ribassiste quando il trend è down, ma le colorazioni al cambio di trend proseguono e non si alternano correttamente
Codice modificato123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101// constantsperiod = 13deviation1 = 1deviation2 = 2deviation3 = 3up = 1down = -1begin = 1null = 0// (i) indicatorsiSTD1 = deviation1 * STD[period](close)iSTD2 = deviation2 * STD[period](close)iSTD3 = deviation3 * STD[period](close)iSMA = Average[period,0](close)// (c) conditionscUpperBand1 = iSMA + iSTD1cUpperBand2 = iSMA + iSTD2cUpperBand3 = iSMA + iSTD3cMiddleBand = iSMAcLowerBand1 = iSMA - iSTD1cLowerBand2 = iSMA - iSTD2cLowerBand3 = iSMA - iSTD3// delay startif begin = 1 and barindex < period then // hold off till enough bar presentts = undefined // removes ts tangent line from 0 til real value availableelsebegin = 0endif// logic operation// setup block --> When 'begin' = 0, executes next block.// Since 'trend' default = 0, being set to 1 or -1 will// allow the 'following' logic code blocks to be executed// Bollinger Logic -----------// initial, set trendif begin = null thenif close crosses over cUpperband1 thentrend = upelsif close crosses under cLowerBand1 thentrend = downendifendif// following from first time after trend set!// change of trend, up --> downif trend = up and close crosses under cLowerBand1 thentrend = downendif// change of trend, down --> upif trend = down and close crosses over cUpperBand1 thentrend = upendif// set 'ts' values to appropriate band threshold levelif trend = up thents = cLowerBand1elsif trend = down thents = cUpperBand1endif// drawing ==============================================================================// color settingsif trend = down thenr = 255g = 0colorbetween(cMiddleBand,cUpperBand1, r,g,0,30)colorbetween(cMiddleBand,cLowerBand1, r,g,0,50)colorbetween(cLowerBand1,cLowerBand2, r,g,0,70)colorbetween(cLowerBand2,cLowerBand3, r,g,0,90)colorbetween(cUpperBand1,cUpperBand2, 0,0,0,00)colorbetween(cUpperBand2,cUpperBand3, 0,0,0,00)elsif trend = up thenr = 0g = 255colorbetween(cMiddleBand,cUpperBand1, r,g,0,50)colorbetween(cMiddleBand,cLowerBand1, r,g,0,30)colorbetween(cUpperBand1,cUpperBand2, r,g,0,70)colorbetween(cUpperBand2,cUpperBand3, r,g,0,90)colorbetween(cLowerBand1,cLowerBand2, 0,0,0,00)colorbetween(cLowerBand2,cLowerBand3, 0,0,0,00)endif// band colorsreturn ts coloured(r,g,50) style(line,1) as "dev", cMiddleBand coloured(r,g,50) style(dottedline,1)as "sma" -
AuthorPosts
Find exclusive trading pro-tools on