Señalizador de cruces con parabolica
Forums › ProRealTime foro Español › Soporte ProBuilder › Señalizador de cruces con parabolica
- This topic has 11 replies, 2 voices, and was last updated 9 months ago by robertogozzi.
-
-
02/08/2024 at 9:37 PM #227689
Buenas, me gustaria crear un indicador que cuando un ema3 cruce a un ema9 alcista me dibujaria de 0 un parabolica sar pero me la dibuje a partir de la parabolica sar actual en el cruce es decir que sea una sar que empiece el factor de aceleracion de 0. Un saludo
02/09/2024 at 9:49 AM #227719Quieres decir así?
123456789Ema3 = average[3,1](close)Ema9 = average[9,1](close)pSAR1 = SAR[0.02,0.02,0.2]pSAR2 = SAR[0.000000001,0.02,0.2] //no puede ser 0ONCE mySAR = pSAR1IF Ema3 CROSSES OVER Ema9 THENmySAR = pSAR2ENDIFRETURN mySAR AS "SAR" style(line,2),Ema3 AS "Ema3" style(line,2),Ema9 AS "Ema9" style(line,2)Pero, ¿tiene que volver a la normalidad o tiene que permanecer así siempre?
02/13/2024 at 11:13 AM #228036Lo he estado probando y deberia ser asi pero que los puntos vaya sumando 0.02 cada maximo desde el cruce no que sigan en linea recta como adjunto en la imagen.
02/14/2024 at 11:31 AM #228160No entiendo muy bien lo que quieres, puedes dibujar el SAR estándar y el que te gustaría para entender la diferencia.
02/15/2024 at 11:18 AM #228214si claro, te explico mejor. En la imagen puedes ver que cuando se cruza ema 3 con ema9 me sale otra sar nueva pero el punto que empieza es en la sar donde ha echo el cruce y de ahi empieza una nueva sar a contar hasta que haya un cambio de tendencia o otro cruce de ema3 con ema9, creo que así esta mejor explicado. La sar negra es una nueva sar que ha salido por el cruce de ema3 con ema9 y su punto de inicio es la sar donde la vela ha echo el cruce y de ahi va sumando 0.02 cada nuevo maximo o minimo Un saludo
02/16/2024 at 11:28 AM #228271Espero haber entendido bien:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263ONCE SARinit = 0.02ONCE SARstep = 0.02ONCE SARlimit = 0.2Ema3 = average[3,1](close)Ema9 = average[9,1](close)IF BARINDEX < 2 THENparabolic = LOWislong = 1af = SARlimithp = HIGHlp = LOWELSEIF Ema3 CROSSES UNDER Ema9 THENaf = SARlimitENDIFIF islong THENparabolic = parabolic + af * (hp - parabolic)parabolic = MIN(parabolic, LOW[1])parabolic = MIN(parabolic, LOW[2])ELSEparabolic = parabolic + af * (lp - parabolic)parabolic = MAX(parabolic, HIGH[1])parabolic = MAX(parabolic, HIGH[2])ENDIFreverse = 0IF islong THENIF LOW < parabolic THENislong = 0reverse = 1parabolic = hplp = LOWaf = SARinitENDIFELSEIF HIGH > parabolic THENislong = 1reverse = 1parabolic = lphp = HIGHaf = SARinitENDIFENDIFIF NOT reverse THENIF islong THENIF HIGH > hp THENhp = HIGHaf = af + SARstepaf = MIN (af,SARlimit)ENDIFELSEIF LOW < lp THENlp = LOWaf = af + SARstepaf = MIN (af,SARlimit)ENDIFENDIFENDIFENDIFOffset = parabolic - (average[100,0](range) / 3)IF close <= parabolic THENOffset = parabolic + (average[100,0](range) / 3)ENDIFRETURN Parabolic AS "mySAR"02/20/2024 at 4:37 PM #228468Funciona pero me gustaría que si hace un cruce y aparece las sar nuevas se borren todas las sar dibujadas anteriores que solo se queden las de la tendencia actual
02/21/2024 at 11:17 AM #228495Lamentablemente, los datos antiguos no se pueden eliminar.
02/22/2024 at 1:18 AM #228538Creo que si se puede hacer ya que yo lo hice con algún otro indicador. Quiero que cuando no me cumpla la condición: “IF NN > 0 and N > 0 and A1 < M1 and A2 < M2 THEN” se me borre todo y cuando se cumpla empiece a dibujarse hasta que ya no se cumpla o el precio rebase las sar. A1, M1, A2 Y M2 ya los tengo yo definidos en el codigo restante pero es en esa parte donde hay que mnodificar. Un saludo
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162ONCE SARinittt = 0.02ONCE SARsteppp = 0.02ONCE SARlimittt = 0.2IF BARINDEX < 2 THENparaboliccc = LOWislonggg = 1afff = SARlimittthppp = HIGHlppp = LOWELSEIF NN > 0 and N > 0 and A1 < M1 and A2 < M2 THENafff = SARlimitttENDIFIF islonggg THENparaboliccc = paraboliccc + afff * (hppp - paraboliccc)paraboliccc = MIN(paraboliccc, LOW[1])paraboliccc = MIN(paraboliccc, LOW[2])ELSEparaboliccc = paraboliccc + afff * (lppp - paraboliccc)paraboliccc = MAX(paraboliccc, HIGH[1])paraboliccc = MAX(paraboliccc, HIGH[2])ENDIFreverseee = 0IF islonggg THENIF LOW < paraboliccc THENislonggg = 0reverseee = 1paraboliccc = hppplppp = LOWafff = SARinitttENDIFELSEIF HIGH > paraboliccc THENislonggg = 1reverseee = 1paraboliccc = lppphppp = HIGHafff = SARinitttENDIFENDIFIF NOT reverseee THENIF islonggg THENIF HIGH > hppp THENhppp = HIGHafff = afff + SARstepppafff = MIN (afff,SARlimittt)ENDIFELSEIF LOW < lppp THENlppp = LOWafff = afff + SARstepppafff = MIN (afff,SARlimittt)ENDIFENDIFENDIFENDIFOffsettt = paraboliccc - (average[100,0](range) / 3)IF close <= paraboliccc THENOffsettt = paraboliccc + (average[100,0](range) / 3)ENDIFRETURN Paraboliccc AS "mySAR"02/22/2024 at 9:08 AM #228540Esto no se puede hacer con los datos devueltos por RETURN.
Necesitas usar una matriz, pero es bastante complicado. Puedo intentar hacerlo, pero necesitaré tiempo.02/26/2024 at 10:55 AM #228755Vale de acuerdo coméntame cuando tengas algo por favor ya que a mi me da error al desarrollarlo. Un saludo
03/07/2024 at 5:00 PM #229404Publica el archivo ITF, el que publicaste no tiene todas las variables.
-
AuthorPosts