Estrategia de stop loss dinámico con ATR dinámico


Fecha de creación: 2023-12-11 14:24:18 Última modificación: 2023-12-11 14:24:18
Copiar: 0 Número de Visitas: 755
1
Seguir
1621
Seguidores

Estrategia de stop loss dinámico con ATR dinámico

Descripción general

Esta estrategia es un mecanismo de seguimiento de pérdidas dinámico basado en el indicador ATR, que permite ajustar la posición de pérdidas en tiempo real para obtener mayores ganancias al mismo tiempo que garantiza la pérdida.

Principio de estrategia

La estrategia utiliza el ATR rápido del ciclo 5 y el ATR lento del ciclo 10 para construir un trazado de pérdidas de seguimiento dinámico de dos capas. Cuando el precio se mueve en la dirección favorable, la capa rápida inicia el seguimiento por primera vez, apretando la posición de parada; cuando el precio se reajusta a corto plazo, la posición de parada de la capa lenta evita la parada prematura.

En concreto, la distancia de parada de la capa rápida es de 0.5 veces el ATR de 5 ciclos, y la distancia de parada de la capa lenta es de 3 veces el ATR de 10 ciclos. Cuando la capa rápida se rompe hacia arriba, se genera una señal de compra; cuando la capa rápida se rompe hacia abajo, se genera una señal de venta. La línea de parada también se actualiza en tiempo real y se dibuja debajo de la curva de precios.

Análisis de las ventajas

La mayor ventaja de esta estrategia es que se puede ajustar dinámicamente la posición de parada para maximizar los beneficios, siempre que se garantice el alto. En comparación con la distancia de parada fija, la línea de parada ATR dinámica se puede ajustar según la volatilidad del mercado y reduce la probabilidad de que se active el alto.

Además, el diseño de ATR de dos capas puede equilibrar la sensibilidad de la parada. La capa rápida responde rápidamente, mientras que la capa lenta puede filtrar el ruido a corto plazo y evitar la parada prematura.

Análisis de riesgos

El principal riesgo de esta estrategia reside en si la configuración de la distancia de pérdida es razonable. Si el multiplicador de ATR se configura demasiado grande, la amplitud de pérdida no seguirá el ritmo de los precios. Si el multiplicador de ATR es demasiado pequeño, es susceptible a la interrupción por ruido a corto plazo. Por lo tanto, es necesario ajustar los parámetros según las características de las diferentes variedades.

Además, en un escenario de liquidación, el ATR es más pequeño, está más cerca de la línea de pérdida y es más susceptible a la pérdida frecuente. Por lo tanto, la estrategia es más adecuada para variedades con cierta volatilidad.

Dirección de optimización

Se pueden probar diferentes combinaciones de parámetros de ATR para encontrar el equilibrio óptimo. Además, se puede considerar el uso en combinación con otros indicadores, como el indicador de tendencia para determinar la etapa del mercado, para ajustar dinámicamente el tamaño del múltiplo ATR.

También se puede estudiar la posibilidad de sustituir el indicador ATR. Cambiar el ATR por valores de indicadores como DKVOL, HRANGE o ATR por ciento, puede obtener un mejor efecto de detener los daños.

Resumir

Esta estrategia, basada en el indicador ATR, diseña un mecanismo de seguimiento dinámico de dos niveles, que permite obtener mayores ganancias y evitar el exceso de pérdidas. Es adecuada para usuarios con altos requisitos de pérdidas. La estrategia puede ajustar los parámetros de forma flexible según las características del mercado y la variedad, para lograr un óptimo efecto de pérdidas.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@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 period", input.integer)  // ATR Period
AF2 = input(3, "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)

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, display=display.none)
TS2 = plot(Trail2, "Slow Trail", style=plot.style_line, color=Trail1 > Trail2 ? color.green : color.red, linewidth=2)
fill(TS1, TS2, Bull ? color.new(color.green, 90) : color.new(color.red, 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.close("Buy")