Bandas de Bollinger + RSI + Estratégia de tendência de média móvel múltipla

BB RSI MA SMA MACD
Data de criação: 2024-05-27 15:20:40 última modificação: 2024-05-27 15:20:40
cópia: 2 Cliques: 1189
1
focar em
1617
Seguidores

Bandas de Bollinger + RSI + Estratégia de tendência de média móvel múltipla

Visão geral

A estratégia combina a faixa de Brin, o RSI, várias médias móveis e indicadores MACD, para construir um sistema de negociação completo. Primeiro, o Brin determina a flutuação dos preços e usa a posição do preço em relação ao eixo central da faixa de Brin para determinar a tendência.

Princípio da estratégia

  1. Usando 20 ciclos, 2 vezes a diferença padrão da faixa de Brin, a tendência é julgada pela posição do preço de fechamento em relação à trajectória da faixa de Brin.
  2. Calcule o RSI de 14 ciclos e use o RSI com os níveis de 30 e 70 para julgar sobrevendas e sobrecompras e identificar potenciais reversões.
  3. Calcule as médias móveis simples de 34, 89, 144, 233, 377 e 610 ciclos, confirmando a tendência por meio de uma combinação de linhas médias, que também pode ser usada como resistência de suporte.
  4. O indicador MACD é calculado com base nos parâmetros 12, 26 e 9 e é auxiliado na determinação da reversão de tendência por meio do cruzamento do gráfico MACD com o eixo 0.
  5. A análise de todos os indicadores acima permite elaborar uma lógica para abrir posições em equilíbrio:
    • Abrir uma posição: abrir uma posição quando o preço de fechamento está acima da linha média da faixa de Bryn e a linha média curta está acima da linha média de longo prazo.
    • Posições em equilíbrio: quando o preço de fechamento cai abaixo da trajetória média da faixa de Bryn, metade da posição é liquidada; quando a média curta-prazo cai abaixo da média longa-prazo, a posição é liquidada.

Vantagens estratégicas

  1. O Binance permite quantificar objetivamente a oscilação dos preços, fornecendo uma base para o julgamento de tendências.
  2. A introdução do indicador RSI ajuda a avaliar a tendência de sobrevenda e de sobrevenda e a capturar potenciais oportunidades de reversão de tendência.
  3. A combinação de várias linhas medianas permite uma análise mais abrangente das tendências em várias escalas de tempo.
  4. Os indicadores MACD podem ser usados como auxiliares para determinar tendências e reversões, aumentando a confiabilidade do sinal.
  5. A lógica de abertura de posição inclui a ideia de gerenciamento de posição, reduzindo gradualmente a posição para controlar o risco em caso de incerteza de tendência.

Risco estratégico

  1. Em situações de tremores, os sistemas de linhas uniformes e de faixa de Brin podem produzir sinais frequentes e contraditórios.
  2. Os indicadores RSI e MACD podem se manter por muito tempo em zonas de superaquecimento e perda de discernimento em situações de forte tendência.
  3. A escolha de parâmetros (como o ciclo de Brin, o ciclo da linha média, etc.) tem uma certa subjetividade, e diferentes parâmetros podem trazer diferentes resultados.
  4. A falta de um mecanismo de stop loss pode aumentar o risco de uma única transação.
  5. A falta de resposta a situações extremas, como o caso do Cisne Negro, pode gerar um grande recuo.

Direção de otimização da estratégia

  1. Optimização mais sistemática dos parâmetros de vários indicadores, como o período e a largura da faixa de Brin, o período e o limiar do RSI, etc.
  2. A introdução de mais sinais de confirmação, como mudanças no volume de tráfego, aumenta a confiabilidade do sinal.
  3. A introdução de um mecanismo de stop loss e stop-loss nas condições de abertura de posições permitirá um melhor controle do risco de cada transação.
  4. Considerar a introdução de um mecanismo de ajuste de posição, ajustando posições com flexibilidade em diferentes condições de mercado, aumentando a taxa de risco para o lucro.
  5. Projeto para responder a previsões de eventos extremos, como hedge baseado no índice VIX ou ponderamento dinâmico do fator Alpha.

Resumir

A estratégia de construção de um sistema de negociação mais perfeito a partir de várias dimensões, incluindo o julgamento de tendências, julgamento de sobrecompra e sobrevenda, análise de várias escalas de tempo, controle de posição, etc. Mas a estratégia ainda precisa ser otimizada para lidar com situações de choque e situações extremas, além da falta de otimização de parâmetros e controle de risco mais sistemáticos. O futuro pode ser melhorado em direção a sinais de cotação mais precisos, reajuste de poderes dinâmicos e resposta a situações extremas.

Código-fonte da estratégia
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands + RSI Strategy with MA", overlay=true)

// Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Mult")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev

// RSI
rsi_length = input.int(14, title="RSI Length")
rsi_oversold = input.int(30, title="RSI Oversold", minval=0, maxval=100)
rsi_overbought = input.int(70, title="RSI Overbought", minval=0, maxval=100)
rsi = ta.rsi(close, rsi_length)

// RSI Divergence
rsi_divergence_bottom = ta.crossunder(rsi, rsi_oversold)
rsi_divergence_peak = ta.crossunder(rsi_overbought, rsi)

// Moving Averages
ma34 = ta.sma(close, 34)
ma89 = ta.sma(close, 89)
ma144 = ta.sma(close, 144)
ma233 = ta.sma(close, 233)
ma377 = ta.sma(close, 377)
ma610 = ta.sma(close, 610)

// MACD Calculation
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
macd_histogram = macd_line - signal_line

// MACD Divergence
macd_divergence_bottom = ta.crossunder(macd_histogram, 0)
macd_divergence_peak = ta.crossover(macd_histogram, 0)

// Conditions for Buy and Sell
basis_gt_ma34 = basis > ma34
ma34_gt_ma89 = ma34 > ma89

// Entry condition
buy_condition = basis_gt_ma34 and ma34_gt_ma89 
sell_condition =  basis <ma34

// Calculate position size
position_size = 1.0  // 100% capital initially

// Update position size based on conditions
if (sell_condition)
    position_size := 0.5  // Sell half of the position
if (not basis_gt_ma34)
    position_size := 0.0  // Sell all if basis < ma34

// Entry and exit strategy
if (buy_condition)
    strategy.entry("Buy", strategy.long, qty=position_size)
if (sell_condition)
    strategy.close("Buy")

// Plot Bollinger Bands and Moving Averages
bb_fill_color = basis > basis[1] ? color.new(color.blue, 90) : color.new(color.blue, 10)
plot(basis, color=color.blue, title="Basis")
plot(upper_band, color=color.red, title="Upper Band")
plot(lower_band, color=color.green, title="Lower Band")
fill(plot1=plot(upper_band), plot2=plot(lower_band), color=bb_fill_color, title="BB Fill")
plot(ma34, color=color.orange, title="MA34")
plot(ma89, color=color.purple, title="MA89")
plot(ma144, color=color.gray, title="MA144")
plot(ma233, color=color.blue, title="MA233")
plot(ma377, color=color.red, title="MA377")
plot(ma610, color=color.green, title="MA610")

// Plot RSI Divergence
plotshape(series=rsi_divergence_bottom, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)
plotshape(series=rsi_divergence_peak, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small)

// Plot MACD Histogram Divergence
plotshape(series=macd_divergence_bottom, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=macd_divergence_peak, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)