Estratégia de grade retangular RSI dinâmica


Data de criação: 2023-10-30 11:29:30 última modificação: 2023-10-30 11:29:30
cópia: 0 Cliques: 1022
1
focar em
1617
Seguidores

Estratégia de grade retangular RSI dinâmica

Visão geral

Esta estratégia é uma estratégia semelhante à Grid Bot, usada principalmente para negociação algorítmica. Ela usa uma Grid Grid dinâmica e desigual, baseada em volumes de negociação, e a Grid Grid é atualizada somente quando o RSI atende a determinadas condições. Ela também possui características de negociação de ruptura, ao contrário do Grid Bot comum (o Grid Bot típico é vendido quando a linha de grade mais alta é atingida, enquanto a estratégia é vendida quando a linha de grade mais baixa é atingida em determinadas condições).

Em poucas palavras, a estratégia atualiza a grelha para o preço máximo/mínimo baseado no volume de transação calculado para a fonte de dados que você deu (“src” na configuração) a cada vez que o RSI atravessa a linha de sinal de compra/venda. Ela gera uma linha de 5 intervalos equivalentes com base neste intervalo e usa a fonte de dados atual para determinar qual fonte de dados é a mais próxima.

Você pode configurar as configurações para o vazio, a fonte de dados, a duração do ciclo RSI e a linha de superaquecimento.

Princípio da estratégia

A lógica central da estratégia é:

  1. Utilize o indicador RSI para determinar o ponto de reversão da tendência, com a linha RSI atravessando o set de áreas de sobrecompra ou supervenda como sinal de confirmação.

  2. Quando o sinal de confirmação do RSI aparece, o preço mais alto e o preço mais baixo de um determinado período são registrados e definidos como o limite inferior da grade.

  3. O preço é dividido em cinco linhas de grelha, de acordo com o limite superior e inferior, para determinar em tempo real qual delas está mais próxima.

  4. Quando o preço quebra a linha acima da grelha, faça uma entrada mais; Quando o preço cai abaixo da linha abaixo da grelha, faça uma entrada em aberto.

  5. O uso de um modo de quebra de grelha, em vez de um modo comum de Grid Bot que toca na grelha, pode capturar melhor as rupturas de tendência.

  6. Ao fechar o dia de negociação, coloque todos os pedidos da pirâmide no mercado para evitar o risco do dia seguinte.

A estratégia é composta principalmente por:

  1. Configuração de parâmetros de entrada: incluindo a fonte de dados, parâmetros RSI, fazer mais opções de tomada de posição, etc.

  2. Calculação do indicador RSI: Calcule o indicador RSI e determine se ele está em sinal de passagem.

  3. Configuração de grelha dinâmica: Registre a faixa de preço e calcule a linha de grelha quando ocorre o sinal RSI.

  4. Determinação de sinais: detecta se o preço quebrou a grelha para cima ou para baixo e determina se há mais sinais de vazio.

  5. Gerenciamento de pedidos: emite um sinal de tomada de posição mais curta e coloca pedidos na pirâmide de liquidação antes do fechamento.

  6. Mapear interfaces: mostrar linhas de grade, fazer mais áreas de vazio, etc.

A estratégia é capaz de acompanhar a tendência de forma eficaz e ajustar a direção em tempo hábil em caso de reversão, através da atualização dinâmica da grelha, em combinação com a determinação de tendências e sinais de ruptura do indicador RSI. Posições limpas antes do fechamento controlam eficazmente o risco durante a noite.

Análise de vantagens

A estratégia tem as seguintes vantagens principais:

  1. Uma grade dinâmica é mais flexível e adapta-se às tendências do que uma grade fixa e imutável.

  2. A rede pode ser ajustada apenas quando o RSI confirma uma reversão de tendência, filtrando parte do sinal de ruído.

  3. O uso de sinais de ruptura, em vez de apenas sinais de toque, pode ser usado para capturar pontos de mudança de tendência com mais precisão.

  4. Para evitar o risco de grandes flutuações durante a noite e proteger os lucros, é necessário liquidar todas as posições antes do fechamento.

  5. O indicador RSI é um bom indicador de sobrecompra e sobrevenda, combinado com uma grelha dinâmica.

  6. O uso de uma modalidade de ruptura em vez de uma modalidade de retorno permite uma melhor chance de entrada no início da tendência.

  7. Ajustar o intervalo da grade e a proporção de volume de transação permite uma flexibilidade para ajustar o risco-benefício da estratégia.

  8. A interface gráfica mostra intuitivamente a distribuição da grade e as áreas de extração.

  9. A opção de abrir ou fechar um espaço de negociação para atender às necessidades de diferentes comerciantes.

  10. As regras são simples, claras, fáceis de entender e implementadas, adequadas para negociação algorítmica.

