Esta estratégia usa o indicador Bollinger Bands para determinar a direção da tendência do mercado, e toma negociações contra-tendência quando ocorre uma reversão da tendência.
Esta estratégia utiliza a faixa média, faixa superior e faixa inferior das Bandas de Bollinger para determinar a direção da tendência do mercado. A faixa média é a média móvel exponencial de n períodos, enquanto a faixa superior e a faixa inferior são a faixa média +2,3 desvio padrão e a faixa média -2,3 desvio padrão, respectivamente. Quando o preço quebra abaixo da faixa inferior, indica uma tendência de alta atual. Quando o preço quebra acima da faixa superior, indica uma tendência de queda atual.
Além disso, a estratégia estabelece uma média móvel simples de 200 períodos (SMA) como referência para julgamento de tendências de longo prazo. Os sinais de negociação só são acionados quando os indicadores BB e sma concordam com a mesma direção. Isso pode efetivamente filtrar algumas falhas.
A lógica específica de negociação é a seguinte:
Melhorias:
No geral, esta é uma estratégia simples e fácil de entender, usando BB para determinar tendências e tomar negociações contra-tendência em pontos de virada. Adicionar indicadores de curto prazo e de referência também ajuda a filtrar sinais. Ainda há um grande espaço para otimizações, como ajuste de parâmetros, indicadores de volume etc. pode melhorá-lo ainda mais.
/*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 = "空出场")