Supertrend combinado com estratégia quantitativa de negociação RSI

Autora:ChaoZhang, Data: 2024-01-31 17:19:28
Tags:

img

Resumo

A estratégia é denominada Dual-drive Strategy. A ideia principal é combinar a Supertrend e o RSI, que são dois indicadores técnicos poderosos, a fim de dar pleno jogo às suas respectivas vantagens e alcançar um excelente desempenho quantitativo de negociação.

Estratégia lógica

O núcleo da estratégia usa a função Change para determinar a mudança de direção do indicador Supertrend para gerar sinais de negociação.

Ao mesmo tempo, o indicador RSI é introduzido para ajudar a determinar quando fechar as posições. Quando o RSI atravessa a linha de sobrecompra definida, as posições longas serão fechadas; quando o RSI atravessa a linha de sobrevenda definida, as posições curtas serão fechadas. Desta forma, o RSI ajuda a determinar pontos de stop loss razoáveis para bloquear lucros.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. O Supertrend é bom em identificar mudanças de tendência de mercado para entradas longas e curtas precisas.

  2. O RSI se destaca na localização de pontos de viragem sobrecarregados para ajudar a obter lucros razoáveis e parar as perdas.

  3. Os dois complementam-se mutuamente com pontos fortes combinados para uma melhor captura de oportunidades e ganhos mais constantes.

  4. A lógica da estratégia é simples e limpa para fácil compreensão e acompanhamento, mesmo para investidores menos experientes.

  5. Implementação robusta com reduções controladas e rentabilidade estável.

Análise de riscos

Apesar de ter esses méritos, existem alguns riscos com a Estratégia Dual-Drive:

  1. Os sinais errados podem ocorrer com Supertrend e RSI levando a perdas desnecessárias.

  2. A negociação bidireccional com riscos mais elevados exige regras mais rigorosas de gestão de fundos e controlo de riscos.

  3. O stop loss pode falhar com oscilações anormais de preços usando backups para controlar riscos.

  4. A Supertrend é sensível a parâmetros que exigem ajustamentos para diferentes mercados.

Orientações de otimização

Tendo em conta os riscos, podem ser realizadas otimizações nos seguintes aspectos:

  1. Adição de Volume, MACD para filtragem de sinal adicional e entrada mais precisa.

  2. Configuração de stop loss dinâmicos para reagir a eventos de risco.

  3. Otimizar os parâmetros do Supertrend e do RSI para melhor adaptar-se aos diferentes mercados.

  4. Introdução do aprendizado de máquina para a selecção de parâmetros e indicadores.

  5. Aplicação de derivados como futuros e opções para cobrir riscos.

  6. Regras variáveis de dimensionamento das posições para limitar perdas e retiradas.

Resumo

A estratégia de dupla direção combina efetivamente a Supertrend e o RSI para capturar a tendência e obter lucros eficientes. Em comparação com as estratégias de indicador único, ela fornece sinais mais confiáveis, reduções menores e desempenho estável do algoritmo de negociação.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © alorse

//@version=5
strategy("Supertrend + RSI Strategy [Alose]", overlay=true )

stGroup = 'Supertrend'
atrPeriod = input(10, "ATR Length", group=stGroup)
factor = input.float(3.0, "Factor", step = 0.01, group=stGroup)

[_, direction] = ta.supertrend(factor, atrPeriod)

// RSI
rsiGroup = 'RSI'
src = input(title='Source', defval=close, group=rsiGroup)
lenRSI = input.int(14, title='Length', minval=1, group=rsiGroup)
RSI = ta.rsi(src, lenRSI)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
RSIoverbought = input.int(72, title='Exit Long', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses up this point.')
RSIoversold = input.int(28, title='Exit Short', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses below this point.')


entryLong = ta.change(direction) < 0
exitLong = RSI > RSIoverbought or ta.change(direction) > 0

entryShort = ta.change(direction) > 0
exitShort = RSI < RSIoversold or ta.change(direction) < 0

if showLong
    strategy.entry("Long", strategy.long, when=entryLong)
    strategy.close("Long", when=exitLong)

if showShort
    strategy.entry("Short", strategy.short, when=entryShort)
    strategy.close("Short", when=exitShort)


Mais.