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

Estrategia dinámica de toma de ganancias con bandas de Bollinger

El autor:¿ Qué pasa?, Fecha: 2024-05-24 17:54:47
Las etiquetas:La SMA

img

Resumen general

Esta estrategia utiliza el indicador de Bollinger Bands para ir corto cuando el precio toca la banda superior y ir largo cuando toca la banda inferior. Establece un nivel dinámico de ganancia y cierra la posición cuando alcanza el 1% de ganancia. La idea central es que el precio siempre fluctúa dentro de las bandas de Bollinger y tiene una característica de inversión media, por lo que podemos tomar posiciones inversas cuando el precio se desvía demasiado del promedio móvil para capturar la diferencia de precio.

Principios de estrategia

  1. Calcular la media móvil y la desviación estándar: utilizar la media móvil simple (SMA) para calcular la media móvil del precio de cierre (base) y luego calcular la desviación estándar (dev) del precio de cierre en relación con el promedio móvil.
  2. Calcule las bandas superior e inferior: La banda superior es base + dev * multiplicador, y la banda inferior es base - dev * multiplicador, donde el multiplicador es un múltiplo de la amplitud de volatilidad.
  3. Generar señales de negociación: cuando el precio de cierre cruza por encima de la banda inferior y el cierre actual es menor que el de apertura, se genera una señal larga; cuando el precio de cierre cruza por debajo de la banda superior y el cierre actual es mayor que el de apertura, se genera una señal corta.
  4. Dinámica de toma de ganancias: después de abrir una posición, calcular el precio de toma de ganancias basado en el precio de entrada y el porcentaje de toma de ganancias.
  5. Visualización: Trace las bandas de Bollinger, la media móvil y las señales comerciales en el gráfico.

Ventajas estratégicas

  1. Sencilla y eficaz: la lógica de la estrategia es clara y utiliza un solo indicador técnico, lo que facilita su comprensión e implementación.
  2. Amplia aplicabilidad: Las bandas de Bollinger tienen una aplicabilidad universal y pueden utilizarse para diversos instrumentos y mercados de negociación.
  3. Dinámico tomar ganancias: En comparación con el fijo tomar ganancias, dinámico tomar ganancias puede maximizar la ganancia de las operaciones ganadoras mientras que el control del riesgo.
  4. Captura eficaz de tendencias: En los mercados de tendencias, después de que el precio toca la banda superior o inferior, por lo general continúa moviéndose en la dirección original durante algún tiempo.

Riesgos estratégicos

  1. Cuando el mercado está en amplias fluctuaciones y los precios rompen repetidamente las bandas de Bollinger, la estrategia puede generar señales comerciales frecuentes, lo que resulta en una negociación excesiva y un aumento de los costos de transacción.
  2. Retracements profundos en mercados de tendencia: si una tendencia dura durante mucho tiempo y los precios se desvían de la media móvil durante un período prolongado, la estrategia va en contra de la tendencia, lo que puede conducir a retracements profundos.
  3. Dificultad en la selección de parámetros: Los parámetros de las bandas de Bollinger (como la longitud y el multiplicador) tienen un impacto significativo en el rendimiento de la estrategia, pero no hay parámetros óptimos universalmente.

Direcciones para la optimización de la estrategia

  1. Incorporar análisis de tendencias: agregar indicadores de identificación de tendencias (como promedios móviles) a la estrategia.
  2. Optimización de la toma de ganancias y el stop loss: Ajuste dinámico de la toma de ganancias y el stop loss basado en indicadores de volatilidad como ATR para lograr una mejor relación riesgo-recompensa.
  3. Combinación de múltiples factores: Considere combinar las bandas de Bollinger con otros indicadores técnicos (como RSI, MACD, etc.) para mejorar la precisión de la señal y reducir las señales falsas.
  4. Filtración fundamental: después de generar señales comerciales, utilizar datos fundamentales (como informes financieros, datos de la industria, etc.) para la confirmación secundaria para mejorar la solidez de la estrategia.

Resumen de las actividades

Esta estrategia construye un sistema de negociación simple y efectivo utilizando bandas de Bollinger, tomando el precio que toca las bandas superior e inferior como señales, y adoptando la toma dinámica de ganancias para controlar el riesgo.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Future Price Prediction", overlay=true)

// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0

// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)

// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev

// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")

// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]

// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na

if longCondition
    longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
    shortTakeProfit := close * (1 - takeProfitPercentage / 100)

// Strateji Giriş ve Çıkış
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)

// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
    table.cell(data, 0, 0, "Current Price", text_color=color.white)
    table.cell(data, 1, 0, str.tostring(close))
    table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
    table.cell(data, 1, 1, str.tostring(basis))


Relacionados

Más.