Estratégia de negociação de venda a descoberto quando a faixa de Bollinger cruza abaixo do preço com o RSI Callback

Autora:ChaoZhang, Data: 23-26-12-2023 12:08:44
Tags:

img

Resumo

Esta estratégia utiliza Bandas de Bollinger para determinar se o preço entrou na área de sobrecompra e combina o indicador RSI para identificar oportunidades de callback.

Princípios de negociação

A estratégia baseia-se nos seguintes princípios:

  1. Quando o preço de fechamento cruza acima da faixa superior de Bollinger, indica que o ativo entrou em território de sobrecompra e que é provável um callback.
  2. O indicador RSI determina efetivamente os níveis de sobrecompra/supervenda.
  3. Ir para curto quando o preço de fechamento cruzar abaixo da faixa superior
  4. A posição de fechamento quando o RSI retira-se da zona de sobrecompra ou se desencadeia o stop loss

Análise das vantagens

Vantagens desta estratégia:

  1. As bandas de Bollinger determinam os níveis de sobrecompra/supervenda com precisão, melhorando a taxa de sucesso das transações
  2. RSI filtra sinais falsos de ruptura, evitando perdas desnecessárias
  3. Relatório risco/recompensa elevado obtido através de um controlo eficaz do risco

Análise de riscos

Riscos desta estratégia:

  1. O preço pode continuar a subir após a quebra acima da faixa superior, levando a perdas adicionais.
  2. A redução do RSI deve ser efetuada em conformidade com o artigo 4.o, n.o 1, alínea a), do Regulamento (UE) n.o 575/2013.
  3. A posição curta unidireccional não deixa espaço para negociação em consolidação

Os riscos podem ser reduzidos ao mínimo:

  1. Ajuste adequado do stop loss para o stop out oportuno
  2. Adição de indicadores para confirmar o callback do RSI
  3. Utilização de médias móveis para determinar a consolidação

Orientações de otimização

Esta estratégia pode ser melhorada:

  1. Otimização dos parâmetros de Bollinger para mais ativos
  2. Ajuste fino dos parâmetros do RSI para melhores sinais
  3. Adicionar mais indicadores para identificar pontos de reversão da tendência
  4. Incorporar a lógica do comércio longo
  5. Implementar um stop loss dinâmico baseado na volatilidade

Conclusão

Em resumo, esta é uma estratégia típica de scalping curto rápido e sobrecomprado. Ele capitaliza as Bandas de Bollinger para entradas de negociação e o RSI para filtrar sinais. O risco é gerenciado através de uma colocação prudente de stop loss.


/*backtest
start: 2023-11-01 00:00:00
end: 2023-11-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule


strategy("Bollinger Band Below Price with RSI",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=70,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

//Bollinger Bands Indicator
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

// RSI inputs and calculations
lengthRSI = 14
RSI = ta.rsi(close, lengthRSI)



// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01

// Determine trail stop loss prices
//longStopPrice = 0.0
shortStopPrice = 0.0

//longStopPrice := if strategy.position_size > 0
    //stopValue = close * (1 - longTrailPerc)
    //math.max(stopValue, longStopPrice[1])
//else
    //0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999


//Entry and Exit
strategy.entry(id="short", direction=strategy.short, when=ta.crossover(close, upper) and RSI < 70 and timePeriod and notInTrade)

if (ta.crossover(upper, close) and RSI > 70 and timePeriod)
    strategy.exit(id='close', limit = shortStopPrice)











Mais.