Estrategia de negociación de choque de tendencia de Bollinger

El autor:¿ Qué pasa?, Fecha: 2023-11-23 10:48:58
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador de bandas de Bollinger para determinar la dirección de la tendencia del mercado, y toma operaciones contra tendencia cuando ocurre una inversión de tendencia.

Principio de la estrategia

Esta estrategia utiliza la banda media, la banda superior y la banda inferior de las bandas de Bollinger para determinar la dirección de la tendencia del mercado. La banda media es el promedio móvil exponencial de n períodos, mientras que la banda superior y la banda inferior son la banda media +2.3 desviación estándar y la banda media -2.3 desviación estándar respectivamente. Cuando el precio se rompe por debajo de la banda inferior, indica una tendencia alcista actual. Cuando el precio se rompe por encima de la banda superior, indica una tendencia bajista actual.

Además, la estrategia establece una media móvil simple de 200 períodos (SMA) como punto de referencia para el juicio de la tendencia a largo plazo. Las señales de negociación solo se activan cuando los indicadores BB y SMA coinciden en la misma dirección. Esto puede filtrar efectivamente algunas roturas falsas.

La lógica de negociación específica es la siguiente:

  1. Determinación de la tendencia alcista: BB banda superior > sma, banda media > sma, banda inferior >= sma
  2. Determinación de la tendencia a la baja: BB banda superior < sma, banda media < sma, banda inferior <= sma
  3. Condición larga: tendencia alcista + ruptura del precio BB banda baja
  4. Condición de salida: el precio rompe la banda superior BB
  5. Condición corta: tendencia bajista + ruptura del precio en la banda superior BB
  6. Condición de salida: el precio se rompe por debajo de la banda media de BB o rebota por encima de la MMA de 230 períodos

Análisis de ventajas

  1. BB evalúa eficazmente la dirección de la tendencia y captura las oportunidades de negociación de ruptura
  2. La adición de un filtro de MA a largo plazo reduce los riesgos asociados con falsas rupturas
  3. Lógica clara larga y corta, fácil de entender y seguir
  4. Los criterios estrictos para la salida corta ayudan a limitar las pérdidas

Análisis de riesgos

  1. Potencial deslizamiento importante cuando BB y MA emiten señales de negociación
  2. Las condiciones cortas excesivamente estrictas conducen a un beneficio secundario corto limitado
  3. El ajuste incorrecto de los parámetros puede dar lugar a una frecuencia de negociación demasiado alta/baja
  4. Las estrategias de ruptura son propensas a grandes pérdidas

Mejoras:

  1. Optimizar los parámetros de BB para reducir la frecuencia de negociación
  2. Establecer el stop loss para evitar pérdidas enormes por operación
  3. Añadir un filtro de volumen para garantizar la validez de la ruptura

Resumen de las actividades

En general, esta es una estrategia simple y fácil de entender, utilizando BB para determinar tendencias y tomar operaciones contra tendencia en puntos de inflexión. La adición de indicadores a corto plazo y de referencia también ayuda a filtrar las señales.


/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Aayonga

//@version=5
strategy("布林趋势震荡单", overlay=true,initial_capital=10000,default_qty_type=strategy.fixed, default_qty_value=1 )
bollL=input.int(20,minval=1,title = "长度")
bollmult=input.float(2.3,minval=0,step=0.1,title = "标准差")
basis=ta.ema(close,bollL)
dev=bollmult*ta.stdev(close,bollL)
upper=basis+dev
lower=basis-dev
smaL=input.int(200,minval=1,step=1,title = "趋势分界线")
sma=ta.sma(close,smaL)
//多头趋势
longT=upper>sma and basis>sma and lower>=sma
//空头趋势
shortT=upper<sma and basis<sma and lower<=sma

//入场位
longE=ta.crossover(close,lower)
shortE=ta.crossover(close,upper)
//出场位

longEXIT=ta.crossover(high,upper) 
shortEXIT=ta.crossunder(close,basis) or ta.crossover(close,ta.sma(close,230)) 

if longT and longE
    strategy.entry("多",strategy.long)

if longEXIT
    strategy.close("多",comment = "多出场")

if shortE and shortT
    strategy.entry("空",strategy.short)

if shortEXIT
    strategy.close("空",comment = "空出场")

Más.