Gestión dinámica de stops y de toma de beneficios a partir del indicador ATR.
El ATR(N) o Average True Range es un indicador que determina la volatilidad de mercado.
Se interpreta como la amplitud media de la cotización del instrumento observado en las últimas N observaciones.
Si aplicamos el indicador ATR (14) al EUR/USD en una grafica horaria (ver a continuación) obtenemos un valor del ATR de 0,062.
Este valor significa que en las últimas 14 horas, la cotización del EUR/USD se ha movido con una volatilidad horaria de 62 pips pudiendo por lo tanto alcanzar los valores :
- Banda alta => close + ATR => 1.3521 + 62 pips = 1.3583
- Banda baja => close – ATR => 1.3521 – 62 pips = 1.3459
Sobre esta definición, se entiende fácilmente las razones por las que este indicador es interesante tanto para realizar una gestión dinámica de stops como para realizar una gestión dinámica de tomas de beneficio.
Si tomáramos limites fijos tanto para la gestión de stops o para la toma de beneficios cometeríamos un error porque no tomaríamos en cuenta el “estado” del mercado, su volatilidad.
- En un mercado poco volátil el stop de una posición debe ser menor que en un mercado volátil
- En un mercado volátil la toma de beneficios debe realizarse con limites superiores que en un mercado poco volátil
La idea por lo tanto en ambos casos es aplicar niveles dinámicos a partir de un multiplicador del ATR de la siguiente manera.
STOP
if position = long then
stop = close – 2 x ATR
end
if position = short then
stop = close + 2 x ATR
end
TOMA BENEFICIOS
if PositionProfit > 3 x ATR then exit position
Cuando tengo una posición abierta, me parece también interesante poder visualizar el nivel de beneficios en términos de ATR.
Permite obtener una visión de mi beneficio en términos de volatilidad y me puede ayudar (en caso de trading manual) en tomar la decisión de cierre de una posición.
Un beneficio superior a 8 ATR se puede considerar como un beneficio muy alto.
Se recomienda cerrar posiciones a partir de los niveles de 4 ATR.
Adjunto el código Tradestation que permite visualizar el nivel de ganancia ATR.
if MP = 1 or MP = -1 then begin
//ATR Profit
ID = Text_New(Date, Time, Low,NumToStr(AbsValue(ContractProfit/(ATRData * 100000)),0));
end;





