La estrategia de doble ATR es una estrategia de negociación de corto plazo basada en el indicador de amplitud real media (ATR). Esta estrategia establece dos líneas de stop loss simultáneamente, una línea ATR rápida y otra lenta, para determinar entradas y salidas en función de la intersección de las dos líneas de stop loss. La estrategia es simple y fácil de entender, responde rápidamente y es adecuada para mercados con alta volatilidad.
La estrategia utiliza principalmente los indicadores de ATR para establecer dos líneas de stop loss. Una es la línea de ATR rápida, con ciclos de ATR cortos, multiplicados por pequeños y reactivos rápidamente; la otra es la línea de ATR lenta, con ciclos de ATR largos y multiplicados por grandes, que actúa como filtro. Cuando la línea de ATR rápida atraviesa la línea de ATR lenta, se genera una señal de compra; cuando la línea de ATR rápida atraviesa la línea de ATR lenta, se produce una señal de venta.
La lógica de operación específica es: calcular la línea ATR rápida y la línea ATR lenta; el precio de la línea rápida es mayor que el de la línea lenta y se detiene con la cola de la línea rápida, de lo contrario se detiene con la cola de la línea lenta. Los colores de Kline indican la línea de stop loss actualmente en uso, el verde y el azul indican el stop loss de la línea rápida, el rojo y el amarillo indican el stop loss de la línea lenta. Cuando el precio del mercado toca la línea de stop loss, se sale.
Las estrategias de doble ATR con pérdida de cola tienen las siguientes ventajas:
La estrategia también tiene algunos riesgos:
Estos riesgos pueden reducirse mediante la optimización del ciclo ATR, el ajuste de los multiplicadores ATR, en combinación con otros métodos de filtrado de indicadores.
Las direcciones para optimizar aún más la estrategia de doble ATR de pérdida de cola incluyen:
Las estrategias de doble ATR de cola de stop loss son fáciles de entender en general, especialmente para escenarios de alta volatilidad, y pueden controlar el riesgo de manera efectiva. También hay un gran espacio de optimización, que se puede mejorar mediante la modificación de parámetros, la incorporación de filtros y otros métodos. Es una estrategia de corta línea recomendable.
/*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")