As vantagens acima permitem que a estratégia acompanhe automaticamente as tendências e, ao mesmo tempo, controle os riscos, o que a torna adequada para aplicações de negociação quantitativa no mercado real.

Análise de Riscos

A estratégia também apresenta alguns riscos potenciais que devem ser levados em conta:

  1. Pode haver risco de stop loss em grandes tendências de tremor. Pode-se afrouxar adequadamente o intervalo de stop loss ou suspender a estratégia durante o tremor.

  2. Pode ocorrer um grande salto noturno durante a noite, resultando em posições abertas maiores. Considere reduzir a proporção de posição para evitar esse risco.

  3. A configuração inadequada dos parâmetros pode causar frequência de negociação ou erros de sinal. Os parâmetros de otimização devem ser cuidadosamente testados.

  4. Quando as taxas de transação são mais elevadas, os lucros das transações na grelha podem ser repetidamente consumidos. O número de transações deve ser ajustado de acordo com o caso ou escolha uma bolsa com taxas mais baixas.

  5. O sinal de ruptura pode ocorrer um pouco mais tarde do que o ponto de reversão da tendência, e a amplitude de ruptura deve ser razoavelmente ajustada.

  6. A estratégia pode não funcionar bem durante a fase de equilíbrio do mercado de ações. Pode ser considerada em combinação com outros indicadores.

  7. É necessário ter fundos suficientes para suportar posições maiores e posições em pirâmide, caso contrário, o efeito não é bom. O posicionamento deve ser ajustado de acordo com a quantidade de fundos.

Resposta:

  1. Optimizar os parâmetros, reduzir a frequência de negociação e evitar o excesso de negociação.

  2. Combinando com indicadores de tendência, evite negociações em períodos de turbulência.

  3. Ajustar posições, reduzir a percentagem de transações individuais e controlar o risco.

  4. Testar diferentes parâmetros de amplitude de ruptura, equilibrando a pontualidade e a estabilidade.

  5. Pode-se considerar a combinação com outros indicadores para aproveitar mais informações do mercado.

  6. Aumentar o capital, expandir a posição e aumentar a margem de lucro.

A estratégia pode ser reduzida em alguns níveis de risco por meio de métodos como otimização de parâmetros, gerenciamento de risco e combinação com outras estratégias, permitindo que ela funcione de forma estável.

Direção de otimização

A estratégia pode ser melhorada em:

  1. Otimizar os parâmetros do RSI, testar diferentes comprimentos de ciclo do RSI e procurar a melhor combinação de parâmetros.

  2. Teste diferentes configurações de intervalo de grades para encontrar a grelha com o melhor risco-benefício.

  3. Tente combinar os sinais de filtragem de outros indicadores, como MACD, KD, etc., para melhorar a precisão.

  4. Desenvolver uma estratégia de parada de perda adaptável, ajustando dinamicamente a quantidade de parada de perda de acordo com a volatilidade do mercado.

  5. Aumentar as condições de abertura de posições, abrindo apenas quando a tendência é suficientemente clara para evitar ser apanhado.

  6. Otimizar o feedback, testar dados por períodos mais longos e avaliar a estabilidade dos parâmetros.

  7. Tente otimizar parâmetros dinâmicos baseados em aprendizado de máquina para adaptar as estratégias a diferentes cenários de mercado.

  8. Explorar estratégias de combinação de opções para cobrir o risco de posições de opções.

  9. Adaptar a estratégia de otimização de parâmetros de acordo com as características da situação atual para manter a eficácia da estratégia.

  10. Desenvolvimento de uma plataforma de otimização de estratégias gráficas para auxiliar testes de otimização rápida.

Otimizando os parâmetros da automação, combinando estratégias e introduzindo mais informações de mercado, a estratégia pode obter melhor estabilidade e rentabilidade, tornando-se uma estratégia de negociação quantitativa verdadeiramente confiável.

Resumir

Em geral, a estratégia de grade rectangular do RSI usa o indicador RSI para determinar os sinais de confirmação de reversão de tendência, configura uma grade dinâmica de intervalos de preço, negocia quando a linha da grade é quebrada e se esvazia completamente durante o dia, formando uma estratégia de negociação de algoritmo de acompanhamento de tendência flexível. Em comparação com a estratégia de grade fixa, ela pode se adaptar melhor às mudanças no mercado.

A estratégia tem algumas vantagens, incluindo a combinação de tendências de avaliação do indicador RSI, adaptação da grelha dinâmica, negociação de padrão de ruptura e posição livre completa do dia. Isso permite que ele possa acompanhar a tendência de forma eficaz e controlar o risco. Mas a estratégia também tem alguns riscos potenciais a serem considerados, como o risco de parada de perda sob a tendência de choque, o risco de voo durante a noite.

