Acumular variable bb
Forums › ProRealTime foro Español › Soporte ProBuilder › Acumular variable bb
- This topic has 22 replies, 4 voices, and was last updated 2 months ago by Patrickgarridoo.
-
-
07/24/2024 at 3:28 PM #235725
Buenas,
Mira a ver si este te vale.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657//DEFPARAM DrawOnLastBarOnly = true// Parabolic Psarpsar = SAR[0.02, 0.02, 0.2]if close > psar thenr=0g=255b=250elser=255g=0b=250endif// Bandas de Bollingerema20 = ExponentialAverage[20](close)dev = 2Bbup = ema20 + std[20](close) * devBbdown = ema20 - std[20](close) * dev//------------------------------------------------//barsPsarDN=barssince(close>psar)barsPsarUP=barssince(close<psar)//------------------------------------------------//if close<psar thencountdw=1+countdwminLow=min(low,minLow)barsminLow=barssince(minLow=low)countup=0maxhigh=highelsif close>psar thencountdw=0minLow=lowcountup=1+countupmaxhigh=max(high,maxhigh)barsmaxhigh=barssince(high=maxhigh)endifif close>psar and close[1]<psar[1] thenlastbarsPsarDN=barsPsarDN[1]lastbarsMinLow=barsminLow[1]BBdn=Bbdown[lastbarsMinLow+1]PEdn=lowest[lastbarsPsarDN](low)endifif close<psar and close[1]>psar[1] thenlastbarsPsarUP=barsPsarUP[1]lastbarsMaxHigh=barsmaxhigh[1]BollUp=Bbup[lastbarsMaxHigh+1]PEdn=lowest[lastbarsPsarDN](low)endifdrawsegment(barindex,BBdn,barindex[lastbarsMinLow+1],BBdn)style(line,2)drawsegment(barindex,BollUp,barindex[lastbarsMaxHigh+1],BollUp)style(line,2)//------------------------------------------------//return bbUp as "BBUp" coloured("yellow")style(line,2),Bbdown as "BBDown" coloured("yellow")style(line,2), psar as "PSAR" coloured(r,g,b)Lo que hace es almacenar el valor de la banda de bollinger en el punto extremo.
Con esto podrás adaptarlo a tu gusto.1 user thanked author for this post.
07/25/2024 at 9:42 AM #235748Buenas Iván, no lo hace bien. Lo que quiero es que cuando el close deje de ser igual al PE me dibuje una linea en la bbup y en la bbdown y se queden fijas como te pongo en la imagen y no se actualicen hasta que el close vuelva a ser igual al PE o que el precio rebase la parabolica sar. En la imagen te señalo con una flecha la vela que ha realizado el PE y luego una simulación de donde irían las líneas. Te adjunto el código modificado por si te serviría de algo. Un saludo
bbup y bbdown con pe123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119DEFPARAM DrawOnLastBarOnly = true//-------------------------------PE-------------------------------------------------------------------------------------psar = SAR[0.02,0.02,0.2]C1 = CLOSE > PSARC2 = CLOSE < PSARIF C1 AND NOT C1[1] THENCONTADOR = 1TENDENCIAANTERIOR = 1ELSIF C2 AND NOT C2[1] THENCUENTA = 1TENDENCIAANTERIOR = -1ELSIF TENDENCIAANTERIOR = 1 THENCONTADOR = CONTADOR[1] + 1ELSIF TENDENCIAANTERIOR = -1 THENCUENTA = CUENTA[1] + 1ENDIFIF C1 THENIF CONTADOR > 1 THENPE = HIGHEST[CONTADOR](HIGH)ELSEPE = HIGHENDIFENDIFIF C2 THENIF CUENTA > 1 THENPE = LOWEST[CUENTA](LOW)ELSEPE = LOWENDIFENDIFOffset = psar - (average[100,0](range) / 1)IF close <= psar THENOffset = psar + (average[100,0](range) / 1)endifOffset2 = psar - (average[100,0](range) / 2)IF close <= psar THENOffset2 = psar + (average[100,0](range) / 2)endifIF C1 AND NOT C1[1] THENCONTADOR = 1TENDENCIAANTERIOR = 1ELSIF C2 AND NOT C2[1] THENCUENTA = 1TENDENCIAANTERIOR = -1ELSIF TENDENCIAANTERIOR = 1 THENCONTADOR = CONTADOR[1] + 1ELSIF TENDENCIAANTERIOR = -1 THENCUENTA = CUENTA[1] + 1ENDIFIF C1 THENIF CONTADOR > 1 THENPE = HIGHEST[CONTADOR](HIGH)ELSEPE = HIGHENDIFDRAWSEGMENT(barindex+510, PE, barindex[510], PE) COLOURED(0,0,255)STYLE(dottedline1,3)ENDIFIF C2 THENIF CUENTA > 1 THENPE = LOWEST[CUENTA](LOW)ELSEPE = LOWENDIFDRAWSEGMENT(barindex+510, PE, barindex[510], PE) COLOURED(0,0,255) STYLE(dottedline1,3)ENDIF// Bandas de Bollingerema20 = ExponentialAverage[20](close)dev = 2Bbup = ema20 + std[20](close) * devBbdown = ema20 - std[20](close) * dev//------------------------------------------------//barsPsarDN=barssince(close>PE)barsPsarUP=barssince(close<PE)//------------------------------------------------//if close<PE thencountdw=1+countdwminLow=min(low,minLow)barsminLow=barssince(minLow=low)countup=0maxhigh=highelsif close>PE thencountdw=0minLow=lowcountup=1+countupmaxhigh=max(high,maxhigh)barsmaxhigh=barssince(high=maxhigh)endifif close>psar and close[1]<psar[1] thenlastbarsPsarDN=barsPsarDNlastbarsMinLow=barsminLowBBdn=Bbdown[lastbarsMinLow+1]PEdn=lowest[lastbarsPsarDN](low)endifif close<psar and close[1]>psar[1] thenlastbarsPsarUP=barsPsarUP[1]lastbarsMaxHigh=barsmaxhigh[1]BollUp=Bbup[lastbarsMaxHigh+2]PEdn=lowest[lastbarsPsarDN](low)endifdrawsegment(barindex,BBdn,barindex[lastbarsMinLow+1],BBdn)style(line,2)drawsegment(barindex,BollUp,barindex[lastbarsMaxHigh+1],BollUp)style(line,2)//------------------------------------------------//return07/25/2024 at 10:57 AM #235756Ok, entonces sería así:
1234567891011121314151617181920212223242526272829303132333435363738394041424344DEFPARAM DrawOnLastBarOnly = true// Parabolic Psarpsar = SAR[0.02, 0.02, 0.2]if close > psar thenr=0g=255b=250elser=255g=0b=250endif// Bandas de Bollingerema20 = ExponentialAverage[20](close)dev = 2Bbup = ema20 + std[20](close) * devBbdown = ema20 - std[20](close) * dev//------------------------------------------------//if close<psar thencountdw=1+countdwminLow=min(low,minLow)barsminLow=barssince(minLow=low)countup=0maxhigh=highdrawsegment(barindex[barsminLow],Bbup[barsminLow],barindex+10,Bbup[barsminLow])style(line,2)coloured("red")drawsegment(barindex[barsminLow],Bbdown[barsminLow],barindex+10,Bbdown[barsminLow])style(line,2)coloured("red")drawpoint(barindex[barsminLow],minLow,2)coloured("blue")elsif close>psar thencountdw=0minLow=lowcountup=1+countupmaxhigh=max(high,maxhigh)barsmaxhigh=barssince(high=maxhigh)drawsegment(barindex[barsmaxhigh],Bbup[barsmaxhigh],barindex+10,Bbup[barsmaxhigh])style(line,2)coloured("red")drawsegment(barindex[barsmaxhigh],Bbdown[barsmaxhigh],barindex+10,Bbdown[barsmaxhigh])style(line,2)coloured("red")drawpoint(barindex[barsmaxhigh],maxhigh,2)coloured("blue")endif//------------------------------------------------////------------------------------------------------//return bbUp as "BBUp" coloured("yellow")style(dottedline,2),Bbdown as "BBDown" coloured("yellow")style(dottedline,2), psar as "PSAR" coloured(r,g,b)style(point,2)07/25/2024 at 11:30 AM #235760Hola, me gustaría tener un indicador donde dibuje por ejemplo en 4 velas de 15 minutos, lo que supone en una hora, es decir, que la vela de 1 hora envuelva las 4 de 15 minutos, sin relleno, ya que el relleno de la vela de 1 hora son las 4 de 15 minutos.
no sé dónde poner esto en el foro…..
07/26/2024 at 11:18 AM #235804Buenas Iván, si me sale perfecto, pero al cambiarlo en alguna temporalidad me sale el siguiente error: Se espera un campo positivo con barsminLow. Y se me borra el indicador entero cuando sale es error. Como podría solucionarlo. Un saludo
07/30/2024 at 11:03 AM #235929Alguien me puede ayudar con este error. Un saludo
07/31/2024 at 3:55 PM #23598209/17/2024 at 5:00 PM #237722Buenas, despues de probarlo me da error ya que cuando hace un nuevo maximo funciona perfectamente y las lineas de dibujan en la vela actual pero cuando le toca hacer nuevos minimos las lineas se dibujas 1 mas atras que la actual y hace mal el indicador, no se como se podría solucionar. Un saludo
-
AuthorPosts
Find exclusive trading pro-tools on