Estrategia de trading con bandas de Bollinger


Fecha de creación: 2023-12-19 14:08:45 Última modificación: 2023-12-19 14:08:45
Copiar: 0 Número de Visitas: 639
1
Seguir
1621
Seguidores

Estrategia de trading con bandas de Bollinger

Descripción general

La estrategia se basa en el trayecto ascendente y descendente de la banda de Brin, y determina que el precio hace más cuando se rompe la banda de Brin en el trayecto ascendente, y hace menos cuando se rompe el trayecto descendente, y pertenece al tipo de estrategia de seguimiento de tendencias.

Principio de estrategia

La estrategia utiliza el medio, el alto y el bajo de la banda de Brin para determinar el rango de precios extremos. El medio es una simple media móvil de los precios de cierre de los últimos 25 períodos, y el alto y el bajo es la distancia a la siguiente diferencia estándar en la línea del medio. Cuando el precio cruza por debajo de la línea superior o por debajo de la línea inferior, indica que el precio ha tenido una ruptura, pertenece a un comportamiento de precios anormal, en el que se pueden tomar decisiones comerciales.

Si el precio está por debajo de la línea descendente, compra más; si el precio está por encima de la línea ascendente, vende sin ganancias. En el caso de hacer más, configure la línea de parada como el precio de entrada por el factor de parada, y la línea de parada como el precio de entrada por el factor de parada.

La estrategia también incluye algunas reglas auxiliares, como que solo se permita emitir una señal en 24 horas para evitar transacciones innecesarias.

Ventajas estratégicas

  1. El uso de bandas de Bryn para determinar un rango de precios anormal es una estrategia de seguimiento de tendencias que permite capturar las tendencias de los precios.
  2. Los parámetros se establecen de acuerdo con el principio de la parada de pérdidas para controlar las pérdidas individuales
  3. Se han añadido algunas reglas auxiliares para evitar la repetición de señales y transacciones sin sentido.

Riesgo estratégico

  1. El rango de las bandas de Brin no representa completamente la tendencia de los precios y puede dar señales erróneas
  2. El error en el momento de la señal de ruptura puede causar pérdidas
  3. La duración de los mercados sin tendencia y sus fluctuaciones son difíciles de predecir y pueden conducir a compras innecesarias

Medidas de control de riesgos:

  1. Ajuste de los parámetros de la banda de Bryn para optimizar el tiempo de la señal de ruptura
  2. En combinación con otros indicadores para determinar las grandes tendencias
  3. Establecer un límite de pérdidas en función de las diferentes variedades y condiciones del mercado

Dirección de optimización de la estrategia

  1. Se puede considerar la optimización de la adaptación de los parámetros de la banda de Bryn para que la banda de Bryn se acerque más al estado actual del mercado
  2. Puede combinarse con otros indicadores para evaluar la fiabilidad de las señales de tendencia y evitar señales erróneas
  3. Se pueden combinar modelos de aprendizaje automático para identificar el mejor momento de compra y venta.

Resumir

La estrategia en su conjunto es una estrategia de seguimiento de tendencias sencilla, que utiliza bandas de Brin para determinar las anomalías de precios y seguir la tendencia. Hay espacio para la optimización de los parámetros, el control de riesgos y la filtración de señales, pero la idea central es simple y clara, adecuada para el aprendizaje de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)

leverage = input.float(1,"Leverage (x)",step=1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage
TP_Factor = input.float(2, step=0.1)
invertBuyLogic = input.bool(false)
 
lookbackDistance = input.int(25)
devMult = input.float(2,step=0.1)

var lastSellHour = 0
var disableAdditionalBuysThisDay = false


if(time > lastSellHour + 1000 * 60 * 60 * 6)
    disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
    disableAdditionalBuysThisDay := true
    lastSellHour := time

source = close

//Trade Logic
basis = ta.sma(source, lookbackDistance)
dev = devMult * ta.stdev(source, lookbackDistance)
upper = basis + dev
lower = basis - dev
isBuy = ta.crossunder(source, upper)
isBuyInverted = ta.crossover(source, lower)

plot(upper, color=color.white)
plot(lower, color=color.white)

strategy.initial_capital = 50000

if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay))
    strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)

if(strategy.position_size > 0)
    strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor)
    strategy.close("Long",  when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")