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.
-
-
06/22/2024 at 10:26 AM #234213
Me gustaria saber como puedo crear un indicador que cuando ema3 cruce ema9 me acumule la variable de en que precio se encuentran las banda up y down en ese momento y se me dibuje en el grafico esos precio hasta que el ema3 vuelva a cruzarse con ema9. Un saludo
06/22/2024 at 10:59 AM #234217¿Puede estar bien?
12345678src = customcloseEma3 = average[3,1](src)Ema9 = average[9,1](src)ONCE Crossover = srcIF (Ema3 CROSSES OVER Ema9) OR (Ema3 CROSSES UNDER Ema9) THENCrossover = srcENDIFreturn Ema3 AS "Ema3" style(line,2) coloured("Red"),Ema9 as "Ema9" style(line,2) coloured("Blue"),Crossover AS "Crossover" style(line,4) coloured("fuchsia")06/24/2024 at 7:09 AM #234273No, quiero que cuando ema3 cruce a ema9 me diga en que precio estan las bandas del bollinger y hasta que no vuelvan a crucar ema3 con ema9 se me quede guardado el precio de las bandas del bollinger de cuando hizo el cruce ema9 con ema9, tiene que ser como un contado
06/24/2024 at 11:49 AM #234281Hecho:
123456789101112src = customcloseEma3 = average[3,1](src)Ema9 = average[9,1](src)bUP = BollingerUp[20](src)bDN = BollingerDOWN[20](src)ONCE UpperPrice = srcONCE LowerPrice = srcIF (Ema3 CROSSES OVER Ema9) OR (Ema3 CROSSES UNDER Ema9) THENUpperPrice = bUPLowerPrice = bDNENDIFreturn UpperPrice AS "UpperBB" style(DottedLine,2) coloured("Fuchsia"),LowerPrice AS "LowerBB" style(DottedLine,2) coloured("Fuchsia"),Ema3 AS "Ema3" style(line,1) coloured("Red"),Ema9 as "Ema9" style(line,1) coloured("Blue")06/24/2024 at 4:39 PM #234304Estoy intentando hacerlo con el PE y las bbup y bbdown cuando el precio deje de ser igual al PE me diga en que precios estaban las bandas hasta que el precio vuelva a estar igual al pe y sea cero adjunto para ver si me puedes ayudar. Un saludo
06/24/2024 at 5:34 PM #234311No entiendo qué es exactamente lo que quieres acumular y cómo.
Hay dos bandas de Bollinger, superior e inferior, ¿quieres agregarlas?
¿Puede dar un ejemplo?06/25/2024 at 7:21 AM #234320si claro, lo que quiero lograr con este indicador es que cuando el precio deje de ser igual al PE me diga en que precio estaban las bandas del bollinger en ese momento y se me quede ese numero hasta que el precio vuelva a ser igual al PE y ahi me ponga 0 y asi continuamente. Te adjunto una imagen y código para que lo entiendas mejor. En la imagen el precio dejo de ser igual al PE hace 5 velas y me dice el precio de las bandas hace 5 velas y se mantiene los numeros hasta que vuelva a ser el precio igual al PE.
PE BBUP Y BBDOWN123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869DEFPARAM DrawOnLastBarOnly = true// PUNTO EXTREMO AZULpsar = SAR[0.02, 0.02, 0.2]C1 = CLOSE > psarC2 = CLOSE < psar// Variables para controlar la tendenciaIF 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] + 1ENDIF// Calcular el Punto Extremo (PE)IF C1 THENIF CONTADOR > 1 THENPE = HIGHEST[CONTADOR](HIGH)ELSEPE = HIGHENDIFDRAWSEGMENT(barindex + 510, PE, barindex[510], PE) COLOURED(0, 0, 255) STYLE(dottedline1, 3)DRAWTEXT("sar", barindex, PE, Dialog, Bold, 20) COLOURED(0, 0, 255)ENDIFIF C2 THENIF CUENTA > 1 THENPE = LOWEST[CUENTA](LOW)ELSEPE = LOWENDIFDRAWSEGMENT(barindex + 510, PE, barindex[510], PE) COLOURED(0, 0, 255) STYLE(dottedline1, 3)DRAWTEXT("sar", barindex, PE, Dialog, Bold, 20) COLOURED(0, 0, 255)ENDIF// Bandas de Bollingerema20 = ExponentialAverage[20](close)dev = 2Bbup = ema20 + std[20](close) * devBbdown = ema20 - std[20](close) * dev// Variables para guardar los valores iniciales de las Bandas de Bollinger cuando CLOSE deja de estar en el PEonce BollUpInitial = 0once BollDownInitial = 0initialized = 0 // Usaremos 1 para inicializado y 0 para no inicializado// Detectar el momento en que CLOSE deja de ser igual al PE y guardar los valores iniciales de las Bandas de BollingerIF CLOSE <> PE THENIF initialized = 0 THENBollUpInitial = BbupBollDownInitial = Bbdowninitialized = 1DRAWTEXT("#BollUpInitial#", barindex, BollUpInitial) COLOURED(255, 0, 0)DRAWTEXT("#BollDownInitial#", barindex, BollDownInitial) COLOURED(0, 0, 255)ENDIFENDIF// Reiniciar cuando CLOSE vuelva a ser igual al PEIF CLOSE = PE THENinitialized = 0ENDIFRETURN PE AS "PUNTO EXTREMO azul y verde" COLOURED("BLUE", 0)06/25/2024 at 2:38 PM #234344He visto el código y tu explicación, pero ¿qué quieres acumular y cuáles son ema3 y ema9 a los que te refieres en tu publicación inicial?
06/25/2024 at 3:18 PM #234347hola, ema3 y 3ma9 los he borrado, quiero con la explicacion que te he dado acumular la variable en el precio que esta bbup y bbdown cuando el precio deja de estar igual al PE y si es igual al PE que ponga 0. Un saludo
06/26/2024 at 4:24 PM #234381¿Acumular las dos bandas? ¿Cuánto tiempo? Si se acumulan indefinidamente, ¡se obtienen valores de miles de millones!
Lo mejor es que dejes el indicador en paz por el momento y me expliques en detalle lo que quieres hacer.06/28/2024 at 8:58 AM #234463creo que no me entiendes, empezamos de nuevo para que lo entiendas, el indicador tiene que hacer que cuando el precio sea igual al PE acumule 0 en la banda up y banda down y cuando el precio ya no sea igual al PE me diga en que precio estan en ese momento la banda up y banda down hasta que el precio vuelva a tocar el PE simplemente
06/28/2024 at 10:38 AM #234472Lo edité como me pediste.
Cuando CLOSE = PE restablece las dos variables- AcumularENCIMA
- AcumularDEBAJO
en caso contrario los acumula (y los imprime como se puede ver en las dos fotos adjuntas).
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889//src = customclose//Ema3 = average[3,1](src)//Ema9 = average[9,1](src)//bUP = BollingerUp[20](src)//bDN = BollingerDOWN[20](src)//ONCE UpperPrice = src//ONCE LowerPrice = src//IF (Ema3 CROSSES OVER Ema9) OR (Ema3 CROSSES UNDER Ema9) THEN//UpperPrice = bUP//LowerPrice = bDN//ENDIF//return UpperPrice AS "UpperBB" style(DottedLine,2) coloured("Fuchsia"),LowerPrice AS "LowerBB" style(DottedLine,2) coloured("Fuchsia"),Ema3 AS "Ema3" style(line,1) coloured("Red"),Ema9 as "Ema9" style(line,1) coloured("Blue")DEFPARAM DrawOnLastBarOnly = trueONCE AcumularENCIMA = 0ONCE AcumularDEBAJO = 0// PUNTO EXTREMO AZULpsar = SAR[0.02, 0.02, 0.2]C1 = CLOSE > psarC2 = CLOSE < psar// Variables para controlar la tendenciaIF 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] + 1ENDIF// Calcular el Punto Extremo (PE)IF C1 THENIF CONTADOR > 1 THENPE = HIGHEST[CONTADOR](HIGH)ELSEPE = HIGHENDIFDRAWSEGMENT(barindex + 510, PE, barindex[510], PE) COLOURED(0, 0, 255) STYLE(dottedline1, 3)DRAWTEXT("sar", barindex, PE, Dialog, Bold, 20) COLOURED(0, 0, 255)ENDIFIF C2 THENIF CUENTA > 1 THENPE = LOWEST[CUENTA](LOW)ELSEPE = LOWENDIFDRAWSEGMENT(barindex + 510, PE, barindex[510], PE) COLOURED(0, 0, 255) STYLE(dottedline1, 3)DRAWTEXT("sar", barindex, PE, Dialog, Bold, 20) COLOURED(0, 0, 255)ENDIF// Bandas de Bollingerema20 = ExponentialAverage[20](close)dev = 2Bbup = ema20 + std[20](close) * devBbdown = ema20 - std[20](close) * dev// Variables para guardar los valores iniciales de las Bandas de Bollinger cuando CLOSE deja de estar en el PEonce BollUpInitial = 0once BollDownInitial = 0initialized = 0 // Usaremos 1 para inicializado y 0 para no inicializado// Detectar el momento en que CLOSE deja de ser igual al PE y guardar los valores iniciales de las Bandas de BollingerIF CLOSE <> PE THENIF initialized = 0 THENBollUpInitial = BbupBollDownInitial = Bbdowninitialized = 1DRAWTEXT("#BollUpInitial#", barindex, BollUpInitial) COLOURED(255, 0, 0)DRAWTEXT("#BollDownInitial#", barindex, BollDownInitial) COLOURED(0, 0, 255)ENDIFENDIF// Reiniciar cuando CLOSE vuelva a ser igual al PEIF CLOSE = PE THENinitialized = 0AcumularENCIMA = 0AcumularDEBAJO = 0ELSEAcumularENCIMA = AcumularENCIMA + BbupAcumularDEBAJO = AcumularDEBAJO + Bbdowndrawtext("Upper BB #AcumularENCIMA#", barindex+3,BollUpInitial*1.002)drawtext("Lower BB #AcumularDEBAJO#",barindex+3,BollDownInitial*0.998)ENDIFRETURN PE AS "PUNTO EXTREMO azul y verde" COLOURED("BLUE", 0)07/02/2024 at 9:02 AM #234682Lo he probado y el indicador esta mal ya que como te indico en la imagen, tendria que señalar el precio de las bandas de los circulos rojos ya que ha sido donde ha tocado el PE por ultima vez el precio y en cambio da un numero que no es nada. Un saludo
07/02/2024 at 10:05 AM #234690Debido a que usó CLOSE en su código, debe ser el precio de cierre que toca las bandas.
Simplemente reemplace Close con HIGH para la banda superior y LOW para la banda inferior.Ahi esta:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172DEFPARAM DrawOnLastBarOnly = true// PUNTO EXTREMO AZULpsar = SAR[0.02, 0.02, 0.2]C1 = CLOSE > psarC2 = CLOSE < psar// Variables para controlar la tendenciaIF 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] + 1ENDIF// Calcular el Punto Extremo (PE)IF C1 THENIF CONTADOR > 1 THENPE = HIGHEST[CONTADOR](HIGH)ELSEPE = HIGHENDIFDRAWSEGMENT(barindex + 510, PE, barindex[510], PE) COLOURED(0, 0, 255) STYLE(dottedline1, 3)DRAWTEXT("sar", barindex, PE, Dialog, Bold, 20) COLOURED(0, 0, 255)ENDIFIF C2 THENIF CUENTA > 1 THENPE = LOWEST[CUENTA](LOW)ELSEPE = LOWENDIFDRAWSEGMENT(barindex + 510, PE, barindex[510], PE) COLOURED(0, 0, 255) STYLE(dottedline1, 3)DRAWTEXT("sar", barindex, PE, Dialog, Bold, 20) COLOURED(0, 0, 255)ENDIF// Bandas de Bollingerema20 = ExponentialAverage[20](close)dev = 2Bbup = ema20 + std[20](close) * devBbdown = ema20 - std[20](close) * dev// Variables para guardar los valores iniciales de las Bandas de Bollinger cuando CLOSE deja de estar en el PEonce BollUpInitial = 0once BollDownInitial = 0initialized = 0 // Usaremos 1 para inicializado y 0 para no inicializado// Detectar el momento en que CLOSE deja de ser igual al PE y guardar los valores iniciales de las Bandas de Bollinger//IF CLOSE <> PE THENIF (high <> PE) AND (LOW <> PE) THENIF initialized = 0 THENBollUpInitial = BbupBollDownInitial = Bbdowninitialized = 1DRAWTEXT("#BollUpInitial#", barindex, BollUpInitial) COLOURED(255, 0, 0)DRAWTEXT("#BollDownInitial#", barindex, BollDownInitial) COLOURED(0, 0, 255)//drawarrowup(BarIndex,high*1.001) coloured("Cyan")ENDIFENDIF// Reiniciar cuando CLOSE vuelva a ser igual al PE//IF CLOSE = PE THENIF (high = PE) OR (high = PE) THENinitialized = 0ENDIFRETURN PE AS "PUNTO EXTREMO azul y verde" COLOURED("BLUE", 0)07/24/2024 at 9:43 AM #235708Despues de probarlo, no funciona correctamente le explico el funcionamiento a ver si se puede realizar. Quiero que cuando el precio deje de hacer el maximo de la tendencia es decir ya no sea igual al PE (Punto Extremo) me dibuje una linea en la bbup y bbdown justamente en el precio que estan cuando el precio deja de ser igual al pe y se queden esas lineas en ese precio fijo hasta que el precio rebase la sar o el precio vuelva a ser igual al pe. Lo que resumidamente tiene que hacer es acumular la variable de las bandas del bollinger cuando el pe deje de ser igual al close y que haga esa condicion hasta que el precio rebase la sar o el precio vuelva a ser igual al pe Un saludo
-
AuthorPosts
Find exclusive trading pro-tools on