Estrategia de negociación de ruptura de bandas de Bollinger

El autor:¿ Qué pasa?, fecha: 2024-02-21 11:35:14
Las etiquetas:

img

Resumen general

Esta estrategia está diseñada basándose en el indicador de Bollinger Bands. Va largo cuando el precio rompe la banda superior y va corto cuando el precio rompe la banda inferior. Pertenece a la estrategia de tendencia siguiente.

Estrategia lógica

  1. Calcular las bandas media, superior e inferior de las bandas de Bollinger
  2. Cuando el precio de cierre rompe la banda superior, ir largo
  3. Cuando el precio de cierre rompe la banda inferior, sea corto
  4. Regla de salida: cierre de posición larga cuando el precio rompe la banda media, cierre de posición corta cuando el precio rompe la banda media

Esta estrategia utiliza bandas de Bollinger para determinar el rango de fluctuación y la dirección de tendencia del mercado. Cuando el precio rompe las bandas superiores o inferiores de las bandas de Bollinger, se considera como una señal de inversión de tendencia para la entrada. El área alrededor de la banda media se utiliza como la posición de stop loss.

Análisis de ventajas

  1. Utilice el indicador Bollinger Bands para determinar la tendencia del mercado y los niveles de soporte/resistencia
  2. Probabilidad alta de ruptura de las bandas de Bollinger
  3. Normas claras de entrada y salida

Análisis de riesgos

  1. El riesgo de falsas señales de ruptura de las bandas de Bollinger, que podrían ser fluctuaciones de precios a corto plazo
  2. Mayor stop loss cuando los precios oscilan enormemente

Soluciones:

  1. Combinar con otros indicadores para confirmar la tendencia
  2. Ajustar los parámetros para ampliar el rango de bandas de Bollinger

Direcciones de optimización

  1. Combinar con indicadores de tendencia para evitar operaciones inversas innecesarias
  2. Ajuste dinámico de los parámetros de Bollinger Bands para optimizar el tamaño del parámetro

Resumen de las actividades

Esta estrategia utiliza el indicador de Bollinger Bands para determinar la tendencia de precios y los niveles de soporte / resistencia. Ingresa en los puntos de ruptura de Bollinger Bands y establece stop loss en la banda media. La lógica de la estrategia es simple y clara, fácil de implementar. Se puede optimizar ajustando parámetros o combinando con otros indicadores, funciona bien en mercados de tendencia.


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("FFFDBTC", overlay=true,initial_capital = 100,commission_type =strategy.commission.percent,commission_value= 0.15,default_qty_value = 100,default_qty_type = strategy.percent_of_equity)
// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input.int(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input.int(defval=1972, title="From Year", minval=1972)
ToMonth = input.int(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input.int(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input.int(defval=9999, title="To Year", minval=2010)

// === FUNCTION EXAMPLE === 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() => true
// Definindo tamanho da posição
position_size = strategy.equity
// Definir parâmetros das Bandas de Bollinger
length = input.int(51, "Comprimento")
mult = input.float(1.1, "Multiplicador")

// Calcular as Bandas de Bollinger
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
// Definir condições de entrada e saída
entrada_na_venda = low < lower
saida_da_venda = high > lower and strategy.position_size < 0
entrada_na_compra = high > upper
saida_da_compra = low < upper and strategy.position_size > 0
shortCondition = close[1] < lower[1] and close > lower and close < basis
longCondition = close[1] > upper[1] and close < upper and close > basis

// Entrar na posição longa se a condição longCondition for verdadeira
if ((entrada_na_compra) and window() )
    strategy.entry("Buy", strategy.long)
//saida da compra
if (saida_da_compra)
    strategy.close("Buy")
//entrada na venda
if ((entrada_na_venda) and window() )
    strategy.entry("Sell", strategy.short)
//saida da venda
if (saida_da_venda)
    strategy.close("Sell")
if ((longCondition) and window())
    strategy.entry("Long", strategy.long)

// Entrar na posição curta se a condição shortCondition for verdadeira
if ((shortCondition) and window())
    strategy.entry("Short", strategy.short)

// Definir a saída da posição

strategy.exit("Exit_Long", "Long", stop=ta.sma(close, length), when = close >= basis)
strategy.exit("Exit_Short", "Short", stop=ta.sma(close, length), when = close <= basis)

// Desenhar as Bandas de Bollinger no gráfico
plot(basis, "Média", color=#2962FF, linewidth=2)
plot(upper, "Upper", color=#BEBEBE, linewidth=2)
plot(lower, "Lower", color=#BEBEBE, linewidth=2)

Más.