Estratégia de cruzamento de média móvel única da banda de Bollinger


Data de criação: 2023-12-22 14:10:14 última modificação: 2023-12-22 14:10:14
cópia: 1 Cliques: 725
1
focar em
1621
Seguidores

Estratégia de cruzamento de média móvel única da banda de Bollinger

Visão geral

A estratégia é baseada em um indicador de linha de equilíbrio e de correia de Brin, onde a compra ou venda é feita quando o preço quebra a correia de Brin para cima ou para baixo. Ao mesmo tempo, a combinação da direção da linha de equilíbrio para determinar a tendência, a compra é feita apenas quando a linha de equilíbrio sobe e a venda é feita quando a linha de equilíbrio desce.

Princípio da estratégia

A estratégia é baseada nos seguintes indicadores:

  1. A linha média ((SMA): calcula a média móvel simples do preço de fechamento do CLOSE, representando a tendência dos preços.
  2. A banda de Brin em linha: representa a linha de resistência do ângulo de inclinação, quebrando a linha significa uma forte ruptura.
  3. A faixa de Brin descendo: representa a linha de suporte e a queda da linha indica a possibilidade de uma reversão da tendência.

Os sinais de negociação são os seguintes:

  1. Sinais de compra: compra quando o preço de fechamento quebra a faixa de Bryn e a linha média está em ascensão.
  2. Sinais de venda: quando o preço de fechamento cai abaixo do trajeto da faixa de Bryn e a linha média está em declínio, venda.

Assim, combinando tendências e breakouts, torna os sinais de negociação mais confiáveis e evita breakouts falsos.

Vantagens estratégicas

  1. As regras são simples, claras e fáceis de entender.
  2. A linha média é usada para determinar a direção das grandes tendências, evitando o mercado de baixa e baixa e o mercado de baixa.
  3. O Brin, com a banda de baixo, julgou o ponto de ruptura local e capturou com precisão o sinal de ruptura.
  4. A retirada é relativamente pequena e corresponde às preferências de risco da maioria das pessoas.

Risco estratégico

  1. Indicadores individuais são propensos a sinais de erro, que podem ser reduzidos por meio de parâmetros de otimização.
  2. O ponto de paragem pode ser ajustado de acordo com a situação de mercado, caso não seja possível lidar com grandes turbulências.
  3. Se você não consegue obter mais lucro com uma grande tendência, considere aumentar sua posição.

Otimização de Estratégia

  1. Optimizar os parâmetros de ciclo medíocre para mais variedades.
  2. Adicionar filtros para outros indicadores, como MACD, para reduzir os sinais errados.
  3. Ajuste dinâmico do ponto de parada para limitar a retirada máxima.
  4. A ideia é que os investidores devem ter uma visão mais clara do que os investidores, e que os investidores devem ter uma visão mais clara do que o investidor.

Resumir

A estratégia é simples, prática e adequada para a maioria das pessoas. É uma estratégia recomendável que, com alguns ajustes de otimização, a estratégia possa ser mais robusta e adaptada a mais situações de mercado.

Código-fonte da estratégia
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="single sma cross", shorttitle="single sma cross",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,overlay=true,currency="USD")
s=input(title="s",defval=90)
p=input(title="p",type=float,defval=.9,step=.1)

sa=sma(close,s)
plot(sa,color=red,linewidth=3)
band=stdev(close,s)*p
plot(band+sa,color=lime,title="")
plot(-band+sa,color=lime,title="")

// ===Strategy Orders============================================= ========
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

longCondition = crossover(close,sa+band) and rising(sa,5)
shortCondition = crossunder(close,sa-band) and falling(sa,5)
crossmid = cross(close,sa)


strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = shortCondition)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = longCondition)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)