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.
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.
Las ventajas de esta estrategia son:
También hay algunos riesgos:
Podemos reducir los riesgos optimizando el período de ATR, ajustando el multiplicador de ATR, combinando otros indicadores para la filtración, etc.
Las direcciones de optimización son:
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")