Precisión indicador multi time frame
Forums › ProRealTime foro Español › Soporte ProBuilder › Precisión indicador multi time frame
- This topic has 5 replies, 2 voices, and was last updated 4 days ago by
avidalh.
-
-
02/03/2025 at 6:42 PM #243393
Buenas tardes,
soy nuevo en el foro, llevo pocas semanas usando PRT y aprendiendo a programar indicadores. En este momento estamos intentando desarrollar un indicador multi timeframe para que dibuje en un gráfico de 144s cosas que calculamos en varios time frames más altos (1d, 4h, 1h y 12m). Pero estamos teniendo problemas con la precisión que presentan los cálculos de time frames altos (1d y 4h), como se puede apreciar en la captura adjunta, existe una diferencia importante entre las líneas calculadas en el gráfico de 1d y las calculadas en el gráfico de 144s (usando el timeframe de 1d). Hemos probado a aumentar el número de barras de la historia y hemos conseguido que el error disminuya, pero aún seguimos teniendo un error considerable.
Mi pregunta es si existe alguna limitación al programar un indicador multi timeframe, si no podemos mezclar 1d con 144s, o si alguien ha tenido el mismo problema y como lo ha solucionado.
Gracias de antemano por vuestra ayuda,
Ángel
02/03/2025 at 7:17 PM #243397Este es el código que utilicé.
123456TIMEFRAME(Daily)SmaD = average[10,0](close)Timeframe(144 seconds)SmaS = average[10,0](close)Timeframe(default)RETURN SmaD AS "Daily Sma",SmaS AS "144-Sec.Sma"Los datos hasta la vela anterior del marco temporal principal son correctos.
En los datos actuales, en la versión diaria hay una diferencia de aproximadamente 1 unidad, en la de 4 horas solo unos pocos decimales y en la de 12 minutos incluso menos decimales.
No sé qué tipo de estrategia quieres crear, pero no hay tantas diferencias.
Probablemente se deben a los diferentes tiempos de actualización de los datos en tiempo real.
Para mayores explicaciones te sugiero abrir un ticket de soporte presionando Ctrl+M desde la plataforma.02/03/2025 at 8:18 PM #24340502/03/2025 at 11:29 PM #243411Observando la evolución del indicador en tiempo real, en gráfico de 144s, he observado que justo después de cargar el gráfico, los datos son bastante precisos, ver primera captura. Cuando aparece una vela nueva en 144s, en los indicadores de mayor timeframe aparece un escalón (un desplazamiento de varios puntos), ver segunda captura. A medida que siguen apareciendo velas, este escalón también va aumentando hacia la derecha, manteniendo el mismo o casi el mismo nivel, ver captura 3. Este escalón desaparece si recargamos el gráfico (por ejemplo cambiando el número de barras de la historia), ver captura 4. Al recargar el gráfico la precisión es buena hasta que vuelve a aparecer una vela nueva, momento en el que aparece de nuevo el escalón.
Me gustaría saber si a alguien le ha pasado esto y cómo lo ha solucionado.
Muchísimas muchísimas gracias!Este es el código del TF de 1d:
once SmoothPrice1d=close
once SmoothRange1d=rangemitjana1d= close
if barindex>1 then
SmoothPrice1d=(SmoothPrice1d[1]*(VelasBanda-1)+Close)/VelasBanda
SmoothRange1d=(SmoothRange1d[1]*(VelasBanda-1)+High-Low)/VelasBanda
Alt11d=(SmoothPrice1d+SmoothRange1d*pi)
Baix11d=(SmoothPrice1d-SmoothRange1d*pi)
Mitjana1d= (Alt1d+Baix1d)/2
Alt1d=DEMA(Alt11d)
Baix1d=dema(baix11d)
//Mitjana1d= (Alt1d+Baix1d)/2
endif
GL1d=(mitjana1d+average[34](close))/2
02/03/2025 at 11:36 PM #24341302/09/2025 at 9:39 PM #243655Inserto el código completo, que creo que se lee mejor.
Se trata de un indicador para la comunidad de Domenec Suria. A ver si Iván González nos puede echar una mano 😉Espacio Multi TimeFrame basado en el Tunel Domenec123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131/*Genial Line de Domenec Suria para espacio de trabajo en 144sRequirements:-Usar SÓLO en 144s-Usar 50k de historia para obtener buena precisiónChangeLog:...20250205: añadida la ZC en 144s.*/DEFPARAM DRAWONLASTBARONLY = trueDEBUG = 1TotalBars = BarIndex[0]IF DEBUG = 1 THENDRAWTEXT("Total bars: #TotalBars#", BarIndex[0], High[0])ENDIFVelasBanda=20pi= 3.14159265358979timeframe(1 day)//, UPDATEONCLOSE)once SmoothPrice1d=closeonce SmoothRange1d=rangemitjana1d= closeif barindex>1 thenSmoothPrice1d=(SmoothPrice1d[1]*(VelasBanda-1)+Close)/VelasBandaSmoothRange1d=(SmoothRange1d[1]*(VelasBanda-1)+High-Low)/VelasBandaAlt11d=(SmoothPrice1d+SmoothRange1d*pi)Baix11d=(SmoothPrice1d-SmoothRange1d*pi)Mitjana1d= (Alt1d+Baix1d)/2Alt1d=DEMA(Alt11d)Baix1d=dema(baix11d)//Mitjana1d= (Alt1d+Baix1d)/2endifGL1d=(mitjana1d+average[34](close))/2timeframe(4 hours)once SmoothPrice4h=closeonce SmoothRange4h=rangemitjana4h= closeif barindex>1 thenSmoothPrice4h=(SmoothPrice4h[1]*(VelasBanda-1)+Close)/VelasBandaSmoothRange4h=(SmoothRange4h[1]*(VelasBanda-1)+High-Low)/VelasBandaAlt14h=(SmoothPrice4h+SmoothRange4h*pi)Baix14h=(SmoothPrice4h-SmoothRange4h*pi)Mitjana4h= (Alt4h+Baix4h)/2Alt4h=DEMA(Alt14h)Baix4h=dema(baix14h)endifGL4h=(mitjana4h+average[34](close))/2timeframe(60 minutes)once SmoothPrice1h=closeonce SmoothRange1h=rangemitjana1h= closeif barindex>1 thenSmoothPrice1h=(SmoothPrice1h[1]*(VelasBanda-1)+Close)/VelasBandaSmoothRange1h=(SmoothRange1h[1]*(VelasBanda-1)+High-Low)/VelasBandaAlt11h=(SmoothPrice1h+SmoothRange1h*pi)Baix11h=(SmoothPrice1h-SmoothRange1h*pi)Mitjana1h= (Alt1h+Baix1h)/2Alt1h=DEMA(Alt11h)Baix1h=dema(baix11h)endifGL1h=(mitjana1h+average[34](close))/2timeframe(12 minutes)once SmoothPrice12m=closeonce SmoothRange12m=rangemitjana12m= closeif barindex>1 thenSmoothPrice12m=(SmoothPrice12m[1]*(VelasBanda-1)+Close)/VelasBandaSmoothRange12m=(SmoothRange12m[1]*(VelasBanda-1)+High-Low)/VelasBandaAlt112m=(SmoothPrice12m+SmoothRange12m*pi)Baix112m=(SmoothPrice12m-SmoothRange12m*pi)Mitjana12m= (Alt12m+Baix12m)/2Alt12m=DEMA(Alt112m)Baix12m=dema(baix112m)endifGL12m=(mitjana12m+average[34](close))/2timeframe(default, updateonclose)once SmoothPrice=closeonce SmoothRange=rangemitjana= closeif barindex>1 thenSmoothPrice=(SmoothPrice[1]*(VelasBanda-1)+Close)/VelasBandaSmoothRange=(SmoothRange[1]*(VelasBanda-1)+High-Low)/VelasBandaAlt1=(SmoothPrice+SmoothRange*pi)Baix1=(SmoothPrice-SmoothRange*pi)Mitjana= (Alt+Baix)/2Alt=DEMA(Alt1)Baix=dema(baix1)endifGL144s =(mitjana+average[34](close))/2//ZC1: color según la pendiente de la curvaZC1144s = average[8,1](customclose)ZC2144s = wilderaverage[8](close)if ZC1144s <= ZC1144s[1] thenZC1R = 200 //R RGB + TransparencyZC1G = 50 //GZC1B = 50 //BZC1T = 255 //Tendifif ZC1144s > ZC1144s[1] thenZC1R = 50 //R RGB + TransparencyZC1G = 200 //GZC1B = 50 //BZC1T = 255 //Tendif//pintamos la líneareturn GL1d style(dottedline,4)as "Genial 1d", GL4h style(dottedline,4)as "Genial 4h", GL1h style(dottedline,4)as "Genial 1h", GL12m style(dottedline,4)as "Genial 12m", GL144s style(dottedline,4)as "Genial 144s", ZC1144s style(line,4) coloured(ZC1R, ZC1G, ZC1B, ZC1T) as "Zona de corrección 1", ZC2144s coloured(160,0,0) style(dottedline,2) as "Zona de corrección 2"//return GL1d coloured(0, 0, 255) style(dottedline,4)as "Genial 1d", GL4h coloured(0, 0, 255) style(dottedline,4)as "Genial 4h", GL1h coloured(0, 0, 255) style(dottedline,4)as "Genial 1h", GL12m coloured(0, 0, 255) style(dottedline,4)as "Genial 12m", GL144s coloured(255, 255,0) style(dottedline,4)as "Genial 144s" -
AuthorPosts
Find exclusive trading pro-tools on