Esta estrategia utiliza el indicador de bandas de Bollinger para determinar la dirección de la tendencia del mercado, y toma operaciones contra tendencia cuando ocurre una inversión de tendencia.
Esta estrategia utiliza la banda media, la banda superior y la banda inferior de las bandas de Bollinger para determinar la dirección de la tendencia del mercado. La banda media es el promedio móvil exponencial de n períodos, mientras que la banda superior y la banda inferior son la banda media +2.3 desviación estándar y la banda media -2.3 desviación estándar respectivamente. Cuando el precio se rompe por debajo de la banda inferior, indica una tendencia alcista actual. Cuando el precio se rompe por encima de la banda superior, indica una tendencia bajista actual.
Además, la estrategia establece una media móvil simple de 200 períodos (SMA) como punto de referencia para el juicio de la tendencia a largo plazo. Las señales de negociación solo se activan cuando los indicadores BB y SMA coinciden en la misma dirección. Esto puede filtrar efectivamente algunas roturas falsas.
La lógica de negociación específica es la siguiente:
Mejoras:
En general, esta es una estrategia simple y fácil de entender, utilizando BB para determinar tendencias y tomar operaciones contra tendencia en puntos de inflexión. La adición de indicadores a corto plazo y de referencia también ayuda a filtrar las señales.
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 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/ // © Aayonga //@version=5 strategy("布林趋势震荡单", overlay=true,initial_capital=10000,default_qty_type=strategy.fixed, default_qty_value=1 ) bollL=input.int(20,minval=1,title = "长度") bollmult=input.float(2.3,minval=0,step=0.1,title = "标准差") basis=ta.ema(close,bollL) dev=bollmult*ta.stdev(close,bollL) upper=basis+dev lower=basis-dev smaL=input.int(200,minval=1,step=1,title = "趋势分界线") sma=ta.sma(close,smaL) //多头趋势 longT=upper>sma and basis>sma and lower>=sma //空头趋势 shortT=upper<sma and basis<sma and lower<=sma //入场位 longE=ta.crossover(close,lower) shortE=ta.crossover(close,upper) //出场位 longEXIT=ta.crossover(high,upper) shortEXIT=ta.crossunder(close,basis) or ta.crossover(close,ta.sma(close,230)) if longT and longE strategy.entry("多",strategy.long) if longEXIT strategy.close("多",comment = "多出场") if shortE and shortT strategy.entry("空",strategy.short) if shortEXIT strategy.close("空",comment = "空出场")