Estrategia de stop loss de seguimiento de tendencias basada en la volatilidad de precios


Fecha de creación: 2023-12-01 17:53:36 Última modificación: 2023-12-01 17:53:36
Copiar: 6 Número de Visitas: 666
1
Seguir
1619
Seguidores

Estrategia de stop loss de seguimiento de tendencias basada en la volatilidad de precios

Descripción general

La estrategia es una estrategia de seguimiento de tendencias de stop loss basada en la volatilidad de los precios. Utiliza la amplitud de fluctuación real promedio (ATR) para establecer una línea de stop loss para las fluctuaciones de los precios. ATR refleja la volatilidad de los precios y el nivel de riesgo.

Principio de estrategia

La estrategia primero calcula el ATR, la amplitud real promedio de fluctuación durante un período determinado. Luego, en función de la dirección de la tendencia de precios actual, si es una tendencia alcista, se establece el límite de pérdida como el ATR de n veces menos el precio más alto actual; si es una tendencia descendente, el límite de pérdida es el ATR de n veces más el precio más bajo actual.

Cuando el precio cae por debajo de la línea de parada de la tendencia alcista o la línea de parada de la tendencia descendente, se determina que la tendencia ha cambiado. En este caso, la estrategia se detiene y se establece una nueva línea de parada de acuerdo con la nueva dirección de la tendencia.

En general, la estrategia tiene la capacidad de determinar con precisión el cambio de tendencia mediante el uso de la volatilidad de los precios para establecer una línea de stop loss. Cuando la tendencia cambia, el stop loss es oportuno y ayuda a la estrategia a tomar la dirección de la nueva tendencia.

Ventajas estratégicas

  • Utiliza las características de la volatilidad de los precios para determinar tendencias y capturar con precisión los puntos de inflexión
  • Detener pérdidas y cambiar posiciones a tiempo para reducir el riesgo de cambio de tendencia
  • Ajuste de parámetros con flexibilidad para controlar la distancia entre la línea de parada y las fluctuaciones de precios
  • Se puede ajustar según los parámetros específicos de la variedad, con una mayor adaptabilidad

Riesgo estratégico

  • Riesgo de error de juicio por una ruptura no válida. El precio puede sufrir una ruptura no válida que no se puede mantener, lo que lleva a un cambio de tendencia de error de juicio.
  • El ajuste de parámetros demasiado radicales puede aumentar la pérdida. Por ejemplo, un valor n demasiado grande puede provocar una pequeña sacudida cuando está demasiado cerca de la línea de pérdida.
  • Las variedades de baja volatilidad como las urrencies pueden tener un mal efecto de parada. Cuando el ATR es menor, la línea de parada está más cerca del precio.

Optimización de la estrategia

  • Se pueden introducir indicadores auxiliares, como volumen de transacciones o aceleración de las fluctuaciones, para evitar errores de juicio que invalidan las rupturas
  • Ajuste el valor de n según las características de las diferentes variedades para que la distancia de parada sea más adecuada
  • Los ciclos ATR también se pueden optimizar, seleccionando los parámetros de ciclo más adecuados para determinar la volatilidad de la diferencia de precios.

Resumir

La estrategia en general es una mejor implementación de algoritmos para establecer líneas de stop loss basadas en la volatilidad de los precios. Determina con mayor precisión el movimiento de los precios y es capaz de capturar los puntos de inflexión clave de la tendencia. Al mismo tiempo, ofrece un cierto espacio para ajustar los parámetros y es más adaptable. Como una estrategia de stop loss, es capaz de evitar eficazmente el riesgo de un cambio de tendencia, que vale la pena aplicar en el mercado real.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-30 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © laptevmaxim92

//@version=4
strategy("Volatility stop strategy", overlay=true)

length = input(20)
mult = input(2, step = 0.1)
utp = input(false, "Use take profit?")
pr = input(100, "Take profit pips")
usl = input(false, "Use stop loss?")
sl = input(100, "Stop loss pips")
fromday = input(01, defval=01, minval=01, maxval=31, title="From Day")
frommonth = input(01, defval=01, minval= 01, maxval=12, title="From Month")
fromyear = input(2000, minval=1900, maxval=2100, title="From Year")
today = input(31, defval=01, minval=01, maxval=31, title="To Day")
tomonth = input(12, defval=12, minval=01, maxval=12, title="To Month")
toyear = input(2039, minval=1900, maxval=2100, title="To Year")

use_date = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))

atr_ = atr(length)
max_ = 0.0
min_ = 0.0
max1 = 0.0
max1 := max(nz(max_[1]), close)
min1 = 0.0
min1 := min(nz(min_[1]), close)
vstop = 0.0
is_uptrend = false
is_uptrend_prev = false
is_uptrend_prev := nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? color.green : color.red, linewidth=2)

longCondition = is_uptrend
if (longCondition and use_date)
    strategy.entry("BUY", strategy.long)

shortCondition = not is_uptrend
if (shortCondition and use_date)
    strategy.entry("SELL", strategy.short)
    
if (utp and not usl)
    strategy.exit("TP", "BUY", profit = pr)
    strategy.exit("TP", "SELL", profit = pr)
    
if (usl and not utp)
    strategy.exit("SL", "BUY", loss = sl)
    strategy.exit("SL", "SELL", loss = sl)
    
if (usl and utp)
    strategy.exit("TP/SL", "BUY", loss = sl, profit = pr)
    strategy.exit("TP/SL", "SELL", loss = sl, profit = pr)