Estratégia de regressão de fuga baseada no canal de Bandas de Bollinger


Data de criação: 2024-01-22 10:47:45 última modificação: 2024-01-22 10:47:45
cópia: 0 Cliques: 552
1
focar em
1617
Seguidores

Estratégia de regressão de fuga baseada no canal de Bandas de Bollinger

Visão geral

A estratégia é baseada na estratégia de reversão de ruptura do corredor da faixa de Brin. Quando o preço cai abaixo da faixa de Brin, uma entrada de posição longa é realizada. O preço de parada é o preço mais baixo do ponto de ruptura de entrada. O objetivo da parada é a faixa de Brin.

Princípio da estratégia

A estratégia usa o canal da faixa de Brin com 20 ciclos. O canal da faixa de Brin é composto por um meio, um meio e um meio. O meio é uma média móvel simples de 20 ciclos, o meio é composto por um meio mais o dobro da diferença padrão e o meio é composto por um meio menos o dobro da diferença padrão.

Quando o preço cai para baixo, indica que o preço entrou em um estado de sobrevenda, quando a entrada de posição longa é realizada. Após a entrada, o preço de parada é definido como o preço mais baixo da linha K quando a entrada, o objetivo de parada é a faixa de Brin para a pista. Assim, a estratégia é perseguir o processo de retorno do preço do estado de sobrevenda para a linha de equilíbrio, para obter lucro.

Análise de vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. O uso do canal de correia de Brin para determinar o estado de sobrecompra e sobrevenda do mercado tem certa eficácia no tempo.
  2. Regressar à estratégia de negociação para evitar que o docname siga os altos e baixos
  3. A configuração do ponto de parada é razoável e favorece o controle de risco

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. A BRI não é perfeita para avaliar a tendência dos preços, e os preços não necessariamente se recuperam de uma queda.
  2. Quando a bolsa continua a cair, o Floating P/L pode ser o primeiro a disparar um stop loss
  3. Ponto de paragem próximo da linha de chegada, risco de custos de paragem elevados

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

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

  1. Optimizar os parâmetros da faixa de Bryn para encontrar a melhor combinação de parâmetros
  2. Adição de outros indicadores de filtragem de sinais para melhorar a precisão de entrada
  3. Optimizar estratégias de stop loss para aumentar a taxa de ganhos e perdas

Resumir

A estratégia geral é clara e tem uma certa operacionalidade. Mas a sua utilização da faixa de Brin para determinar o excesso de compra e venda não é muito eficiente, não é possível avaliar perfeitamente a tendência de preços. Além disso, o mecanismo de stop-loss também precisa ser otimizado.

Código-fonte da estratégia
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
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/
// © Ronsword
//@version=5

strategy("bb 2ND target", overlay=true)
 
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 1997"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Sept 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

// STEP 2. See if the current bar falls inside the date range
inTradeWindow = true

// Bollinger Bands inputs
length = input.int(20, title="Bollinger Bands Length")
mult = input.float(2.0, title="Multiplier")
src = input(close, title="Source")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// EMA Settings
ema20 = ta.ema(close, 20)
plot(ema20, color=color.blue, title="20 EMA")

// Entry condition
longEntryCondition = ta.crossover(close, lower)

// Define stop loss level as the low of the entry bar
var float stopLossPrice = na
if longEntryCondition
    stopLossPrice := low

// Top Bollinger Band itself is set as the target
topBandTarget = upper

// Enter long position when conditions are met
if inTradeWindow and longEntryCondition
    strategy.entry("Long", strategy.long, qty=1)

// Set profit targets
strategy.exit("ProfitTarget2", from_entry="Long", limit=topBandTarget)

// Set stop loss
strategy.exit("StopLoss", stop=stopLossPrice)

// Plot Bollinger Bands with the same gray color
plot(upper, color=color.gray, title="Upper Bollinger Band")
plot(lower, color=color.gray, title="Lower Bollinger Band")