Divergência RSI multiperíodo e estratégia quantitativa de combinação de suporte e resistência

RSI
Data de criação: 2024-12-20 17:01:44 última modificação: 2024-12-20 17:01:44
cópia: 4 Cliques: 539
1
focar em
1617
Seguidores

Divergência RSI multiperíodo e estratégia quantitativa de combinação de suporte e resistência

Visão geral

A estratégia é um sistema de negociação quantitativa que combina o indicador técnico RSI, o desvio de preço e a resistência de suporte. A estratégia determina sinais de negociação identificando a relação de desvio entre o RSI e o preço e combinando a ruptura com a resistência de suporte, ao mesmo tempo em que integra mecanismos de parada e parada para controlar o risco.

Princípio da estratégia

A estratégia é baseada nos seguintes componentes principais:

  1. Calculo do indicador RSI: o indicador de fraqueza relativa de 14 ciclos (RSI) é usado para medir a dinâmica dos preços
  2. Identificação de pontos de resistência de suporte: determinação de níveis críticos de preços através de preços máximos e mínimos de 50 ciclos
  3. O que é que ele disse?
    • Desvio do mercado: quando o preço é inovador baixo e o RSI não é inovador baixo, e o preço está acima do suporte
    • Desvio do mercado de baixa: quando o preço é alto e o RSI não é alto e o preço está abaixo da resistência
  4. Gestão de Riscos:
    • Stop loss de 1% após a entrada
    • Estabelecer um objetivo de 2% de suspensão

Vantagens estratégicas

  1. Mecanismo de confirmação múltipla: combinação de indicadores de dinâmica (RSI), forma de preço (deviação) e estrutura de mercado (resistência de suporte) para fornecer um sinal de negociação mais confiável
  2. Controle de risco perfeito: o mecanismo de parada de perda predefinido controla efetivamente o risco de cada transação
  3. Adaptabilidade: os parâmetros da estratégia podem ser ajustados de acordo com as diferentes condições do mercado
  4. Sinais claros: condições claras de negociação, fáceis de executar e de rastrear

Risco estratégico

  1. Risco de brechas falsas: sinais de brechas falsas podem ser frequentes no mercado de ativos
  2. Sensibilidade de parâmetros: o ciclo RSI, a escolha do ciclo de suporte e resistência tem maior influência no desempenho da estratégia
  3. Efeito de ponto de deslizamento: em um cenário rápido, o preço de transação real pode estar em desvio do preço de sinal
  4. Dependência do cenário de mercado: melhor desempenho em mercados com tendência evidente, enquanto pode produzir falsos sinais em mercados com turbulência

Direção de otimização da estratégia

  1. Optimização de quadros de tempo: pode ser adicionado um mecanismo de confirmação de vários quadros de tempo, aumentando a confiabilidade do sinal
  2. Optimização de Stop Loss: mecanismos de Stop Loss dinâmicos podem ser introduzidos, como o Stop Loss Tracking
  3. Introdução de filtros: adição de filtros como volume de transação, taxa de flutuação, para reduzir os falsos sinais
  4. Adaptação de parâmetros: desenvolvimento de mecanismos de adaptação de parâmetros que permitem que a estratégia ajuste automaticamente os parâmetros de acordo com as condições do mercado

Resumir

A estratégia, através da combinação de vários conceitos importantes da análise técnica, constrói um sistema de negociação relativamente completo. A vantagem da estratégia reside no mecanismo de confirmação múltipla e no controle perfeito do risco, mas também enfrenta o desafio da escolha de parâmetros e da dependência do ambiente de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-12-12 00:00:00
end: 2024-12-19 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Агрессивная стратегия с дивергенциями по RSI и уровнями поддержки/сопротивления", overlay=true)

// Параметры для RSI
rsiLength = input.int(14, title="Период для RSI", minval=1)   // Период для расчета RSI
rsiOverbought = input.int(70, title="Уровень перекупленности", minval=1, maxval=100)
rsiOversold = input.int(30, title="Уровень перепроданности", minval=1, maxval=100)

// Параметры для стоп-лосса и тейк-профита
stopLossPercent = input.float(1, title="Стоп-лосс (%)", minval=0.1) / 100
takeProfitPercent = input.float(2, title="Тейк-профит (%)", minval=0.1) / 100

// Период для уровней поддержки и сопротивления
supportResistanceLength = input.int(50, title="Период для уровней поддержки и сопротивления", minval=1)

// Рассчитываем RSI
rsi = ta.rsi(close, rsiLength)

// Рассчитываем уровни поддержки и сопротивления
support = ta.lowest(close, supportResistanceLength)  // Находим минимумы за период для поддержки
resistance = ta.highest(close, supportResistanceLength)  // Находим максимумы за период для сопротивления

// Определяем дивергенцию RSI с ценой
priceHigh = ta.highest(close, rsiLength)
priceLow = ta.lowest(close, rsiLength)
rsiHigh = ta.highest(rsi, rsiLength)
rsiLow = ta.lowest(rsi, rsiLength)

// Дивергенция на покупку (бычья): цена делает новый минимум, а RSI этого не делает
bullishDivergence = priceLow < priceLow[1] and rsiLow > rsiLow[1] and close > support

// Дивергенция на продажу (медвежья): цена делает новый максимум, а RSI этого не делает
bearishDivergence = priceHigh > priceHigh[1] and rsiHigh < rsiHigh[1] and close < resistance

// Отображаем уровни поддержки и сопротивления
plot(support, title="Поддержка", color=color.green, linewidth=2, style=plot.style_line)
plot(resistance, title="Сопротивление", color=color.red, linewidth=2, style=plot.style_line)

// Условия для покупки по бычьей дивергенции
if (bullishDivergence)
    strategy.entry("Long", strategy.long)
    stopLoss = close * (1 - stopLossPercent)   // Стоп-лосс
    takeProfit = close * (1 + takeProfitPercent) // Тейк-профит
    strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit)

// Условия для продажи по медвежьей дивергенции
if (bearishDivergence)
    strategy.entry("Short", strategy.short)
    stopLoss = close * (1 + stopLossPercent)   // Стоп-лосс для шорта
    takeProfit = close * (1 - takeProfitPercent) // Тейк-профит для шорта
    strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit)

// Отображаем RSI на отдельном графике
plot(rsi, title="RSI", color=color.blue, linewidth=2)
hline(rsiOverbought, "Перекупленность", color=color.red)
hline(rsiOversold, "Перепроданность", color=color.green)