Esta estrategia utiliza el indicador de la banda de Bollinger combinado con el seguimiento del stop loss para implementar el trading de seguimiento de tendencia. Se corta cuando el precio rompe el carril superior y se hace largo cuando el precio rompe el carril inferior. Al establecer los precios de stop loss y take profit, se pueden bloquear los beneficios. Mientras tanto, esta estrategia también proporciona una selección de entrada de inversión opcional, lo que significa hacer órdenes invertidas cuando el precio vuelve a entrar en la banda.
La estrategia primero calcula el carril medio, el carril superior y el carril inferior de la banda de Bollinger. El carril medio es el WMA con la longitud de Len, y los carril superior e inferior representan la desviación estándar multiplicada por la desviación.
Cuando el precio rompe el carril superior, vaya corto; cuando el precio rompe el carril inferior, vaya largo. Después de abrir la posición, establezca el stop loss y tome el precio de ganancia. El precio de stop loss es el valor de stop de entrada, y el precio de take profit es el valor de límite de entrada.
Además, la estrategia también proporciona la opción de apertura de reversión. Cuando se comprueba
Ya sea que se trate de apertura de tendencia o apertura de reversión, los ajustes para el stop loss y el take profit son los mismos.
La estrategia combina el indicador de banda de Bollinger y el seguimiento de stop loss para controlar eficazmente los riesgos mientras se bloquean las ganancias de la tendencia.
El método de negociación en bandas hace que los resultados de PnL sean claros. El seguimiento de la parada de pérdida ajusta la posición de la parada de pérdida para evitar que las ganancias obtenidas sean retiradas.
El mayor riesgo de la estrategia de Bollinger Band es la inversión de tendencia. Después de ir corto cuando el precio rompe el tren superior, el precio puede aparecer una reversión en forma de V, lo que lleva a una pérdida rápida.
La apertura de reversión puede perder oportunidades para la continuación de la tendencia.
Además, la configuración incorrecta de los parámetros también puede amplificar los riesgos.
La estrategia se puede optimizar en los siguientes aspectos:
Añadir funcionalidad adaptativa de parámetros. Len y la desviación se pueden ajustar dinámicamente de acuerdo con la volatilidad del mercado para hacer que la banda de Bollinger esté más cerca del precio.
Añadir filtros de posición de apertura. Se pueden añadir condiciones adicionales tales como aumentos de volumen de operaciones y aumento de las transacciones comerciales para evitar ser retirado.
Juzgar la tendencia de la tendencia utilizando indicadores como MACD y KDJ para evitar señales equivocadas o señales faltantes.
Añadir restricciones de tiempo. Sólo la negociación durante un cierto período de tiempo puede reducir los riesgos de la noche a la mañana.
La estrategia de seguimiento de la banda de Bollinger determina los avances de precios utilizando el indicador de la banda de Bollinger. Bloquea las ganancias mediante la configuración de stop loss y take profit, y utiliza el seguimiento de stop loss para ajustar los riesgos. La estrategia es simple y práctica.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="BB Strategy (Basic)",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02) len = input(20, minval=1, title="Length") src = input(close, title="Source") mult = input(2.0, "Deviation", minval=0.001, maxval=50) //price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001) //price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001) trail = input(true, "Trailing Stop(checked), Market stop(unchecked)") stop = input(10000, "Stop (in ticks)", step=5) limit = input(20000, "Limit Out", step=5) //size = input(1, "Limit Position Size (pyramiding)", minval=1) revt = input(true, "Reversal Entry(checked, Trend Entry(unchecked)") timec = input(false, "Limit Time of Day (Buying Side)") //calculations and plots revti = if revt==false true basis = wma(src, len) dev = mult * stdev(src, len) upper = basis + dev lower = basis - dev plot(basis, color=red) p1 = plot(upper, color=teal) p2 = plot(lower, color=teal) fill(p1, p2) u = crossover(high, upper) d = crossunder(low, lower) //Time Session sess = input("1600-0500", "Start/Stop trades (Est time)") t = time(timeframe.period, sess) //Orders if(timec) strategy.entry("Enterlong", long=revt, when=d and t>1) else strategy.entry("Enterlong", long=revt, when=d) if(trail) strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Enterlong", profit=limit, loss = stop ) if(timec) strategy.entry("Entershort", long=revti, when=u and t>1) else strategy.entry("Entershort", long=revti, when=u) if(trail) strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Entershort", profit=limit, loss = stop )