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

SMA
Fecha de creación: 2024-05-24 17:54:47 Última modificación: 2024-05-24 17:54:47
Copiar: 0 Número de Visitas: 599
1
Seguir
1617
Seguidores

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

Descripción general

La estrategia utiliza los indicadores de Bollinger Bands, para cerrar cuando el precio toque la vía superior, hacer más cuando toque la vía inferior, y establecer paradas dinámicas, cuando la posición alcanza el 1% de ganancias. La idea central de la estrategia es que los precios siempre fluctúan dentro de las bandas de Bollinger, con la característica de regresar el valor promedio, por lo que se puede realizar una operación inversa para obtener ganancias por diferencia de precio cuando los precios se desvían demasiado de la línea media móvil.

Principio de estrategia

  1. Calculación de las medias móviles y la diferencia estándar: se utiliza la media móvil simple (SMA) para calcular la media móvil de los precios de cierre (base), y luego se calcula la diferencia estándar de los precios de cierre con respecto a las medias móviles (dev).
  2. Cálculo de la vía superior y la vía inferior: la vía superior es base + dev *multiplier, subtractor ((lower) para base - dev *multiplicador, donde el multiplicador es el múltiplo de la amplitud de oscilación.
  3. Generar señales de transacción: generar señales múltiples cuando el precio de cierre se desvía y el precio de cierre actual es menor que el precio de apertura; generar señales de brecha cuando el precio de cierre se desvía y el precio de cierre actual es mayor que el precio de apertura.
  4. Detener el movimiento: después de abrir una posición, el precio de parada se calcula de acuerdo con el precio de apertura y el porcentaje de parada (takeProfitPercentage), y se cierra la posición cuando el precio alcanza el precio de parada.
  5. Visualización: trazar bandas de Bollinger, promedios móviles y señales de comercio en gráficos.

Ventajas estratégicas

  1. Simple y eficaz: La estrategia es lógica y clara, utiliza un solo indicador técnico, y es fácil de entender e implementar.
  2. Amplia aplicabilidad: Las bandas de Bollinger son universales y pueden usarse en una variedad de diferentes indicadores de negociación y mercados.
  3. Detención dinámica: En comparación con la detención fija, la detención dinámica permite maximizar las ganancias de la cuenta de ganancias y controlar el riesgo.
  4. Aprovechar la tendencia: En una tendencia, cuando el precio toca la vía superior o inferior, suele seguir en la dirección original durante un tiempo. Esta estrategia puede aprovechar la oportunidad de esta tendencia.

Riesgo estratégico

  1. Desempeño en mercados de crisis: cuando el mercado está en una gran oscilación y los precios se rompen repetidamente dentro de la zona de Bollinger, la estrategia puede generar señales de negociación frecuentes, lo que lleva a un exceso de operaciones y un aumento en los costos de las comisiones.
  2. Un retroceso más profundo en la tendencia: si la tendencia dura mucho tiempo y los precios se desvían de la línea media a largo plazo, el retroceso puede ser más profundo debido a la adversidad de la estrategia.
  3. Dificultad para elegir los parámetros: los parámetros de la banda de Bollinger (como la longitud, el múltiplo) tienen un gran impacto en el rendimiento de la estrategia, pero no son los parámetros óptimos para todos.

Dirección de optimización de la estrategia

  1. Combinado con el juicio de la tendencia: en la estrategia se incluye un indicador de juicio de la tendencia (como la media móvil), se puede suspender el comercio en un contexto de tendencia, o el comercio en curso.
  2. Optimización del Stop Loss: Se puede ajustar dinámicamente el Stop Loss en función de los indicadores de volatilidad como el ATR, con el objetivo de obtener una mejor relación de riesgo-beneficio.
  3. Combinación de múltiples factores: Considere el uso de la banda de Bollinger en combinación 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 básica: después de generar una señal de negociación, se puede realizar una segunda confirmación a través de datos básicos (como informes financieros, datos de la industria, etc.), lo que mejora la solidez de la estrategia.

Resumir

La estrategia utiliza las bandas de Bollinger para construir un sistema de negociación simple y eficaz, con el precio de contacto con el tren de subida y bajada como señal, mientras que el uso de la dinámica de control de riesgo de la parada. La estrategia de buen rendimiento en la tendencia, pero en el mercado de la agitación puede tener problemas con el comercio frecuente. Posteriormente, la estrategia puede ser perfeccionado a partir de la tendencia de juicio, detener la optimización de pérdidas, combinación de factores, filtración fundamental, etc., con el fin de obtener un rendimiento más sólido.

Código Fuente de la Estrategia
/*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))