Estrategia de detención trasera ATR doble

El autor:¿ Qué pasa?, Fecha: 2024-01-31 17:10:32
Las etiquetas:

img

Resumen general

La estrategia de doble ATR Trailing Stop es una estrategia de negociación a corto plazo basada en el indicador Average True Range (ATR). La estrategia establece dos líneas de stop loss, línea ATR rápida y línea ATR lenta, al mismo tiempo, y determina la entrada y salida basada en el cruce de las dos líneas.

Principio de la estrategia

El núcleo de esta estrategia es el uso de dos líneas de ATR stop loss. Una es la línea de ATR rápida con período corto y pequeño multiplicador para una reacción rápida. La otra es la línea de ATR lenta con período más largo y un multiplicador más grande para la filtración. Cuando la línea de ATR rápida cruza por encima de la línea de ATR lenta, genera una señal de compra. Cuando la línea de ATR rápida cruza por debajo de la línea de ATR lenta, genera una señal de venta.

La lógica específica es: calcular la línea ATR rápida y la línea ATR lenta. Cuando el precio está por encima de la línea lenta, use la línea rápida para rastrear la stop loss. De lo contrario, use la línea lenta para rastrear la stop loss. El color de Kline representa la línea de stop loss actual. El verde y el azul significan usar la línea rápida. El rojo y el amarillo significan usar la línea lenta. Salir cuando el precio del mercado toca las líneas de stop loss.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Lógica simple y clara, fácil de entender e implementar.
  2. Respuesta rápida a los cambios del mercado, adecuada para un mercado de alta volatilidad.
  3. Los controles de pérdidas de detención ATR dobles corren riesgos de manera efectiva.
  4. El indicador ATR es paramétrico para ajustar el rango de pérdida de parada.
  5. El color visual de Kline indica claramente la situación de stop loss.

Análisis de riesgos

También hay algunos riesgos:

  1. Sujeto a exceso de negociación.
  2. El ATR tiene un mal ajuste de la curva, puede amplificar las pérdidas.
  3. No puede filtrar eficazmente los mercados laterales y de tendencia.

Podemos reducir los riesgos optimizando el período de ATR, ajustando el multiplicador de ATR, combinando otros indicadores para la filtración, etc.

Dirección de optimización

Las direcciones de optimización son:

  1. Optimice los parámetros de ATR para un mejor rango de pérdida de parada.
  2. Añadir indicadores de filtro para evitar operaciones no válidas, como el MA.
  3. Añadir condiciones abiertas para evitar errores, por ejemplo, añadir indicadores de volumen.
  4. Añadir salidas para el período de retención para evitar el exceso de negociación.

Conclusión

La estrategia de doble ATR Trailing Stop es fácil de entender e implementar, especialmente adecuada para escenarios de alta volatilidad, y puede controlar los riesgos de manera efectiva.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ceyhun

//@version=4
strategy("ATR Trailing Stop Strategy by ceyhun", overlay=true)

/////////notes////////////////////////////////////////
// This is based on the ATR trailing stop indicator //
// width addition of two levels of stops and        //
// different interpretation.                        //
// This is a fast-reacting system and is better     //
// suited for higher volatility markets             //
//////////////////////////////////////////////////////

SC = input(close, "Source", input.source)

// Fast Trail //
AP1 = input(5, "Fast ATR period", input.integer)  // ATR Period
AF1 = input(0.5, "Fast ATR multiplier", input.float)  // ATR Factor
SL1 = AF1 * atr(AP1)  // Stop Loss
Trail1 = 0.0
Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1)))

// Slow Trail //
AP2 = input(10, "Slow ATR perod", input.integer)  // ATR Period
AF2 = input(2, "Slow ATR multiplier", input.float)  // ATR Factor
SL2 = AF2 * atr(AP2)  // Stop Loss
Trail2 = 0.0
Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0), min(nz(Trail2[1], 0), SC + SL2), iff(SC > nz(Trail2[1], 0), SC - SL2, SC + SL2)))

// Bar color for trade signal //
Green = Trail1 > Trail2 and close > Trail2 and low > Trail2
Blue = Trail1 > Trail2 and close > Trail2 and low < Trail2
Red = Trail2 > Trail1 and close < Trail2 and high < Trail2
Yellow = Trail2 > Trail1 and close < Trail2 and high > Trail2

// Signals //
Bull = barssince(Green) < barssince(Red)
Bear = barssince(Red) < barssince(Green)

Buy = crossover(Trail1, Trail2)
Sell = crossunder(Trail1, Trail2)

TS1 = plot(Trail1, "Fast Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.blue : color.yellow, linewidth=2)
TS2 = plot(Trail2, "Slow Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.green : color.red, linewidth=2)
fill(TS1, TS2, Bull ? color.green : color.red, transp=90)

plotcolor = input(true, "Paint color on chart", input.bool)

bcl = iff(plotcolor == 1, Blue ? color.blue : Green ? color.lime : Yellow ? color.yellow : Red ? color.red : color.white, na)
barcolor(bcl)

if Buy
    strategy.entry("Buy", strategy.long, comment="Buy")
    
if Sell
    strategy.entry("Sell", strategy.short, comment="Sell")



Más.