Esta es una estrategia de seguimiento de tendencias basada en bandas de Bollinger. Utiliza bandas de Bollinger para calcular los canales de precios y combina patrones de velas para determinar la dirección de la tendencia. Las posiciones largas / cortas se abrirán cuando el precio rompe las bandas de Bollinger.
Esta estrategia utiliza la banda superior, la banda media y la banda inferior de las bandas de Bollinger para determinar los rangos de precios. Las bandas superior e inferior cubren los movimientos de precios, mientras que la banda media es el promedio móvil. El ancho de la banda cambia en función de la volatilidad de los precios. Cuando el precio se rompe por encima de la banda superior, indica una ruptura ascendente y una entrada larga. Cuando el precio se rompe por debajo de la banda inferior, indica una ruptura descendente y una entrada corta.
Después de determinar la dirección de la tendencia con la ruptura de Bollinger Bands, la estrategia también la confirma con patrones de velas. Si el cuerpo de la vela se alinea con la tendencia, como una vela alcista en una tendencia alcista, se abrirá una posición. Si el cuerpo de la vela muestra un patrón inverso, como una vela bajista en una tendencia alcista, la señal se ignorará.
Las reglas detalladas de las señales de negociación son:
Calcular la banda superior, la banda media y la banda inferior de las bandas de Bollinger para determinar el rango de precios
Cuando el precio se rompe por encima de la banda superior, indica una tendencia al alza / larga
Si el candelero es alcista, confirme la tendencia y vaya largo
Cuando el precio se rompe por debajo de la banda inferior, indica una tendencia a la baja / corta
Si el candelero es bajista, confirme la tendencia y vaya corto
Establecer el stop loss y el take profit basados en el porcentaje
Al entrar en las rupturas de Bollinger Bands y confirmar con velas, esta estrategia puede identificar efectivamente la dirección de la tendencia y obtener buenas entradas durante las primeras etapas de la tendencia.
Esta es una tendencia típica que sigue una estrategia con las siguientes fortalezas:
Las bandas de Bollinger son adaptables y pueden ajustar los rangos para las acciones con una volatilidad diferente
La confirmación de candlestick filtra las faltas falsas
La tenencia a medio plazo reduce la frecuencia de negociación y reduce los costes/deslizamiento
La captación de las tendencias a medio plazo evita el ruido a corto plazo y ofrece una buena relación riesgo-recompensa
Los resultados de las pruebas de retroceso son sólidos y el comercio real es estable debido a la sistematización
La lógica de la estrategia es clara y fácil de entender, con espacio para mejoras
Al determinar la tendencia con bandas de Bollinger y entrar en la confirmación del candelero, esta estrategia captura efectivamente el impulso a mediano plazo impulsado por el volumen.
También hay algunos riesgos a tener en cuenta para esta estrategia:
El riesgo de ruptura fallido.
El riesgo de reversión: las tendencias a medio plazo también pueden revertirse, se deben establecer paradas razonables
Los parámetros y paradas de Bollinger Bands necesitan ajuste para diferentes acciones
Riesgo de sobreajuste: la optimización excesiva de los parámetros causa el ajuste de la curva
El riesgo de ejecución: existe una divergencia entre backtest y trading real
Para hacer frente a estos riesgos, se pueden realizar las siguientes mejoras:
Optimizar los parámetros y el ancho de las bandas de Bollinger para un mejor ajuste
Añadir más factores como el volumen para confirmar la tendencia
Utilice paradas dinámicas para evitar pérdidas enormes en las reversiones
Aplicar el análisis de marcha hacia adelante para evitar el sobreajuste
Mejorar la ejecución de órdenes para mejorar la eficiencia real de las operaciones
Esta estrategia puede reforzarse aún más en los siguientes aspectos:
Añadir más indicadores como KDJ, MACD para confirmar las señales y mejorar la precisión
Utilice el aprendizaje automático para optimizar dinámicamente los parámetros en lugar de valores fijos
Establecer zonas de precios alrededor de los puntos de ruptura para generar señales más precisas
Optimizar las salidas con paradas de espera o toma parcial de ganancias
Introducir el tamaño de las posiciones para una mejor gestión del riesgo
Utilice tipos de orden avanzados para mejorar los resultados de ejecución
Añadir filtros de régimen de mercado para apagar la estrategia en ciertos entornos
Al introducir más técnicas y optimizaciones, la estabilidad y la rentabilidad de esta estrategia pueden mejorarse aún más para obtener mejores resultados de prueba posterior y comerciales reales.
Esta es una estrategia típica de seguimiento de tendencia que utiliza bandas de Bollinger como rangos dinámicos para determinar la dirección de la tendencia.
Las ventajas de esta estrategia incluyen el uso de bandas de Bollinger para la tendencia, candlestick para la confirmación de entrada, baja frecuencia de negociación y fácil sistematización. También tiene riesgos como breakouts falsos, dificultades de optimización de stop loss y divergencia de ejecución.
En general, como una tendencia típica que sigue la estrategia, tiene una lógica clara y es fácil de implementar con una fuerte viabilidad.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %") needct = input(false, defval = false, title = "Counter-trend entry") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") needbb = input(true, defval = true, title = "Show Bands") needbg = input(true, defval = true, title = "Show Background") src = close //PriceChannel 1 lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Distance dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma hd1 = center + distsma / 2 ld1 = center - distsma / 2 //Trend trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Body body = abs(close - open) smabody = sma(body, 100) //Signals bar = close > open ? 1 : close < open ? -1 : 0 up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0 dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0 up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0 dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0 if up7 == 1 or up8 == 1 strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na) if dn7 == 1 or dn8 == 1 strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)