En la carga de los recursos... Cargando...

Tendencia de Bollinger Band ATR Siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-05-15 10:50:14
Las etiquetas:- ¿ Qué?La SMAEl ATR

img

Resumen general

Esta estrategia se basa en las bandas de Bollinger y el indicador ATR. Captura las fluctuaciones de precios utilizando las bandas de Bollinger, utiliza las rupturas de precios por encima o por debajo de las bandas como señales de entrada y emplea ATR como un stop loss trasero. La estrategia cierra posiciones cuando el precio cruza el promedio móvil simple.

Principios de estrategia

  1. Calcular bandas de Bollinger: utilizar el precio de cierre para calcular la media móvil simple (SMA) como banda media, y calcular las bandas superior e inferior en función de la volatilidad (desviación estándar).
  2. Calcular el ATR: utilizar la media móvil del rango verdadero (TR) para calcular el ATR como base para la pérdida de detención posterior.
  3. Generar señales comerciales: Cuando el precio se rompe por debajo de la banda inferior de Bollinger, generar una señal larga; cuando se rompe por encima de la banda superior de Bollinger, generar una señal corta. Cuando el precio se rompe por encima de la parada de seguimiento ATR, generar una señal larga; cuando se rompe por debajo de la parada de seguimiento ATR, generar una señal corta.
  4. Posiciones cerradas: para las posiciones largas, si el precio supera la media móvil simple, se cierra la posición larga; para las posiciones cortas, si el precio supera la media móvil simple, se cierra la posición corta.

Ventajas estratégicas

  1. Seguimiento de tendencias: Captura las tendencias de los mercados mediante el uso de bandas de Bollinger y ATR trailing stop, adaptándose a diferentes entornos de mercado.
  2. Posiciones de suspensión de pérdidas en tiempo oportuno: utiliza el ATR como una posición de suspensión de pérdidas posterior, ajustando dinámicamente la posición de suspensión de pérdidas según la volatilidad del mercado para controlar el riesgo.
  3. Sencilla y fácil de usar: La lógica de la estrategia es clara, con pocos parámetros, lo que hace que sea fácil de entender y aplicar.

Riesgos estratégicos

  1. Sensibilidad de parámetros: el rendimiento de la estrategia se ve afectado por la elección de parámetros para las bandas de Bollinger y el ATR, lo que requiere una optimización para diferentes mercados e instrumentos.
  2. Mercados agitados: en condiciones de mercado agitadas, las señales de negociación frecuentes pueden conducir a una frecuencia y costos de negociación excesivos.
  3. Inversión de tendencia: cuando una tendencia se invierte, la estrategia puede experimentar importantes bajadas.

Direcciones para la optimización de la estrategia

  1. Optimización de parámetros: Optimizar los parámetros de las bandas de Bollinger y ATR para encontrar la mejor combinación para diferentes mercados e instrumentos.
  2. Filtros: añadir otros indicadores técnicos o patrones de comportamiento de precios como filtros para reducir los errores de juicio y mejorar la calidad de la señal.
  3. Gestión de posiciones: ajuste dinámico de las posiciones en función de la volatilidad del mercado o del riesgo de la cuenta para mejorar la eficiencia de la utilización del capital y los rendimientos ajustados al riesgo.

Resumen de las actividades

La estrategia Bollinger Band ATR Trend Following captura los mercados de tendencia utilizando Bollinger Bands y el indicador ATR. Tiene las ventajas de seguir la tendencia, detener la pérdida oportuna y la simplicidad. Sin embargo, también enfrenta riesgos como sensibilidad de parámetros, mercados agitados e inversiones de tendencia.


/*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")

Relacionados

Más.