Estratégia de negociação combinada de rompimento de bandas triplas de BB e indicador RSI


Data de criação: 2024-02-29 14:57:49 última modificação: 2024-02-29 14:57:49
cópia: 1 Cliques: 627
1
focar em
1617
Seguidores

Estratégia de negociação combinada de rompimento de bandas triplas de BB e indicador RSI

Visão geral

A estratégia gera um sinal de negociação através da combinação do uso do indicador das faixas de Brin e do indicador RSI, um índice relativamente fraco. Ela monitora se o preço de fechamento das três linhas de K está a subir ou a descer ao mesmo tempo, e combina o indicador de turnos e o indicador RSI para confirmar o sinal de negociação.

Princípio da estratégia

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

  1. Usar uma faixa de 20 de comprimento para considerar um sinal de negociação quando o preço fechar o caminho para cima ou para baixo
  2. Requer que três linhas de fechamento K sejam quebradas ao mesmo tempo para evitar falsas quebras
  3. Combinado com o indicador de engrenagem, o sinal de filtragem é VIP> 1.25 quando o forte supera compra, VIM> 1.25 quando o forte supera venda
  4. Combinado com o RSI para determinar se está a ser sobre comprado ou sobre vendido, acima do RSI de 70 considerações sobre o mercado de curto, abaixo do RSI de 30 considerações sobre o mercado de longo prazo
  5. Quando as condições acima são satisfeitas, gera um sinal de fazer mais ou fazer menos

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Triple bandas de BB filtrar falsas penetrações, garantindo a confiabilidade da penetração
  2. Indicadores de turnos para avaliar a força do mercado e evitar transações desfavoráveis
  3. O RSI determina áreas de sobrecompra e sobrevenda em combinação com o indicador de Brincadeiras
  4. Combinação de vários indicadores, avaliação integrada da situação do mercado, alta confiabilidade do sinal

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. O indicador da faixa de Brin é sensível a parâmetros e precisa de optimização do comprimento e do múltiplo de StdDev
  2. Os indicadores de turnos também são sensíveis aos parâmetros do ciclo e precisam de ajustes em diferentes mercados.
  3. O RSI é propenso a desvios e pode perder a tendência
  4. Se os três critérios não forem cumpridos, você não poderá entrar e perderá parte da oportunidade.

As medidas de controlo de riscos incluem:

  1. Parâmetros de otimização, tested Parâmetros com maior taxa de vitória
  2. Em combinação com outros indicadores, como filtros de volume de transação
  3. A lógica de julgamento dos indicadores deve ser adequadamente relaxada para evitar a perda de oportunidades

Direção de otimização

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

  1. Optimizar o comprimento do indicador de faixa de Bryn e o múltiplo de StdDev para encontrar o melhor parâmetro
  2. Otimização do ciclo dos indicadores de turbinas para melhor adaptá-los a diferentes mercados
  3. Adicionar outros indicadores de julgamento, como volume de transação, macd, etc., para enriquecer o sinal de diversidade
  4. Ajustar a lógica de julgamento dos indicadores para evitar que a divergência dos indicadores leve à impossibilidade de admissão
  5. Aumentar a estratégia de stop loss para controlar a perda máxima de uma única transação

Resumir

A estratégia usa vários indicadores para julgar, mas, ao mesmo tempo, garante a confiabilidade do sinal. Otimizando os parâmetros, enriquecendo a fonte de sinal, ajustando a lógica de julgamento e parando os prejuízos, pode aumentar ainda mais a estabilidade e a lucratividade da estratégia.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Noway0utstorm

//@version=5
strategy(title='RSI + BB  over 3 bar+--- vortex0.71.3  ', shorttitle='NoWaytruongphuthinh', format=format.price, precision=4,overlay = true)

length = input(20, title="Length")
mult = input(2.0, title="Multiplier")
source = close

basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)

upperBand = basis + dev
lowerBand = basis - dev

isClosedBar = ta.change(time("15"))

var bool closeAboveUpperBand = false
var bool closeBelowLowerBand = false


// Vortex Indicator Settings
period_ = input.int(14, title='Period', minval=2)

VMP = math.sum(math.abs(high - low[1]), period_)
VMM = math.sum(math.abs(low - high[1]), period_)
STR = math.sum(ta.atr(1), period_)
VIP = VMP / STR
VIM = VMM / STR

//
lengthrsi = input(14, title="RSI Length")
overboughtLevel = input(70, title="Overbought Level")
oversoldLevel = input(30, title="Oversold Level")

sourcersi = close
rsiValue = ta.rsi(sourcersi, lengthrsi)

shouldShort = rsiValue > overboughtLevel
shouldLong = rsiValue < oversoldLevel




if bool(isClosedBar[1]) and bool(isClosedBar[2]) and bool(isClosedBar[3])

    if close[1] > upperBand[1] and close[2] > upperBand[2] and close[3] > upperBand[3] and VIP > 1.25 and VIM < 0.7 and rsiValue > overboughtLevel
        strategy.entry("Short", strategy.short)
        closeAboveUpperBand := false  // Reset the condition when entering a new Short position
    if close[1] < lowerBand[1] and close[2] < lowerBand[2] and close[3] < lowerBand[3] and VIP < 0.7 and VIM > 1.25 and rsiValue < oversoldLevel
        strategy.entry("Long", strategy.long)
        closeBelowLowerBand := false  // Reset the condition when entering a new Long position



if strategy.position_size > 0  // Check if there is an open Long position
    closeAboveUpperBand := close > upperBand  // Update the condition based on close price
    if closeAboveUpperBand
        strategy.close("Long",disable_alert=true)  // Close the Long position if close price is above upper band

if strategy.position_size < 0  // Check if there is an open Short position
    closeBelowLowerBand := close < lowerBand  // Update the condition based on close price
    if closeBelowLowerBand
        strategy.close("Short",disable_alert=true)  // Close the Short position if close price is below lower band

// Plots
plot(basis, color=color.orange, title="Basis")
p1 = plot(upperBand, color=color.blue, title="Upper Band")
p2 = plot(lowerBand, color=color.blue, title="Lower Band")
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))