Estratégia de operação de choque RSI dinâmico


Data de criação: 2023-11-02 16:04:07 última modificação: 2023-11-02 16:04:07
cópia: 1 Cliques: 666
1
focar em
1617
Seguidores

Estratégia de operação de choque RSI dinâmico

Visão geral

Esta estratégia combina o suporte dinâmico/resistência e o indicador RSI relativamente forte, definindo o RSI acima do intervalo de compra e venda, e, ao romper o suporte dinâmico/resistência, julga se o RSI entrou na área de compra e venda acima do intervalo de compra e venda, gerando sinais de compra e venda.

Princípios

1. Ponto de suporte/resistência dinâmico

A função de segurança usa o preço de fechamento como um ponto de suporte / resistência dinâmico, gerando um sinal de negociação quando o preço quebra esse ponto dinâmico.

2. Indicadores do RSI

Calcule o aumento e a queda médios em um determinado período e, comparando os dois, crie o valor do RSI para determinar se está entrando em uma zona de sobrecompra ou sobrevenda.

3. sinais de negociação

Quando o preço quebra o ponto dinâmico, se o RSI não entrar na área de supera compra e supera venda, gera um sinal de compra/venda. Se estiver dentro, ignora o sinal produzido pela quebra.

4. Sinal de saída

A paridade ocorre quando o preço retorna ao seu ponto mais dinâmico, ou quando o RSI retorna à sua zona normal.

Análise de vantagens

  1. Utilize a dinâmica de suporte/resistência para determinar a direção da tendência e aumentar a probabilidade de lucro.

  2. O RSI filtra as falsas rupturas e evita a intromissão.

  3. Combina tendências e indicadores para diferentes situações.

  4. As regras são claras e fáceis de implementar.

Riscos e soluções

  1. Os bits dinâmicos podem ocorrer várias vezes em um teste de ruptura, causando sinais errados, e o filtro de amplitude de ruptura pode ser liberado adequadamente.

  2. Um único indicador RSI pode gerar erros de julgamento e outros indicadores podem ser introduzidos para filtragem de combinação.

  3. Em situações de turbulência, pode ocorrer a abertura de posições frequentes, com custos de negociação mais elevados, e a flexibilização apropriada do intervalo de valores normais do RSI pode reduzir a frequência de negociação.

  4. A configuração inadequada dos parâmetros pode levar a folhas vazias ou folhas confusas. Os parâmetros devem ser razoavelmente selecionados de acordo com as diferentes variedades.

Direção de otimização

  1. Otimizar automaticamente os parâmetros do RSI usando técnicas de aprendizagem de máquina.

  2. Aumentar a estratégia de stop loss para bloquear o lucro e reduzir os prejuízos.

  3. Filtragem combinada com mais indicadores para melhorar a estabilidade da estratégia.

  4. Aumentar os indicadores de volatilidade e reduzir as posições em situações de baixa volatilidade.

  5. Otimização de algoritmos de posicionamento para ajustar a dinâmica de posições para diferentes ambientes de mercado.

Resumir

Esta estratégia, combinada com o discernimento de tendências e filtragem de indicadores, permite identificar efetivamente a ruptura de preços perto dos níveis-chave e, com o risco controlado, obter lucros mais elevados. A estabilidade e adaptabilidade da estratégia pode ser ainda melhorada, permitindo obter ganhos estáveis em um mercado mais amplo, por meio de configurações de parâmetros mais otimizadas, aumento do stop loss e introdução de mais indicadores.

Código-fonte da estratégia
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = "timeframe 1")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "antipila")
cf = input(true, defval = true, title = "color filter")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period")
rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Level
level = request.security(syminfo.tickerid, tf, src[1])
plot(level, linewidth = 3, color = silver)

//RSI
uprsi = rma(max(change(close), 0), rsiperiod)
dnrsi = rma(-min(change(close), 0), rsiperiod)
rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi))

//Level Signals
ls = close > level and ap == false ? true : low > level ? true : false
up1 = strategy.position_size == 0 and ls and (close < open or cf == false)
exit1 = close < level and ap == false ? true : high < level ? true : false 

//RSI Signal

up2 = rsi < rsilimit and (close < open or cf == false)
exit2 = rsi > rsilimit and ls == false

//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]

if up1 or up2 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
    
if  (exit1 and rsi > rsilimit) or exit2
    strategy.close_all()