Estratégia do indicador Bollinger Bands Crossing Mean PB


Data de criação: 2024-01-17 17:10:53 última modificação: 2024-01-17 17:10:53
cópia: 0 Cliques: 661
1
focar em
1617
Seguidores

Estratégia do indicador Bollinger Bands Crossing Mean PB

Visão geral

A estratégia de calcular o valor médio do indicador PB e a descida da faixa de Brin, para julgar a relação entre o indicador PB e a descida da faixa de Brin, produzindo um sinal de compra e venda. Quando o indicador PB sobe, ele quebra a faixa de Brin ou descende, gerando um sinal de compra. Quando o indicador PB desce, ele quebra a faixa de Brin ou sobe.

Princípio da estratégia

O indicador central da estratégia é o indicador de PB médio. O indicador de PB médio combina a estabilidade do sistema de linha de equilíbrio com a sensibilidade do indicador de PB.

A estratégia também usa o indicador de Brin para determinar a tendência de compra e venda de ações. O indicador de Brin é composto por três curvas no meio, no topo e no fundo. A linha central é a média móvel de n dias; o topo e o fundo são calculados por meio do meio e da flutuação histórica.

Em resumo, a estratégia de usar habilmente o índice de PB médio para determinar a tendência de queda e queda do preço das ações, e auxiliar o índice de correlação para determinar a sobrevenda e a sobrevenda, procurando pontos de compra e venda na relação de indicadores combinados entre os dois, pertence à típica estratégia de negociação de indicadores numéricos.

Análise de vantagens

As principais vantagens desta estratégia são:

  1. Utilizando o índice de PB médio para avaliar a mudança de tendência do preço das ações, alta sensibilidade
  2. Identificação de pontos de sobrevenda e sobrecompra com o indicador de correia de Brin para melhorar a precisão da determinação de pontos de compra e venda
  3. A estratégia é simples e fácil de implementar
  4. Os dados de retrospectiva mostram benefícios significativos da estratégia

Análise de Riscos

Os principais riscos desta estratégia são:

  1. Tanto o índice de PB médio quanto o índice de Brinks dependem de cálculos de dados históricos e são propensos a sinais errôneos quando há grandes flutuações no preço das ações.
  2. Os indicadores PB e Brinks são sensíveis à configuração de parâmetros, e a configuração incorreta pode levar a muitos erros de negociação.
  3. Durante a implementação da estratégia, as mudanças no ambiente macroeconômico podem ter um grande impacto nos preços das ações, como crises econômicas, mudanças de política, etc., que podem levar à falha da estratégia

Para os riscos acima mencionados, o risco pode ser evitado por meio de configuração de parâmetros de otimização, parada rigorosa, consideração de fatores ambientais gerais e monitoramento artificial.

Direção de otimização

A estratégia pode ser otimizada para:

  1. Optimizar os parâmetros do indicador PB de média e da faixa de Bryn para encontrar a melhor combinação de parâmetros
  2. Adicionar filtros de outros indicadores, como MACD, KDJ, etc., para melhorar a eficácia da estratégia
  3. Aumentar os mecanismos de suspensão de perdas e controlar eficazmente as perdas individuais
  4. Combinando com indicadores de períodos de tempo maiores, avaliar a tendência geral e evitar negociações adversas

Resumir

A estratégia tem um bom desempenho geral, com o índice de PB médio como o núcleo, auxiliado pela faixa de Brin para determinar o ponto de compra e venda, operação simples, alta sensibilidade, bom desempenho de retrospectiva. Através da configuração de parâmetros de otimização contínua, adição de medidas auxiliares de outros indicadores e parada rigorosa de perdas, é possível melhorar ainda mais a rentabilidade e a estabilidade da estratégia.

Código-fonte da estratégia
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BandPass EOS", overlay=false, initial_capital = 1000)

src = input(close, "Source", input.source)
Period1 = input(41, "Fast Period", input.integer)
Period2 = input(54, "Slow Period", input.integer)
showBG = input(false, "Show crosses on background?", input.bool)
UseReversalStop = input(true, "Use additional triggers?", input.bool)

//Super Passband Filter
a1 = 0.0
a2 = 0.0
PB = 0.0
RMS = 0.0
if bar_index > Period1
    a1 := 5 / Period1
    a2 := 5 / Period2
    PB := (a1 - a2) * src + (a2 * (1 - a1) - a1 * (1 - a2)) * src[1] + 
       (1 - a1 + 1 - a2) * nz(PB[1]) - (1 - a1) * (1 - a2) * nz(PB[2])
    for i = 0 to 49 by 1
        RMS := RMS + PB[i] * PB[i]
        RMS
    RMS := sqrt(RMS / 40)
    RMS
z = 0

buy = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
sell = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)
signal = buy ? 1 : sell ? -1 : 0
bg = buy ? color.green : sell ? color.red : color.white
bg := showBG ? bg : na
upperFill = PB>RMS ? color.lime : na
lowerFill = PB<-RMS ? color.red : na

p1 = plot(PB,"PB",color.red)
p2 = plot(RMS,"+RMS",color.blue)
p3 = plot(-RMS,"-RMS",color.blue)
bgcolor(bg)
fill(p1,p2,upperFill)
fill(p1,p3,lowerFill)
hline(0)



//PERIOD
testStartYear = input(2018, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true
    
lcolor = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
scolor = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)

c1 = (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
c2 = (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))

plot (c1 ? PB : na, style = plot.style_circles, color = color.red, linewidth = 3)
plot (c2 ? PB : na, style = plot.style_circles, color = color.green, linewidth = 3)

if (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))
    strategy.entry("long", strategy.long, when = testPeriod())


if (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
    strategy.entry("short", strategy.short, when = testPeriod())