La estrategia se llama
La lógica central de esta estrategia se basa en el canal de bandas de Bollinger, que consta de línea media, banda superior y banda inferior. La línea media es el promedio móvil del precio de cierre durante n días. Las bandas superior e inferior son desviaciones por encima y por debajo de la línea media. Cuando el precio se acerca a la banda superior, indica que el mercado puede estar sobrecalentado y puede haber oportunidades cortas. Cuando el precio se acerca a la banda inferior, indica que el mercado puede estar infravalorado y puede haber oportunidades largas.
Esta estrategia utiliza dos Bandas de Bollinger. La Banda de Bollinger 1 es adecuada para operaciones largas y la Banda de Bollinger 2 es adecuada para operaciones cortas. Los parámetros de la Banda de Bollinger 1 están optimizados con una longitud de 25 y una desviación de 2,9 veces. Los parámetros de la Banda de Bollinger 2 están optimizados con una longitud de 36 y una desviación de 3,2 veces. Cuando el precio de cierre cruza por encima de la banda inferior de la Banda de Bollinger 1, generará una señal larga. Cuando el precio de cierre cruza por debajo de la banda superior de la Banda de Bollinger 2, generará una señal corta.
En comparación con las estrategias tradicionales de Bollinger Bands, esta estrategia tiene las siguientes ventajas:
Realiza el comercio bidireccional tanto para los lados largos como para los cortos, lo que puede aprovechar las oportunidades comerciales en diferentes etapas del mercado.
Los dos conjuntos de parámetros de Bollinger Bands se prueban minuciosamente para generar efectivamente señales comerciales.
El método de stop loss móvil puede controlar eficazmente el riesgo de un lado.
También existen algunos riesgos potenciales para esta estrategia:
El riesgo de invalidez de las bandas de Bollinger puede volverse inválido durante fluctuaciones extremas del mercado.
El riesgo de que se produzca un stop loss. El movimiento de un stop loss podría ser un golpe para expandir las pérdidas. Podemos ampliar adecuadamente el stop loss o detenerlo oportunamente para evitar este riesgo.
Riesgo de alta frecuencia de negociación: los parámetros demasiado sensibles podrían conducir a operaciones frecuentes y a un aumento de los costes de negociación.
Todavía hay margen para una mayor optimización de esta estrategia:
Combine otros indicadores para filtrar las señales y evitar operaciones incorrectas cuando las bandas de Bollinger fallan.
Ajustar dinámicamente los parámetros para adaptarse a las características del mercado de diferentes períodos.
Optimizar los métodos de stop loss mediante el uso de stop loss de seguimiento o stop loss de movimiento exponencial para controlar eficazmente los riesgos.
Combinar algoritmos de aprendizaje automático para optimizar automáticamente los parámetros.
En resumen, esta estrategia en general optimiza el comercio bidireccional tanto para los lados largos como para los cortos basado en el doble canal de Bollinger Bands y la optimización de parámetros. En comparación con las estrategias tradicionales de Bollinger Bands, tiene las ventajas del comercio bidireccional y el control de riesgos. Es adecuado para aprovechar oportunidades en diferentes etapas del mercado y tiene cierto valor práctico. Pero los riesgos como el fracaso de las bandas de Bollinger y el stop loss aún existen. Se necesitan más optimización y verificación antes de la productización.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h 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/ // © exlux99 //@version=4 strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01) source = close length = input(25, minval=1, title="Length BB long") mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long") length2 = input(36, minval=1, title="Length BB short") mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short") basis = sma(source, length) dev = mult * stdev(source, length) dev2 = mult2 * stdev(source, length2) upper = basis + dev2 lower = basis - dev buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) longEntry=input(true) shortEntry=input(true) g(v, p) => round(v * (pow(10, p))) / pow(10, p) risk = input(100) leverage = input(1.0, step = 0.5) c = g((strategy.equity * leverage / open) * (risk / 100), 4) tplong=input(0.065, step=0.005, title="Take profit % for long") sllong=input(0.04, step=0.005, title="Stop loss % for long") tpshort=input(0.025, step=0.005, title="Take profit % for short") slshort=input(0.04, step=0.005, title="Stop loss % for short") if(longEntry) strategy.entry("long",1,c,when=buyEntry) strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.close("long",when=sellEntry) if(shortEntry) strategy.entry("short",0,c,when=sellEntry) strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort') strategy.close("short",when=buyEntry)