Representación gráfica ATR Trailling Stop
Forums › ProRealTime foro Español › Soporte ProBuilder › Representación gráfica ATR Trailling Stop
- This topic has 2 replies, 2 voices, and was last updated 2 years ago by cjr30.
-
-
12/15/2022 at 8:04 PM #205837
Buenas tardes,
Después de varios intentos fallidos, me encuentro totalmente bloqueado y tal vez la solución sea muy fácil.
Siempre intento buscarme la vida y dar con las soluciones, pero en esta ocasión me rindo.
Pretendo realizar un indicador (Trailling Stop basado en el ATR), pero que se represente en puntos (similar a los fractales de Williams) de tal manera que veamos el indicador como escalones ( sin que se produzcan retrocesos) y se tenga en cuenta siempre el último valor alcanzado, de manera que cuando el precio (el indicador ira en el gráfico de precios) toque dicha línea de puntos nos lo indique mediante una flecha.
A modo de ejemplo y para que sea representativo, he realizado el mismo, implementando un simple cruce de medias para que se entienda.
Cuando se cruzan al alza dichas medias, nos lo señalara mediante una flecha (verde) y el indicador aparecerá en el gráfico mediante puntos (azules), en el momento en que el precio sea menor a ese indicador, nos lo señalará mediante una flecha (roja) en sentido opuesto y el indicador ya no aparecerá en el gráfico.
Todo esto lo he conseguido, pero solamente cuando el cruce se produce al alza, sin embargo cuando es a la baja ( media corta cruza hacia abajo a la media larga), nos aparece la flecha(azul) , pero el indicador no aparece y también aparece en la misma vela la flecha(roja) opuesta.
Lo curioso es que ayer, después de estar todo el día intentando dar con este indicador, me funcionaba correctamente y hoy por la mañana el indicador ya no funcionaba.
Adjunto el archivo itf, el código y un gráfico en el cual figuran las explicaciones.
Gracias por anticipado
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354// A modo de ejemplo un simple Sistema de cruce de dos EMA y ATR como Trailing Stop.//El ATR se representará como puntos (similar a fractales), cuando el precio cruce el Trailing Stop, se cierra la representación mediante una flecha en sentido opuesto a la inicial del cruce de las medias.//El ATR y flechas solo se dibujan cuando el cruce se ha producido y el precio aún no ha tocado el Trailing basado en el ATROffset = 4 * pipsize//Indicadoresmed6 = exponentialaverage[6](close)med70 = exponentialaverage[70](close)atr20 = averagetruerange[20](close)contador = 0contador1 = 0//Condiciones de inicio de señalesc1 = med6 crosses over med70c2 = med6 crosses under med70setupinl = c1setupinc = c2//El ATR y flechas solo se dibujan mientras se dan las condicionesif setupinl thendrawarrowup(barindex,LOW - offset) coloured (0,255,0)//flecha verdedentro = 1//indico que estoy dentro del cruce y por tanto hay que representar el Trailing del ATR mediante puntos(1)dentro1 = 0elsif setupinc thendrawarrowdown(barindex,high+ offset) coloured (0,0,253)//flecha azuldentro1 = 1//igual que(1) pero en sentido opuestodentro = 0endifif dentro thencontador = 1 + contador[1]//contador nos va contando las velas y acumulando su valortrailstopl = highest[contador](close-2.5*atr20)//el trailstop asumira el mayor valor de las velas contadas( es decir el último valor)endifif dentro1 thencontador1 = 1 + contador1[1]trailstopc = lowest[contador1](close+2.5*atr20)endif//Condiciones de salidas1 = close < trailstopl[1]// precio toca el trailstops2 = close > trailstopc[1]setupoutl = s1setupoutc = s2//El ATR termina de dibujarse con una flecha en sentido opuesto cuando se sale de las condiciones por tocar el trailinstopif setupoutl and dentro then// se inicializan las variables y se deja de representar el trailstop y se dibuja la flecha en sentido opuesto al crucestoploss = 0trailstopl = 0dentro = 0drawarrowdown(barindex,high+offset)coloured(255,0,0)endifif setupoutc and dentro1 thenstoploss1 = 0trailstopc = 0dentro1 = 0drawarrowup(barindex,low-offset)coloured(210,0,0)endif////////////////////////////////////Presentacionreturn med6 as "media6", med70 as"media70", trailstopl as"stoplargo",trailstopc as "stopcorto"12/16/2022 at 11:24 AM #205872No estoy seguro de entender completamente su consulta, pero aquí está una solución para trazar la línea de trailing stop corto:
El problema es que se restablece el lado corto del trailing stop con la condición s2 (prueba si es superior a 0, por lo que siempre es cierto y por lo tanto la línea de trailing stop nunca es posible).
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859// A modo de ejemplo un simple Sistema de cruce de dos EMA y ATR como Trailing Stop.//El ATR se representará como puntos (similar a fractales), cuando el precio cruce el Trailing Stop, se cierra la representación mediante una flecha en sentido opuesto a la inicial del cruce de las medias.//El ATR y flechas solo se dibujan cuando el cruce se ha producido y el precio aún no ha tocado el Trailing basado en el ATROffset = 4 * pipsize//Indicadoresmed6 = exponentialaverage[6](close)med70 = exponentialaverage[70](close)atr20 = averagetruerange[20](close)contador = 0contador1 = 0//Condiciones de inicio de señalesc1 = med6 crosses over med70c2 = med6 crosses under med70setupinl = c1setupinc = c2//El ATR y flechas solo se dibujan mientras se dan las condicionesif setupinl thendrawarrowup(barindex,LOW - offset) coloured (0,255,0)//flecha verdedentro = 1//indico que estoy dentro del cruce y por tanto hay que representar el Trailing del ATR mediante puntos(1)dentro1 = 0longalpha=255endifif setupinc thendrawarrowdown(barindex,high+ offset) coloured (0,0,253)//flecha azuldentro1 = 1//igual que(1) pero en sentido opuestodentro = 0shortalpha=255endifif dentro thencontador = 1 + contador[1]//contador nos va contando las velas y acumulando su valortrailstopl = highest[contador](close-2.5*atr20)//el trailstop asumira el mayor valor de las velas contadas( es decir el último valor)endifif dentro1 thencontador1 = 1 + contador1[1]trailstopc = lowest[contador1](close+2.5*atr20)endif//Condiciones de salidas1 = close < trailstopl[1]// precio toca el trailstops2 = close > trailstopc[1]setupoutl = s1setupoutc = s2//El ATR termina de dibujarse con una flecha en sentido opuesto cuando se sale de las condiciones por tocar el trailinstopif setupoutl and dentro then// se inicializan las variables y se deja de representar el trailstop y se dibuja la flecha en sentido opuesto al crucestoploss = 0//trailstopl = 0longalpha=0dentro = 0drawarrowdown(barindex,high+offset)coloured(255,0,0)endifif setupoutc and dentro1 thenstoploss1 = 0//trailstopc = 0shortalpha=0dentro1 = 0drawarrowup(barindex,low-offset)coloured(210,0,0)endif////////////////////////////////////Presentacionreturn med6 as "media6", med70 as"media70", trailstopl as"stoplargo" style(line,3) coloured("green",longalpha),trailstopc as "stopcorto" style(line,3) coloured("orange",shortalpha)12/16/2022 at 12:11 PM #205884 -
AuthorPosts
Find exclusive trading pro-tools on