Padrão otimista da estratégia RSI e RSI suavizado


Data de criação: 2024-03-01 12:11:58 última modificação: 2024-03-01 12:11:58
cópia: 0 Cliques: 739
1
focar em
1617
Seguidores

Padrão otimista da estratégia RSI e RSI suavizado

Visão geral

A estratégia busca oportunidades de compra em pontos baixos de preços através da combinação do indicador RSI com o indicador RSI liso. Quando o indicador RSI é inovador e o preço não é inovador, é considerado um sinal de diversificação de múltiplos eixos. A combinação do RSI liso com o julgamento de tendências pode aumentar a eficácia da estratégia.

Princípio da estratégia

  1. Calcule o indicador RSI com um parâmetro de 14 dias.
  2. Calcule o RSI de suavização para obter o efeito de suavização através de uma média WMA dupla.
  3. O RSI está abaixo de 30, ou seja, está superado.
  4. O RSI de suavidade é inferior a 35 e é mais orientado.
  5. O RSI é definido como sendo o valor mais baixo de um indicador de risco (RSI) inferior a 25.
  6. Calcular a estratificação do RSI, ou seja, procurar situações em que o RSI é inovador e o preço não é inovador.
  7. Para calcular o ciclo de queda do RSI suave, é necessário atingir 3 dias.
  8. Quando todas as condições acima são satisfeitas, um sinal de compra é gerado.
  9. Configure as condições de suspensão e parada.

A estratégia baseia-se principalmente na inversão do indicador RSI, combinada com a tendência de arbitragem do RSI para suavizar, comprando quando o RSI está sob pressão e vendendo.

Análise de vantagens estratégicas

  1. A combinação de dois indicadores RSI aumenta a eficácia da estratégia.
  2. A inversão do RSI tem uma vantagem de probabilidade.
  3. A suavização do RSI pode ajudar a evitar falsas reversões.
  4. A lógica completa de stop-loss para limitar o risco.

Análise de Riscos

  1. A probabilidade de uma reversão do RSI não pode ser totalmente evitada.
  2. O indicador RSI está atrasado e pode ter perdido o melhor momento para comprar.
  3. O ponto de parada é muito relaxado, o risco de expansão dos prejuízos.

Pode-se ajustar os parâmetros do RSI para otimizar o tempo de compra. Reduzir adequadamente o intervalo de parada e acelerar a velocidade de parada. Combinado com outros indicadores para determinar o risco de tendência, reduzir a probabilidade de falsa reversão.

Direção de otimização

  1. Pode-se testar a eficácia do indicador RSI sob diferentes parâmetros.
  2. Otimizar o método de cálculo do RSI de suavização para melhorar a qualidade de suavização.
  3. Ajustar o ponto de parada e de perda para encontrar a melhor relação de risco/retorno.
  4. Aumentar a capacidade de discernimento, como indicadores de capacidade, para evitar situações de falta de capacidade.

A estratégia de negociação pode ser ainda mais eficaz através da adaptação dos parâmetros e da combinação de mais indicadores.

Resumir

O conjunto da estratégia é uma estratégia que utiliza a característica de inversão do RSI. Ao mesmo tempo em que a combinação de indicadores RSI duplos exerce plenamente o efeito de inversão do RSI, aumenta a incerteza causada pela divergência dos indicadores. O conjunto é uma estratégia de indicadores típica.

Código-fonte da estratégia
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 1m
basePeriod: 1m
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/
// © BigBitsIO

//@version=4
strategy(title="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", shorttitle="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.1, slippage=0)


TakeProfitPercent = input(3, title="Take Profit %", type=input.float, step=.25)
StopLossPercent = input(1.75, title="Stop Loss %", type=input.float, step=.25)

RSICurve = input(14, title="RSI Lookback Period", type=input.integer, step=1)
BuyBelowTargetPercent = input(0, title="Buy Below Lowest Low In RSI Divergence Lookback Target %", type=input.float, step=.05)
BuyBelowTargetSource = input(close, title="Source of Buy Below Target Price", type=input.source)
SRSICurve = input(10, title="Smoothed RSI Lookback Period", type=input.integer, step=1)
RSICurrentlyBelow = input(30, title="RSI Currently Below", type=input.integer, step=1)
RSIDivergenceLookback = input(25, title="RSI Divergence Lookback Period", type=input.integer, step=1)
RSILowestInDivergenceLookbackCurrentlyBelow  = input(25, title="RSI Lowest In Divergence Lookback Currently Below", type=input.integer, step=1)
RSISellAbove = input(65, title="RSI Sell Above", type=input.integer, step=1)
MinimumSRSIDownTrend = input(3, title="Minimum SRSI Downtrend Length", type=input.integer, step=1)
SRSICurrentlyBelow = input(35, title="Smoothed RSI Currently Below", type=input.integer, step=1)

PlotTarget = input(false, title="Plot Target")


RSI = rsi(close, RSICurve)
SRSI = wma(2*wma(RSI, SRSICurve/2)-wma(RSI, SRSICurve), round(sqrt(SRSICurve))) // Hull moving average

SRSITrendDownLength = 0
if (SRSI < SRSI[1])
    SRSITrendDownLength := SRSITrendDownLength[1] + 1

// Strategy Specific
ProfitTarget = (close * (TakeProfitPercent / 100)) / syminfo.mintick
LossTarget = (close * (StopLossPercent / 100)) / syminfo.mintick
BuyBelowTarget = BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] - (BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] * (BuyBelowTargetPercent / 100))

plot(PlotTarget ? BuyBelowTarget : na)



bool IsABuy = RSI < RSICurrentlyBelow and SRSI < SRSICurrentlyBelow and lowest(SRSI, RSIDivergenceLookback) < RSILowestInDivergenceLookbackCurrentlyBelow and BuyBelowTargetSource < BuyBelowTarget and SRSITrendDownLength >= MinimumSRSIDownTrend and RSI > lowest(RSI, RSIDivergenceLookback)
bool IsASell = RSI > RSISellAbove

if IsABuy
    strategy.entry("Positive Trend", true) // buy by market
    strategy.exit("Take Profit or Stop Loss", "Positive Trend", profit = ProfitTarget, loss = LossTarget)
if IsASell
    strategy.close("Positive Trend")