Estratégia de negociação de regressão balanceada com base no método da proporção áurea das Bandas de Bollinger


Data de criação: 2023-11-16 16:52:55 última modificação: 2023-11-16 16:52:55
cópia: 0 Cliques: 774
1
focar em
1617
Seguidores

Estratégia de negociação de regressão balanceada com base no método da proporção áurea das Bandas de Bollinger

Visão geral

Esta estratégia utiliza a linha de separação do ouro da faixa de Brin, em combinação com o julgamento de equilíbrio linear, para realizar negociações de regressão. Quando o preço toca a linha de separação do ouro da faixa de Brin, é considerado um sinal de compra e aproveita a característica de regressão equilibrada do preço para lucrar.

Princípio da estratégia

  1. Calculação do meio-carril, do carril superior e do carril inferior dividido em ouro da faixa de Bryn
  • Média móvel ponderada de órbita:vwma
  • Trilha superior: trajetória média + diferença padrão de k * n ciclos
  • Divisão do ouro abaixo do eixo: meio eixo - diferença padrão de 0.618 * n ciclos
  1. A forma de julgar
  • A linha média de 50 dias atravessa a linha média de 200 dias, de acordo com a tendência ascendente
  • Preço tocando ou abaixo da divisão do ouro no declínio, como sinal de compra
  1. Saída
  • O preço do Binance foi levado para cima, mas foi levado de volta para baixo, então o preço foi levado para baixo e foi levado para baixo.
  1. Cessação de perdas
  • Configure uma porcentagem fixa de stop loss, como 5%

Vantagens estratégicas

  1. O uso de vWMA em vez de SMA como a trajectória central da faixa de brinquedo pode refletir melhor a tendência de movimento dos preços.

  2. A divisão do ouro é uma importante área de suporte/resistência, que fornece a base para a retomada

  3. A linha média é um conjunto de linhas para garantir uma grande tendência de alta.

  4. Stop loss fixo para garantir o controle de perdas individuais

Risco estratégico

  1. A linha divisória do ouro não é um suporte definido, o preço pode cair diretamente

  2. O Stop Loss fixo pode ser arbitrário e deve ser considerado para ser ajustado com base nas flutuações do mercado.

  3. A linhagem mediana de múltiplos cabeçalhos também pode ser uma falsa ruptura, que deve ser julgada com mais indicadores.

  4. A duração do regresso é incerta e um ponto de partida razoável deve ser estabelecido.

Direção de otimização

  1. É possível testar diferentes combinações de parâmetros, tais como o ciclo da banda de Bryn, o múltiplo da diferença padrão, o percentual de stop-loss fixo, etc.

  2. Mais indicadores podem ser adicionados para determinar tendências de mercado e probabilidade de retorno, como MACD, KD, etc.

  3. Pode considerar-se o stop dinâmico, o stop ATR ou o stop tracking

  4. Otimização de estratégias de bloqueio, como bloqueio móvel, bloqueio por lotes, etc.

Resumir

Esta estratégia utiliza a linha de divisão de ouro de Brin para negociação de regressão equilibrada, com vantagens como lógica de negociação clara, configuração de parâmetros simples e retorno controlado. Mas também existe um certo risco, que precisa de mais testes e otimização, adicionando mais indicadores técnicos de julgamento e ferramentas de stop loss / stop loss, para ser aplicada na prática.

Código-fonte da estratégia
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
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/
// © mohanee

//@version=4

strategy(title="Bollinger Band with Fib Golden Ratio (0.618)",  shorttitle="Bollinger Band with Fib Golden Ratio" , overlay=true, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  

length = input(50,title="BB Length" , minval=1)
src1 = input(hlc3, title="Source")
//mult1 = input(1.33, minval=0.001, maxval=50)
mult = input(1.5,title="multplier", minval=0.001, maxval=50)

stopLoss=input(5,title="Stop Loss",minval=1)

basis = vwma(src1, length)
dev = mult * stdev(src1, length)

//dev3 = mult3 * stdev(src, length)

upper_618= basis + (0.618*dev)
lower_618= basis - (0.618*dev)

//lower_618_dev3= basis - (0.618*dev3)



plot_upper618= plot(upper_618, color=color.purple, linewidth=2, title="0.618")
plot(basis, color=color.purple,style=plot.style_circles,  linewidth=2)

plot_lower618= plot(lower_618, color=color.purple, linewidth=2, title="0.618 entry")
//plot_lower618_dev3= plot(lower_618_dev3, color=color.red, linewidth=1, title="0.618 stop")

//plot_lower618= plot(lower_618, color=color.purple, linewidth=1, title="0.618 entry")

ema200=ema(close,200)
ema50=ema(close,50)

plot (ema200, title="ema200", color=color.orange, linewidth=2)
plot (ema50, title="ema50", color=color.blue , linewidth=2)


longCondition= ema50 > ema200

strategy.entry(id="BB_Fib618", long=true, when = longCondition and ( close < lower_618  or  low <= lower_618)  )

strategy.close(id="BB_Fib618",  comment="points="+tostring(close - strategy.position_avg_price,  "###.##") , when = strategy.position_size >= 1  and crossover(close,upper_618 )) 

//stoploss exit
stopLossVal = strategy.position_size>=1 ?  strategy.position_avg_price * ( 1 - (stopLoss/100) ) : 0.00
strategy.close(id="BB_Fib618", comment="SL="+tostring(close - strategy.position_avg_price,  "###.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //and close > strategy.position_avg_price )