Modifica Indicatore Divergenze RSI
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Modifica Indicatore Divergenze RSI
- This topic has 4 replies, 2 voices, and was last updated 1 month ago by RubbinRubbin02.
-
-
10/01/2024 at 11:27 AM #238348
Buongiorno, vorrei apportare delle modifiche al mio indicatore di divergenze RSI.
Vorrei fosse possibile cambiare i vari colori che lo compongono e che si possa decidere se mostrare o meno a grafico le divergenze regular e hidden.
Soprattutto vorrei fosse possibile inserire un’allarme in modo tale da ricevere una notifica quando viene rilevata una divergenza.
Grazie in anticipo allego il codice dell’indicatore:
len=14 //RSI Lengthsrc=closelbr=5 //pivot lookback Rightlbl=5 //pivot lookback LeftrangeUpper=60 //Max lookback rangerangeLower=5 //Min lookback rangeplotBull=1plotHiddenBull=1plotBear=1plotHiddenBear=1//———————————————-////—–RSI Calculation————————–////———————————————-//osc=rsi[len](src)midlevel=50obLevel=70osLevel=30colorbetween(obLevel,osLevel,33,150,243,50)//———————————————-////—–Pivots High and Low———————-////———————————————-////—Pivots lowif osc > osc[lbr] and lowest[lbr](osc) > osc[lbr] and osc[lbr] < lowest[lbl](osc)[lbr+1] then$ply[z+1] = osc[lbr]$plx[z+1] = barindex[lbr]$pricel[z+1] = low[lbr]drawpoint(barindex[lbr],osc[lbr],2)coloured(“red”,80)z = z + 1endif//—Pivots highif osc < osc[lbr] and highest[lbr](osc)<osc[lbr] and osc[lbr]>highest[lbl](osc)[lbr+1] then$phy[t+1]=osc[lbr]$phx[t+1]=barindex[lbr]$priceH[t+1]=high[lbr]drawpoint(barindex[lbr],osc[lbr],2)coloured(“blue”,80)t=t+1endif//—Pivot detectionif z<>z[1] thenplFound=1elsif t<>t[1] thenphFound=1elseplFound=0phFound=0endifbarsPL=barssince(plFound[1])inrangePL=rangelower<=barsPL and barsPL<=rangeupperbarsPH=barssince(pHFound[1])inrangePH=rangelower<=barsPH and barsPH<=rangeupper//———————————————-////—–Regular Bullish————————–////———————————————-//oscHL=osc[lbr]>$ply[max(0,z–1)] and inrangePLpriceLL=low[lbr]<$pricel[max(0,z–1)]bullCondAlert=priceLL and oscHL and plFoundbullCond=plotBull and bullCondalertif plFound and bullCond thendrawsegment($plx[max(0,z–1)],$ply[max(0,z–1)],$plx[z],$ply[z])coloured(“green”)style(line,2)endif//———————————————-////—–Hidden Bullish—————————////———————————————-//oscLL=osc[lbr]<$ply[max(0,z–1)] and inrangePLpriceHL=low[lbr]>$pricel[max(0,z–1)]hiddenBullCondAlert=priceHL and oscLL and plFoundhiddenBullCond=hiddenBullCondAlert and plotHiddenBullif plFound and hiddenBullCond thendrawsegment($plx[max(0,z–1)],$ply[max(0,z–1)],$plx[z],$ply[z])coloured(“green”,80)style(line,2)endif//———————————————-////—–Regular Bearish————————–////———————————————-//oscLH=osc[lbr]<$phy[max(0,t–1)] and inrangePHpriceHH=high[lbr]>$priceH[max(0,t–1)]bearCondAlert=priceHH and oscLH and pHFoundbearCond=plotBear and bearCondalertif pHFound and bearCond thendrawsegment($phx[max(0,t–1)],$phy[max(0,t–1)],$phx[t],$phy[t])coloured(“red”)style(line,2)endif//———————————————-////—–Hidden Bearish—————————////———————————————-//oscHH=osc[lbr]>$phy[max(0,t–1)] and inrangePHpriceLH=high[lbr]<$priceh[max(0,t–1)]hiddenBearCondAlert=priceLH and oscHH and phFoundhiddenBearCond=hiddenBearCondAlert and plotHiddenBearif pHFound and hiddenBearCond thendrawsegment($phx[max(0,t–1)],$phy[max(0,t–1)],$phx[t],$phy[t])coloured(“red”,80)style(line,2)endif//———————————————-//return osc as “RSI”coloured(“blue”)style(line,2), midlevel as “MidLevel”coloured(“grey”)style(dottedline,1),obLevel as “obLevel”coloured(“grey”)style(dottedline,1),osLevel as “osLevel”coloured(“grey”)style(dottedline,1)10/01/2024 at 4:29 PM #238363Ciao. Nelle prime righe di codice hai tutte le variabili per configurare l'indicatore. All'interno di queste variabili hai:
1234plotBull=1plotHiddenBull=1plotBear=1plotHiddenBear=1Un valore pari a 1 fa sì che le linee vengano visualizzate, mentre la modifica del valore su 0 le farà nascondere. Nell'ultima riga del codice invece vengono configurate tutte le linee (colore e stile). E' sufficiente cancellare le specifiche e poi sarà possibile modificarle dalla finestra di configurazione.
1restituisce osc come "RSI", midlevel come "MidLevel", obLevel come "obLevel", osLevel come "osLevel"1 user thanked author for this post.
10/01/2024 at 4:53 PM #238368Ok grazie mille, mentre invece per gli allarmi come faccio? Se trascino un allarme sull’indicatore non me lo fa settare in base alla presenza o meno di una divergenza
10/02/2024 at 8:54 AM #238390Mi viene in mente di creare un nuovo indicatore proprio come il precedente ma invece di disegnare l'RSI e le divergenze, disegna semplicemente i segnali di divergenza. Vedi schermata.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112//----------------------------------------------////PRC_RSI Divergence Indicator//version = 0//24.09.24//Iván González @ www.prorealcode.com//Sharing ProRealTime knowledge//----------------------------------------------////-----Inputs-----------------------------------////----------------------------------------------//len=14 //RSI Lengthsrc=closelbr=5 //pivot lookback Rightlbl=5 //pivot lookback LeftrangeUpper=60 //Max lookback rangerangeLower=5 //Min lookback rangeplotBull=1plotHiddenBull=1plotBear=1plotHiddenBear=1//----------------------------------------------////-----RSI Calculation--------------------------////----------------------------------------------//osc=rsi[len](src)midlevel=50obLevel=70osLevel=30//----------------------------------------------////-----Pivots High and Low----------------------////----------------------------------------------////---Pivots lowif osc > osc[lbr] and lowest[lbr](osc) > osc[lbr] and osc[lbr] < lowest[lbl](osc)[lbr+1] then$ply[z+1] = osc[lbr]$plx[z+1] = barindex[lbr]$pricel[z+1] = low[lbr]z = z + 1endif//---Pivots highif osc < osc[lbr] and highest[lbr](osc)<osc[lbr] and osc[lbr]>highest[lbl](osc)[lbr+1] then$phy[t+1]=osc[lbr]$phx[t+1]=barindex[lbr]$priceH[t+1]=high[lbr]t=t+1endif//---Pivot detectionif z<>z[1] thenplFound=1elsif t<>t[1] thenphFound=1elseplFound=0phFound=0endifbarsPL=barssince(plFound[1])inrangePL=rangelower<=barsPL and barsPL<=rangeupperbarsPH=barssince(pHFound[1])inrangePH=rangelower<=barsPH and barsPH<=rangeupper//----------------------------------------------////-----Regular Bullish--------------------------////----------------------------------------------//oscHL=osc[lbr]>$ply[max(0,z-1)] and inrangePLpriceLL=low[lbr]<$pricel[max(0,z-1)]bullCondAlert=priceLL and oscHL and plFoundbullCond=plotBull and bullCondalertif plFound and bullCond thenRegularBullishFound=1elseRegularBullishFound=0endif//----------------------------------------------////-----Hidden Bullish---------------------------////----------------------------------------------//oscLL=osc[lbr]<$ply[max(0,z-1)] and inrangePLpriceHL=low[lbr]>$pricel[max(0,z-1)]hiddenBullCondAlert=priceHL and oscLL and plFoundhiddenBullCond=hiddenBullCondAlert and plotHiddenBullif plFound and hiddenBullCond thenhiddenBullishFound=1elsehiddenBullishFound=0endif//----------------------------------------------////-----Regular Bearish--------------------------////----------------------------------------------//oscLH=osc[lbr]<$phy[max(0,t-1)] and inrangePHpriceHH=high[lbr]>$priceH[max(0,t-1)]bearCondAlert=priceHH and oscLH and pHFoundbearCond=plotBear and bearCondalertif pHFound and bearCond thenRegularBearishFound=1elseRegularBearishFound=0endif//----------------------------------------------////-----Hidden Bearish---------------------------////----------------------------------------------//oscHH=osc[lbr]>$phy[max(0,t-1)] and inrangePHpriceLH=high[lbr]<$priceh[max(0,t-1)]hiddenBearCondAlert=priceLH and oscHH and phFoundhiddenBearCond=hiddenBearCondAlert and plotHiddenBearif pHFound and hiddenBearCond thenhiddenBearishFound=1elsehiddenBearishFound=0endif//----------------------------------------------//return RegularBullishFound as "RegularBullishFound" coloured("green"),hiddenBullishFound coloured("blue"),RegularBearishFound coloured("red"),hiddenBearishFound coloured("orange")10/02/2024 at 10:41 AM #238397Grazie mille!
C’è solo un problema, per via della natura della logica delle divergenze queste vengono confermate solo alcune candele dopo essere effettivamente rilevate quindi ricevo il segnale in ritardo per dare il tempo al codice di identificare massimi e minimi relativi.
Questo è un problema, vorrei ricevere il segnale nello stesso momento in cui viene rilevato senza aspettare la conferma, si può fare?
Ti invio uno screen del problema dove comparo il codice di prima che plotta le divergenze sull’RSI e l’ultima versione che mi hai mandato tu dell’indicatore che segna soltanto i segnali di divergenza così puoi vedere bene quello che intendo
Grazie ancora e buona giornata
-
AuthorPosts
Find exclusive trading pro-tools on