Buenos dias, me gustaria que me ayudaran en crear un indicador que te señalice la maxima distancia entre la sar y la sar anterior de una tendencia de la sar y te lo señalice con una flecha, adjunto una imagen para que comprueben lo que quiero y el indicador para que me ayuden. Un saludo
psar= SAR[0.02,0.02,0.2]
A = ABS(psar[1] - psar)
B = ABS(psar - psar[1])
IF psar > close then
DrawText("#A#",BarIndex,PSAR+60,dialog,bold,10)
elsif psar < close then
DrawText("#B#",BarIndex,PSAR-60,dialog,bold,10)
ENDIF
RETURN
463.52614 es la diferencia entre qué valores?
es la diferencia entre la sar actual y la sar anterior
Ahí tienes:
psar= SAR[0.02,0.02,0.2]
A = ABS(psar - psar[1])
IF psar > close then
if psar[1] < close[1]THEN
Distancia = 0
ELSE
Distancia = max(Distancia, A)
IF (Distancia > Distancia[1]) AND (Distancia[1] <> 0) THEN
DrawText("↓",BarIndex,PSAR+30,dialog,bold,30) coloured("Red",255)
ENDIF
ENDIF
DrawText("#A#",BarIndex,PSAR+60,dialog,bold,10)
elsif psar < close then
if psar[1] > close[1]THEN
Distancia = 0
ELSE
Distancia = max(Distancia, A)
IF (Distancia > Distancia[1]) AND (Distancia[1] <> 0) THEN
DrawText("↑",BarIndex,PSAR-30,dialog,bold,30) coloured("Green",255)
ENDIF
ENDIF
DrawText("#A#",BarIndex,PSAR-60,dialog,bold,10)
ENDIF
RETURN //psar AS "Sar"
y como puedo hacer para que solo me dibuje una flecha en el maximo de las distancias por tendencia de la parabolica sar, es decir que siempre señale la maxima segun van apareciendo distancias y cuando cambien la tendencia señale la siguiente maxima distancia. Un saludo
Puede utilizar esta versión, pero siempre se trazará solo en la última aparición:
DEFPARAM DrawOnLastBarOnly = true
ONCE r = 0
ONCE g = 0
ONCE b = 0
ONCE t = 255
ONCE p = 0
psar= SAR[0.02,0.02,0.2]
A = ABS(psar - psar[1])
IF psar > close then
if psar[1] < close[1]THEN
Distancia = 0
ELSE
Distancia = max(Distancia, A)
IF (Distancia > Distancia[1]) AND (Distancia[1] <> 0) THEN
myBAR = BarIndex
myPSAR = PSAR + 30
r = 255
g = 0
p = 1
ENDIF
ENDIF
elsif psar < close then
if psar[1] > close[1]THEN
Distancia = 0
ELSE
Distancia = max(Distancia, A)
IF (Distancia > Distancia[1]) AND (Distancia[1] <> 0) THEN
myBAR = BarIndex
myPSAR = PSAR - 30
r = 0
g = 255
p = -1
ENDIF
ENDIF
ENDIF
IF p > 0 THEN
DrawText("↓",myBAR,myPSAR,dialog,bold,30) coloured(r,g,b,t)
DrawText("#A#",myBAR,myPSAR+30,dialog,bold,10)
ELSIF p < 0 THEN
DrawText("↑",myBAR,myPSAR,dialog,bold,30) coloured(r,g,b,t)
DrawText("#A#",myBAR,myPSAR-30,dialog,bold,10)
ENDIF
RETURN //psar AS "Sar"
Se podría hacer que no se señale la primera cambio de tendencia de la sar para no ver esa distancia ni flecha solo que cuente a partir de la primera sar. Un saludo
¿Puedes darme un ejemplo?
Claro, esta imagen que me enviaste con el codigo pues que el codigo no cuente la primera sar de la tendencia para que no señale tanta distancia ni el contador ni las flechas es decir que no aparezca nada nunca que empiece a contar desde la segunda sar
Esto no se imprime en la primera barra después del cambio:
//DEFPARAM DrawOnLastBarOnly = true
ONCE r = 0
ONCE g = 0
ONCE b = 0
ONCE t = 255
ONCE p = 0
psar= SAR[0.02,0.02,0.2]
A = ABS(psar - psar[1])
p = 0
IF psar > close then
if psar[1] < close[1]THEN
Distancia = 0
ELSE
Distancia = max(Distancia, A)
IF (Distancia > Distancia[1]) AND (Distancia[1] <> 0) THEN
myBAR = BarIndex
myPSAR = PSAR + 30
r = 255
g = 0
p = 1
ENDIF
ENDIF
elsif psar < close then
if psar[1] > close[1]THEN
Distancia = 0
ELSE
Distancia = max(Distancia, A)
IF (Distancia > Distancia[1]) AND (Distancia[1] <> 0) THEN
myBAR = BarIndex
myPSAR = PSAR - 30
r = 0
g = 255
p = -1
ENDIF
ENDIF
ENDIF
IF p > 0 THEN
DrawText("↓",myBAR,myPSAR,dialog,bold,30) coloured(r,g,b,t)
DrawText("#A#",myBAR,myPSAR+30,dialog,bold,10) //coloured(r,g,b,t)
ELSIF p < 0 THEN
DrawText("↑",myBAR,myPSAR,dialog,bold,30) coloured(r,g,b,t)
DrawText("#A#",myBAR,myPSAR-30,dialog,bold,10) //coloured(r,g,b,t)
ENDIF
RETURN psar AS "Sar"
Lo solucione al final de otra manera. La duda que me surge es como puedo hacer que solo se dibuje las distancia pero de la tendencia actual de la sar y que cuando el precio rebase tanto para alcista como para bajista la sar vuelva a empezar a contar las distancias. Un saludo
psar = SAR[0.02,0.02,0.2]
A = ABS(psar - psar[1])
IF psar > close and psar[1] > close[1] then
DrawText("#A#",BarIndex[25],0,dialog,bold,16)COLOURED(0,0,0)
ELSIF psar < close and psar[1] < close[1] then
DrawText("#A#",BarIndex[25],0,dialog,bold,16)COLOURED(0,0,0)
ELSE
DrawText("0",BarIndex[25],0,dialog,bold,16)COLOURED(0,0,0)
ENDIF
RETURN a as "distanciasrestantes:)" COLOURED(0,0,0)
No entiendo la pregunta, ya calculaste la distancia entre el SAR actual y el anterior, ¿qué distancia necesitas?
La distancia es la misma lo unico que quiero es que solo me cuente de la tendencia actual de la sar y cuando cambie la tendencia se borre todo y empiece de 0 el contador
Lo tengo. Tendré que reescribirlo usando matrices, por lo que pasará algún tiempo antes de poder hacerlo.
De acuerdo, quedo a la espera de eso. Un saludo