A estratégia também possui muitas direções de otimização, que podem ser otimizadas para uma estratégia de negociação algorítmica mais estável e lucrativa por meio da introdução de mais indicadores, parâmetros de otimização de aprendizado de máquina e plataformas de feedback gráfico. Em geral, a estratégia fornece uma estrutura de algoritmos de rastreamento de tendências confiável e fácil de operar para negociação quantitativa.

Código-fonte da estratégia
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
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/
// © wbburgin

//@version=5
// strategy("RSI Box Strategy (pseudo-Grid Bot)", overlay=true, initial_capital = 10000, 
//  default_qty_type = strategy.percent_of_equity, default_qty_value = 1, pyramiding = 33, commission_value=0.10)

src = input.source(close,"Source")
rsiLength = input.int(14,"RSI Length")
oblvl = input.int(70,"Overbought Level")
oslvl = input.int(30,"Oversold Level")
useShorts = input.bool(false,"Use Shorts",inline="B")
showGrid = input.bool(false,"Show Grid",inline="B")

rsi = ta.rsi(src,rsiLength)

rsi_crossdn = ta.crossunder(rsi,oblvl)
rsi_crossup = ta.crossover(rsi,oslvl)

highest = ta.vwma(ta.highest(src,rsiLength),rsiLength)
lowest = ta.vwma(ta.lowest(src,rsiLength), rsiLength)

gridTop = ta.valuewhen(rsi_crossdn,highest,0)
gridBottom = ta.valuewhen(rsi_crossup,lowest,0)
gridMiddle = math.avg(gridTop,gridBottom)
gridMidTop = math.avg(gridMiddle,gridTop)
gridMidBottom = math.avg(gridMiddle,gridBottom)

diff1 = math.abs(src - gridTop)
diff2 = math.abs(src - gridBottom)
diff3 = math.abs(src - gridMiddle)
diff4 = math.abs(src - gridMidTop)
diff5 = math.abs(src - gridMidBottom)

minDiff = math.min(diff1, diff2, diff3, diff4, diff5)

// Determine which line is the closest
float closestLine = na
if minDiff == diff1
    closestLine := gridTop
else if minDiff == diff2
    closestLine := gridBottom
else if minDiff == diff3
    closestLine := gridMiddle
else if minDiff == diff4
    closestLine := gridMidTop
else if minDiff == diff5
    closestLine := gridMidBottom

buyCrosses = ta.crossover(src,gridTop) or ta.crossover(src,gridBottom) or ta.crossover(src,gridMiddle) or ta.crossover(src,gridMidTop) or ta.crossover(src,gridMidBottom)
sellCrosses= ta.crossunder(src,gridTop) or ta.crossunder(src,gridBottom) or ta.crossunder(src,gridMiddle) or ta.crossunder(src,gridMidTop) or ta.crossunder(src,gridMidBottom)

condition_bull = buyCrosses
condition_bear = sellCrosses

var float bull_status_line = na
var float bear_status_line = na
var float bull_buy_line = na
var float bear_sell_line = na

if condition_bull
    bull_status_line := closestLine
if condition_bear
    bear_status_line := closestLine

if bull_status_line == gridBottom
    bull_buy_line := gridMidBottom
if bull_status_line == gridMidBottom
    bull_buy_line := gridMiddle
if bull_status_line == gridMiddle
    bull_buy_line := gridMidTop
if bull_status_line == gridMidTop
    bull_buy_line := gridTop

if bear_status_line == gridTop
    bear_sell_line := gridMidTop
if bear_status_line == gridMidTop
    bear_sell_line := gridMiddle
if bear_status_line == gridMiddle
    bear_sell_line := gridMidBottom
if bear_status_line == gridMidBottom
    bear_sell_line := gridBottom

l = ta.crossover(src,bull_buy_line)
s = ta.crossunder(src,bear_sell_line)

if l
    strategy.entry("Long",strategy.long)
if s
    strategy.close("Long")
    if useShorts
        strategy.entry("Short",strategy.short)

// Plotting
in_buy = ta.barssince(l) < ta.barssince(s)
u=plot(bull_buy_line,color=na,title="Buy Plot")
d=plot(bear_sell_line,color=na,title="Sell Plot")

plot(not showGrid?na:gridBottom,color=color.new(color.white,75),title="Grid Line -2")
plot(not showGrid?na:gridMidBottom,color=color.new(color.white,75),title="Grid Line -1")
plot(not showGrid?na:gridMiddle,color=color.new(color.white,75),title="Grid Line 0")
plot(not showGrid?na:gridMidTop,color=color.new(color.white,75),title="Grid Line 1")
plot(not showGrid?na:gridTop,color=color.new(color.white,75),title="Grid Line 2")


fill(u,d,color=in_buy ? color.new(color.lime,75) : color.new(color.red,75))