Estrategia de seguimiento de tendencias ATR con bandas de Bollinger

BB SMA ATR
Fecha de creación: 2024-05-15 10:50:14 Última modificación: 2024-05-15 10:50:14
Copiar: 3 Número de Visitas: 721
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias ATR con bandas de Bollinger

Descripción general

La estrategia se basa en el indicador de la banda de Brin y el ATR, que captura el rango de fluctuación de los precios a través de la banda de Brin, utiliza la ruptura de la banda de Brin en la vía descendente como señal de posición, y utiliza el ATR como parada móvil, y finalmente, el precio se rompe a la media móvil simple como señal de posición baja. La estrategia trata de capturar la tendencia, construir posiciones siguiendo la dirección de la tendencia y cerrar las posiciones en caso de reversión de la tendencia.

Principio de estrategia

  1. Cálculo de la banda de Brin: se utiliza el precio de cierre para calcular el promedio móvil simple (SMA) como la media de la banda de Brin, y se calcula en función de la tasa de fluctuación (diferencia estándar).
  2. Cálculo del ATR: El ATR se calcula utilizando el promedio móvil de la amplitud de onda real (TR) como base para el stop loss móvil.
  3. Generar señales de transacción: generar señales de plus cuando el precio desciende por debajo de la banda de Brin y generar señales de toque cuando el precio se eleva por encima de la banda de Brin; generar señales de plus cuando el precio sube por encima de la parada móvil ATR y generar señales de toque cuando el precio desciende por encima de la parada móvil ATR.
  4. Posiciones cerradas: cuando se hace una posición múltiple, si el precio se eleva por encima de la media móvil simple, se eleva; cuando se hace una posición cerrada, si el precio se eleva por encima de la media móvil simple, se desvanece.

Ventajas estratégicas

  1. Seguimiento de tendencias: captura de tendencias a través de la banda de Brin y el ATR móvil de stop loss, adaptándose a diferentes entornos del mercado.
  2. Detener en tiempo real: el uso de ATR como un detener móvil, se puede ajustar dinámicamente la posición de parada en función de la volatilidad del mercado, controlar el riesgo.
  3. Sencilla y fácil de usar: lógica de la estrategia clara, pocos parámetros, fácil de entender y aplicar.

Riesgo estratégico

  1. Sensibilidad a los parámetros: La elección de los parámetros de la banda de Brimstone y el ATR puede afectar el rendimiento de la estrategia, por lo que se debe optimizar según los diferentes mercados y variedades.
  2. Mercado de turbulencias: En un entorno de mercado de turbulencias, las señales de intercambio frecuentes pueden conducir a un exceso de transacciones y costos.
  3. Inversión de la tendencia: cuando la tendencia se invierte, la estrategia puede generar una mayor retroceso.

Dirección de optimización de la estrategia

  1. Optimización de parámetros: Optimización de los parámetros de la banda de Brin y ATR para encontrar la combinación óptima de parámetros para diferentes mercados y variedades.
  2. Filtros: añade otros indicadores técnicos o patrones de comportamiento de precios como filtros para reducir los errores y mejorar la calidad de la señal.
  3. Gestión de posiciones: Ajuste dinámico de posiciones en función de la volatilidad del mercado o el riesgo de la cuenta, para mejorar la eficiencia de la utilización de fondos y la relación de riesgo de ganancias.

Resumir

Las estrategias de seguimiento de tendencias ATR de la banda de Brin capturan la tendencia a través de la banda de Brin y los indicadores ATR. Tienen las ventajas de seguir la tendencia, detener los pérdidas a tiempo y ser fáciles de usar. Pero también existen riesgos como la sensibilidad a los parámetros, el mercado de las sacudidas y la reversión de la tendencia.

Código Fuente de la Estrategia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands and ATR Strategy", overlay=true)

// Veri Çekme
symbol = "AAPL"
timeframe = "D"
src = close

// Bollinger Bantları Hesaplama
len = 20
mult = 2
sum1 = 0.0, sum2 = 0.0
for i = 0 to len - 1
    sum1 += src[i]
basis = sum1 / len
for i = 0 to len - 1
    diff = src[i] - basis
    sum2 += diff * diff
dev = math.sqrt(sum2 / len)
upper_band = basis + dev * mult
lower_band = basis - dev * mult

// ATR Hesaplama
atr_period = input(10, title="ATR Period")
atr_value = 0.0
for i = 0 to atr_period - 1
    atr_value += math.abs(src[i] - src[i + 1])
atr_value /= atr_period
loss = input(1, title="Key Value (Sensitivity)")
atr_trailing_stop = src[1]
if src > atr_trailing_stop[1]
    atr_trailing_stop := math.max(atr_trailing_stop[1], src - loss * atr_value)
else if src < atr_trailing_stop[1]
    atr_trailing_stop := math.min(atr_trailing_stop[1], src + loss * atr_value)
else
    atr_trailing_stop := src - loss * atr_value

// Sinyal Üretme
long_condition  = src < lower_band and src[1] >= lower_band[1]
short_condition = src > upper_band and src[1] <= upper_band[1]
close_long  = src > basis
close_short = src < basis
buy_signal = src > atr_trailing_stop[1] and src[1] <= atr_trailing_stop[1]
sell_signal = src < atr_trailing_stop[1] and src[1] >= atr_trailing_stop[1]

if (long_condition)
    strategy.entry("Long", strategy.long, comment="Long Signal")
if (short_condition)
    strategy.entry("Short", strategy.short, comment="Short Signal")
if (close_long)
    strategy.close("Long", comment="Close Long")
if (close_short)
    strategy.close("Short", comment="Close Short")
if (buy_signal)
    strategy.entry("Long", strategy.long, comment="Buy Signal")
if (sell_signal)
    strategy.entry("Short", strategy.short, comment="Sell Signal")

// Çizim
plot(upper_band, color=#0000FF, linewidth=2, title="Upper Band")
plot(lower_band, color=#0000FF, linewidth=2, title="Lower Band")
plot(basis, color=#808080, linewidth=2, title="SMA")
plot(atr_trailing_stop, color=#FFA500, linewidth=2, title="ATR Trailing Stop")
plot(src, color=#FFA500, linewidth=2, title="Price")

// Sinyal İşaretleri
plotshape(long_condition, style=shape.arrowup, color=#00FF00, location=location.belowbar, size=size.small, title="Long Signal")
plotshape(short_condition, style=shape.arrowdown, color=#FF0000, location=location.abovebar, size=size.small, title="Short Signal")
plotshape(buy_signal, style=shape.diamond, color=#00FF00, location=location.belowbar, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.diamond, color=#FF0000, location=location.abovebar, size=size.small, title="Sell Signal")