Estratégia de Golden Cross e Dead Cross das Bandas de Bollinger


Data de criação: 2023-11-23 14:01:57 última modificação: 2023-11-23 14:01:57
cópia: 0 Cliques: 548
1
focar em
1617
Seguidores

Estratégia de Golden Cross e Dead Cross das Bandas de Bollinger

Visão geral

A estratégia é baseada em um Brin Belt Gold Fork Dead Fork para fazer mais de um curto prazo. Quando o preço quebra o Brin Belt para cima, faça um curto prazo; quando o preço quebra o Brin Belt para baixo, faça mais. Durante a manutenção da posição, será feito um acréscimo de posição e um rastreamento de perda.

Princípio da estratégia

A estratégia usa 3 trajetórias de cima para baixo na faixa de Brin. A média da faixa de Brin é a média móvel de n dias, a média superior é a diferença padrão de n dias do trajeto médio + k vezes, e a média inferior é a diferença padrão de n dias do trajeto médio - k vezes.

Quando o preço de baixo para cima quebra o downtrend, indica que o preço começa a subir, então faça mais; quando o preço de cima para baixo quebra o uptrend, indica que o preço começa a cair, então faça vazio.

Depois de fazer mais curto prazo, a posição será adicionada. A condição de adição é baseada na posição já mantida. Se o preço tocar novamente na linha média, a posição será aberta novamente para fazer mais ou curto prazo.

O rastreamento de stop loss de todas as posições também é atualizado em tempo real. A linha de stop loss é definida com base no diferencial entre o preço médio da posição atual e o preço da faixa de Bryn.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O uso de indicadores de correia de Brin para capturar brechas de preços, com precisão, faz com que os preços fiquem mais baixos
  2. A entrada foi regularizada com o método do garfo de ouro.
  3. A posse é uma forma de ganhar mais dinheiro
  4. Atualização de stop loss em tempo real para evitar que o stop loss seja atingido

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. O indicador Brinks é mais sensível às flutuações do mercado e pode ser usado para arbitragem.
  2. A hipoteca aumenta a abertura de risco e aumenta os prejuízos
  3. A linha de parada não é absoluta, mas existe a possibilidade de ser bloqueada.

Para esses riscos, pode-se fazer otimizar as seguintes coisas:

  1. Ajustar os parâmetros da faixa de Bryn para diferentes períodos
  2. Optimizar a amplitude e a frequência das adições
  3. Aumentar a linha central como uma linha de parada adicional

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros da faixa de brinquedos para adaptar-se a um maior número de mercados
  2. Optimizar a lógica de hipoteca, equilibrando riscos e benefícios
  3. Aumentar a linha de parada, como a parada do meio da pista.
  4. Aumentar a estratégia de prevenção e ser mais ativo na prevenção
  5. Combinação de outros indicadores para filtrar o tempo de entrada
  6. Optimizar a gestão de fundos e controlar os riscos individuais

Resumir

Esta estratégia é, em geral, uma estratégia típica de acompanhamento de tendências. Ela pode ser executada em sequência e obter lucros quando a tendência surgir.

Código-fonte da estratégia
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy(title='Bollinger Band strategy with split, limit, stop', shorttitle='bb strategy', overlay=true,commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, pyramiding = 4)



//Summary: Going Long or Short when Entering after Breaking the Bollinger Bands\
//At this time, the stop-loss, profit-taking price, and pyramiding standard\
// are determined from the difference between the position average price and the band price.

//After entering the position, if the price crosses the mid-band line, the stop loss is adjusted to the mid-band line.



//each trade, entry position size = 10% of total cash
//max pyramiding is 4
//commission = 0.01%





in_period = true


bb_length = input.int(20)
bb_mult = input.int(2)

[middle, upper, lower] = ta.bb(close,bb_length, bb_mult)
plot(middle, color=color.aqua)
plot(upper, color=color.orange)
plot(lower, color=color.orange)
long_cond = ta.crossover(close,lower)
short_cond = ta.crossunder(close,upper)

var saved_ph = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size > 0
    saved_ph := upper[1]
var saved_pl = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size < 0
    saved_pl := lower[1]

avg = strategy.position_avg_price

long_diff = saved_ph-avg
short_diff = saved_pl-avg

long_stoploss = avg - 1*long_diff
short_stoploss = avg - 1*short_diff

long_avgdown = avg - 0.5*long_diff
short_avgup = avg - 0.5*short_diff

long_profit_price = avg + 0.5*long_diff
short_profit_price = avg + 0.5*short_diff

var label _label = na
if in_period
    if long_cond and strategy.opentrades==0
        strategy.entry("Long",strategy.long)
    if long_cond and strategy.opentrades >0 and (close[1]<long_avgdown or close[2]<long_avgdown)
        strategy.entry("Long",strategy.long)

    if short_cond and strategy.opentrades==0
        strategy.entry("Short", strategy.short)
    if short_cond and strategy.opentrades>0 and (close[1]>short_avgup or close[2]>short_avgup)
        strategy.entry("Short",strategy.short)

plot(avg, style=plot.style_linebr)


plot(strategy.position_size > 0? long_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0? long_avgdown: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size > 0? long_stoploss: na,color=color.red, style=plot.style_linebr)

plot(strategy.position_size < 0? short_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0? short_avgup: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size < 0? short_stoploss: na,color=color.red, style=plot.style_linebr)

if strategy.position_size > 0
    if ta.crossover(close, middle)
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=middle)
    else
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=long_stoploss)
if strategy.position_size < 0
    if ta.crossunder(close, middle)
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=middle)
    else
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=short_stoploss)