grafico de prueba
Forums › ProRealTime foro Español › Soporte ProBuilder › grafico de prueba
- This topic has 9 replies, 3 voices, and was last updated 2 months ago by Iván.
-
-
08/08/2024 at 4:15 PM #236269
En este indicador quiero que cuente cuántas veces cada mySAR (mySar1, mySar2, mySar3) cruza el precio individualmente mientras están por debajo del precio todas a la vez o encima, y una vez que las tres están por encima del precio o por debajo pero todas en la misma orientación, El indicador tiene que contar si por ejemplo estan todas las mysar debajo del precio si mysar1 esta ahora por encima pone un 1 al lado y si la vuelve a coger le pone un 2 al lado tiene que contar cuantas veces coge cada una hasta que todas las coja a la vez es decir que de abajo que ha empezado del precio todas las mysar terminen arriba y ahí empezaría el contador de nuevo. Es para ver cuantas veces el precio rebasa las mysar antes de coger en la misma dirección las tres a la vez. Un saludo
1234567891011121314151617181920212223defparam drawonlastbaronly = truePRECIO= CLOSETIMEFRAME(1mn)mySar1 = SAR[0.02,0.02,0.2]Precio1 = closeTIMEFRAME(2mn)mySar2 = SAR[0.02,0.02,0.2]Precio2 = closeTIMEFRAME(3mn)mySar3 = SAR[0.02,0.02,0.2]Precio3 = closeTIMEFRAME(default)DrawText("1",BarIndex[60],mysar1,dialog,standard,17) COLOURED(0,0,0)DrawText("2",BarIndex[59],mysar2,dialog,standard,17) COLOURED(0,0,0)DrawText("3",BarIndex[58],mysar3,dialog,standard,17) COLOURED(0,0,0)DRAWHLINE(close)RETURN08/09/2024 at 11:19 AM #236290POdrías hacer algo así. Te pongo un ejemplo con uno de los SAR, el resto te lo dejo a ti:
12345678910111213141516171819if precio1>mysar1 and precio2>mysar2 and precio3>mysar3 thendir=1elsif precio1<mysar1 and precio2<mysar2 and precio3<mysar3 thendir=-1endifif dir<>dir[1] thencont1=0cont2=0cont3=0endifif precio1 crosses over mysar1 and dir=1 thencont1=cont1+1elsif precio1 crosses under mysar1 and dir=-1 thencont1=cont1+1elsecont1=cont1endif08/13/2024 at 5:04 PM #236378Lo he creado asi y creo que esta bien pero quiero que los contadores aguanten la variable de las veces que haya rebasado el preciocada una de las mysar, hasta que todas estén por encima o por debajo del precio es decir eo las tres por encima o las tres por debajo y ahi se reinicia los contadores. Un saludo
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980defparam drawonlastbaronly = truePRECIO = CLOSETIMEFRAME(1mn)mySar1 = SAR[0.02, 0.02, 0.2]Precio1 = closeTIMEFRAME(2mn)mySar2 = SAR[0.02, 0.02, 0.2]Precio2 = closeTIMEFRAME(3mn)mySar3 = SAR[0.02, 0.02, 0.2]Precio3 = closeTIMEFRAME(default)dir = 0Contador1 = 0Contador2 = 0Contador3 = 0if Precio1 > mySar1 and Precio2 > mySar2 and Precio3 > mySar3 thendir = 1elsif Precio1 < mySar1 and Precio2 < mySar2 and Precio3 < mySar3 thendir = -1endifif dir <> dir[1] thenContador1 = 0Contador2 = 0Contador3 = 0endif// Contadores para cada cruceif Precio1 crosses over mySar1 thenContador1 = Contador1 + 1elsif Precio1 crosses under mySar1 thenContador1 = Contador1 + 1endifif Precio2 crosses over mySar2 thenContador2 = Contador2 + 1elsif Precio2 crosses under mySar2 thenContador2 = Contador2 + 1endifif Precio3 crosses over mySar3 thenContador3 = Contador3 + 1elsif Precio3 crosses under mySar3 thenContador3 = Contador3 + 1endifOffset1 = mysar1 - (average[100,0](range) / 1)IF close <= mysar1 THENOffset1 = mysar1 + (average[100,0](range) / 1)endifOffset2 = mysar2 - (average[100,0](range) / 1)IF close <= mysar2 THENOffset2 = mysar2 + (average[100,0](range) / 1)endifOffset3 = mysar3 - (average[100,0](range) / 1)IF close <= mysar3 THENOffset3 = mysar3 + (average[100,0](range) / 1)endif// Dibujar los contadores y los SAR en el gráficoDrawText("1", BarIndex[60], mySar1, dialog, bold, 12) COLOURED(0, 0, 0)DrawText("2", BarIndex[59], mySar2, dialog, bold, 12) COLOURED(0, 0, 0)DrawText("3", BarIndex[58], mySar3, dialog, bold, 12) COLOURED(0, 0, 0)DrawText(Contador1, BarIndex[60], Offset1, dialog, bold, 12) COLOURED(0, 0, 0)DrawText(Contador2, BarIndex[59], Offset2, dialog, bold, 12) COLOURED(0, 0, 0)DrawText(Contador3, BarIndex[58], Offset3, dialog, bold, 12) COLOURED(0, 0, 0)DRAWHLINE(close)RETURN08/14/2024 at 1:20 PM #23639908/15/2024 at 9:59 AM #236411Ya he creado el codigo y funciona bien pero cuando va a terminar el contador y dejar todas en 0 por ejemplo esta mysar1 arriba del precio y mysar2 tambien y el precio deja mysar3 arriba deja todas en 0 menos mysar3 que se queda con un 1 unos segundos o minutos hasta que se pone 0 no se a que se debe esto ya que se deberia poner automaticamente en 0 los tres contadores. Un saludo
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586defparam drawonlastbaronly = truePRECIO = CLOSETIMEFRAME(1mn)mySar1 = SAR[0.02, 0.02, 0.2]Precio1 = closeTIMEFRAME(2mn)mySar2 = SAR[0.02, 0.02, 0.2]Precio2 = closeTIMEFRAME(3mn)mySar3 = SAR[0.02, 0.02, 0.2]Precio3 = closeTIMEFRAME(default)once dir = 0once Contador1 = 0once Contador2 = 0once Contador3 = 0if Precio1 > mySar1 and Precio2 > mySar2 and Precio3 > mySar3 thendir = 1Contador1 = 0Contador2 = 0Contador3 = 0elsif Precio1 < mySar1 and Precio2 < mySar2 and Precio3 < mySar3 thendir = -1Contador1 = 0Contador2 = 0Contador3 = 0endifif dir <> dir[1] thenContador1 = 0Contador2 = 0Contador3 = 0endif// Contadores para cada cruceif Precio1 crosses over mySar1 thenContador1 = Contador1 + 1elsif Precio1 crosses under mySar1 thenContador1 = Contador1 + 1endifif Precio2 crosses over mySar2 thenContador2 = Contador2 + 1elsif Precio2 crosses under mySar2 thenContador2 = Contador2 + 1endifif Precio3 crosses over mySar3 thenContador3 = Contador3 + 1elsif Precio3 crosses under mySar3 thenContador3 = Contador3 + 1endifOffset1 = mysar1 - (average[100,0](range) / 1)IF close <= mysar1 THENOffset1 = mysar1 + (average[100,0](range) / 1)endifOffset2 = mysar2 - (average[100,0](range) / 1)IF close <= mysar2 THENOffset2 = mysar2 + (average[100,0](range) / 1)endifOffset3 = mysar3 - (average[100,0](range) / 1)IF close <= mysar3 THENOffset3 = mysar3 + (average[100,0](range) / 1)endif// Dibujar los contadores y los SAR en el gráficoDrawText("1", BarIndex[60], mySar1, dialog, standard, 17) COLOURED(0, 0, 0)DrawText("2", BarIndex[59], mySar2, dialog, standard, 17) COLOURED(0, 0, 0)DrawText("3", BarIndex[58], mySar3, dialog, standard, 17) COLOURED(0, 0, 0)DrawText(Contador1, BarIndex[60], Offset1, dialog, bold, 12) COLOURED(0, 0, 255)DrawText(Contador2, BarIndex[59], Offset2, dialog, bold, 12) COLOURED(0, 0, 255)DrawText(Contador3, BarIndex[58], Offset3, dialog, bold, 12) COLOURED(0, 0, 255)DRAWHLINE(close)RETURN08/20/2024 at 11:59 AM #236542Alguien me puede ayudar con este error. Un saludo
08/21/2024 at 9:47 AM #236560No sé si interpreté correctamente tu solicitud, prueba esta versión:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687defparam drawonlastbaronly = truePRECIO = CLOSETIMEFRAME(1mn)mySar1 = SAR[0.02, 0.02, 0.2]Precio1 = closeTIMEFRAME(2mn)mySar2 = SAR[0.02, 0.02, 0.2]Precio2 = closeTIMEFRAME(3mn)mySar3 = SAR[0.02, 0.02, 0.2]Precio3 = closeTIMEFRAME(default)once dir = 0once Contador1 = 0once Contador2 = 0once Contador3 = 0dir = 0if Precio1 > mySar1 and Precio2 > mySar2 and Precio3 > mySar3 thendir = 1Contador1 = 0Contador2 = 0Contador3 = 0elsif Precio1 < mySar1 and Precio2 < mySar2 and Precio3 < mySar3 thendir = -1Contador1 = 0Contador2 = 0Contador3 = 0endifif dir <> dir[1] thenContador1 = 0Contador2 = 0Contador3 = 0endifif dir <> dir[1] THEN// Contadores para cada cruceif Precio1 crosses over mySar1 thenContador1 = Contador1 + 1elsif Precio1 crosses under mySar1 thenContador1 = Contador1 + 1endifif Precio2 crosses over mySar2 thenContador2 = Contador2 + 1elsif Precio2 crosses under mySar2 thenContador2 = Contador2 + 1endifif Precio3 crosses over mySar3 thenContador3 = Contador3 + 1elsif Precio3 crosses under mySar3 thenContador3 = Contador3 + 1endifendifOffset1 = mysar1 - (average[100,0](range) / 1)IF close <= mysar1 THENOffset1 = mysar1 + (average[100,0](range) / 1)endifOffset2 = mysar2 - (average[100,0](range) / 1)IF close <= mysar2 THENOffset2 = mysar2 + (average[100,0](range) / 1)endifOffset3 = mysar3 - (average[100,0](range) / 1)IF close <= mysar3 THENOffset3 = mysar3 + (average[100,0](range) / 1)endif// Dibujar los contadores y los SAR en el gráficoDrawText("1", BarIndex[60], mySar1, dialog, standard, 17) COLOURED(0, 0, 0)DrawText("2", BarIndex[59], mySar2, dialog, standard, 17) COLOURED(0, 0, 0)DrawText("3", BarIndex[58], mySar3, dialog, standard, 17) COLOURED(0, 0, 0)DrawText(Contador1, BarIndex[60], Offset1, dialog, bold, 12) COLOURED(0, 0, 255)DrawText(Contador2, BarIndex[59], Offset2, dialog, bold, 12) COLOURED(0, 0, 255)DrawText(Contador3, BarIndex[58], Offset3, dialog, bold, 12) COLOURED(0, 0, 255)DRAWHLINE(close)RETURN08/28/2024 at 8:43 AM #236778Lo he probado pero cuando esta contando el contador y ya coloca todas las sar por encima o debajo del precio deberia poner en todas el contador en 0 y no lo hace hasta que pasa un rato de tiempo no se por que, ya que debería ser inmediato. Un saludo
08/29/2024 at 11:02 AM #236821Lo siento, pero tenemos que esperar Iván , no entiendo muy bien qué quieres cambiar.
08/29/2024 at 2:54 PM #236849Buenas!
Prueba esto a ver si te vale:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859PRECIO = CLOSETIMEFRAME(1mn)mySar1 = SAR[0.02, 0.02, 0.2]Precio1 = closeTIMEFRAME(2mn)mySar2 = SAR[0.02, 0.02, 0.2]Precio2 = closeTIMEFRAME(3mn)mySar3 = SAR[0.02, 0.02, 0.2]Precio3 = closeTIMEFRAME(default)once dir = 0once Contador1 = 0once Contador2 = 0once Contador3 = 0if Precio1 > mySar1 and Precio2 > mySar2 and Precio3 > mySar3 thendir = 1elsif Precio1 < mySar1 and Precio2 < mySar2 and Precio3 < mySar3 thendir = -1endifif dir <> dir[1] thenDrawText("1: #contador1#", BarIndex, max(mySar1,max(mySar2,max(high,mySar3)))+0.75*tr, dialog, bold, 12) COLOURED(0, 0, 0)DrawText("2: #contador2#", BarIndex, max(mySar1,max(mySar2,max(high,mySar3)))+0.5*tr, dialog, bold, 12) COLOURED(0, 0, 0)DrawText("3: #contador3#", BarIndex, max(mySar1,max(mySar2,max(high,mySar3)))+0.25*tr, dialog, bold, 12) COLOURED(0, 0, 0)Contador1 = 0Contador2 = 0Contador3 = 0endif// Contadores para cada cruceif Precio1 crosses over mySar1 thenContador1 = Contador1 + 1elsif Precio1 crosses under mySar1 thenContador1 = Contador1 + 1endifif Precio2 crosses over mySar2 thenContador2 = Contador2 + 1elsif Precio2 crosses under mySar2 thenContador2 = Contador2 + 1endifif Precio3 crosses over mySar3 thenContador3 = Contador3 + 1elsif Precio3 crosses under mySar3 thenContador3 = Contador3 + 1endifif dir=1 thenbackgroundcolor("green",100)elsif dir=-1 thenbackgroundcolor("red",100)endifRETURN mySar1 coloured("red"), mySar2 coloured("blue"), mySar3 coloured("fuchsia"), close -
AuthorPosts
Find exclusive trading pro-tools on