Estrategia de stop loss de la banda de Bollinger de ruptura de impulso


Fecha de creación: 2023-10-27 16:50:24 Última modificación: 2023-10-27 16:50:24
Copiar: 0 Número de Visitas: 640
1
Seguir
1617
Seguidores

Estrategia de stop loss de la banda de Bollinger de ruptura de impulso

Descripción general

Esta estrategia se basa en los indicadores de la banda de Brin para determinar las señales de negociación y gestionar las posiciones con un método de parada de pérdidas. La estrategia monitoreará las rupturas de la banda de Brin en la vía ascendente y descendente, hará más cuando el precio rompa la banda de Brin en la vía ascendente, hará un vacío cuando rompa la vía descendente y usará un solo puesto de parada de pérdidas cuando se rompa.

Principio de estrategia

La estrategia utiliza el mediano, el mediano superior y el mediano inferior en el indicador de la banda de Bryn. El mediano superior es el promedio de los precios calculado en un período determinado, el mediano superior es el doble de la diferencia estándar, y el mediano inferior es el doble de la diferencia estándar.

El código calcula primero el medio, el alto y el bajo de la banda de Brin. Luego, se determina si el precio se rompe en el alto o en el bajo. Si se rompe en el alto, se hace más, si se rompe en el bajo, se hace vacío.

En concreto, la lógica de la estrategia es la siguiente:

  1. Cálculo de las vías media, alta y baja de la banda de Brin
  2. Si el precio se sale de la raíz, abre más posiciones
  3. Si el precio se desvía de la vía, abre una posición
  4. Si se hace una posición múltiple, el precio se desvía y se utiliza la posición de parada de pérdidas.
  5. Si hay una posición de descubierto, el precio se rompe en la vía, el uso de la parada de pérdidas de la posición de nivel

De esta manera, se puede capturar la tendencia cuando los precios de las acciones se producen grandes fluctuaciones, pero también se puede limitar las pérdidas mediante el stop loss.

Análisis de las ventajas

  • El uso de la banda de Brin para determinar el momento de entrada puede ser eficaz para capturar la tendencia después de la ruptura de precios.
  • Hacer más señales de vacío claras, reglas de operación simples y claras
  • El uso de una estrategia de stop loss para limitar la pérdida máxima de una sola operación
  • ParameterHandler puede ajustar los parámetros de la banda de Bryn para optimizar las políticas

Análisis de riesgos

  • Las transacciones en la correa de Brin son propensas a producir múltiples pérdidas por paradas menores, lo que genera pérdidas y perjuicios generales.
  • La configuración incorrecta de los parámetros de la banda de Bryn puede causar una frecuencia de transacción excesiva o una señal errónea
  • El precio es el único factor que se toma en cuenta, sin combinar con otros indicadores para evaluar la situación.
  • Sin tener en cuenta el ajuste de la línea de stop loss cerca del punto de ruptura, que podría ampliar la pérdida

Se puede optimizar a través de combinaciones de indicadores Combine, ajustando adecuadamente las unidades de detención de pérdidas.

Dirección de optimización

  • Se puede considerar la combinación de otros indicadores, como volumen de transacciones, promedios móviles, etc., para confirmar una señal de ruptura.
  • Se pueden ajustar los parámetros de la banda de Bryn para diferentes mercados, optimizando la combinación de parámetros
  • Se puede ajustar la distancia de frenado de aproximación según el punto de ruptura para evitar una sensibilidad excesiva
  • Se puede considerar la combinación de las reglas de negociación de la tortuga y el comercio sólo después de la formación de una tendencia
  • Se pueden combinar algoritmos de aprendizaje automático para optimizar los parámetros de la banda de Bryn

Resumir

Esta estrategia se basa en el indicador de la banda de Brin para diseñar una estrategia de seguimiento de tendencias más simple. Puede formar posiciones rápidamente cuando el precio se rompe, y al mismo tiempo utilizar los paros para controlar el riesgo. Pero solo considerar los factores de precio puede conducir a errores de juicio, y los paros demasiado sensibles pueden aumentar la frecuencia de las operaciones.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 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/
// © ROBO_Trading

//@version=5
strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1)

//Settings
long = input(true)
short = input(true)
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
source = input(close)
showbb = input(true, title = "Show Bollinger Bands")
showof = input(true, title = "Show Offset")
startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1")
finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1")

//Bollinger Bands
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

//Show indicator
offset = showof ? 1 : 0
colorBasis = showbb ? color.gray : na
colorUpper = showbb ? color.blue : na
colorLower = showbb ? color.blue : na
colorBands = showbb ? color.blue : na
p0 = plot(basis, "Basis", color = colorBasis, offset = offset)
p1 = plot(upper, "Upper", color = colorUpper, offset = offset)
p2 = plot(lower, "Lower", color = colorLower, offset = offset)
fill(p1, p2, title = "Background", color = colorBands, transp = 90)

//Trading
truetime = true
if basis > 0 and truetime
    if long
        strategy.entry("Long", strategy.long, stop = upper, when = truetime)
    if short
        strategy.entry("Short", strategy.short, stop = lower, when = truetime)
    if long == false
        strategy.exit("Exit", "Short", stop = upper)
    if short == false
        strategy.exit("Exit", "Long", stop = lower)
if time > finalTime
    strategy.close_all()