Sistema de negociação de swing adaptável baseado em indicadores RSI duplos

RSI SL TP MM ATR RR
Data de criação: 2024-12-13 11:57:17 última modificação: 2024-12-13 11:57:17
cópia: 4 Cliques: 448
1
focar em
1617
Seguidores

Sistema de negociação de swing adaptável baseado em indicadores RSI duplos

Visão geral

A estratégia é um sistema de negociação auto-adaptável baseado em dois indicadores RSI (indicadores de força relativamente fracos). Combina indicadores RSI de diferentes períodos de tempo para identificar tendências de mercado e oportunidades de negociação e otimizar o desempenho de negociação por meio de mecanismos de gerenciamento de fundos e controle de risco. O núcleo da estratégia é aumentar a lucratividade, garantindo segurança de negociação, por meio de uma combinação sincronizada de RSI de múltiplos períodos.

Princípio da estratégia

A estratégia usa o indicador RSI de 7 ciclos como principal sinal de negociação, em combinação com o RSI diurno como filtro de tendência. Quando o RSI de curto prazo sobe abaixo de 40 e o RSI diurno é maior que 55, o sistema emite um sinal adicional. Se o preço cair abaixo do preço da primeira posição durante a posse, o sistema aumenta automaticamente a posição para reduzir o custo médio.

Vantagens estratégicas

  1. A combinação do RSI de vários períodos aumenta a confiabilidade do sinal
  2. Mecanismos de acumulação de depósitos adaptáveis para reduzir os custos de manutenção
  3. Um sistema de gestão de fundos perfeito que ajusta automaticamente as posições de acordo com as preferências de risco
  4. Proteção de stop loss fixo, controle rigoroso de risco em cada transação
  5. Consideração de custos de transação, mais em sintonia com o ambiente de transação real

Risco estratégico

  1. Indicadores de RSI podem produzir falsos sinais em mercados de alta volatilidade
  2. O mecanismo de adição de capital pode causar grandes perdas em um cenário de queda contínua.
  3. Percentagem fixa de stop loss pode ser muito conservadora em períodos de alta volatilidade
  4. Os custos de transação podem afetar significativamente os ganhos com a frequência de transações
  5. Implementação de estratégias de suporte de liquidez adequadas

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

  1. Introdução de um indicador de taxa de flutuação (como o ATR) para ajustar dinamicamente a posição de parada
  2. Aumentar o filtro de intensidade de tendência para reduzir os falsos sinais em mercados turbulentos
  3. Optimizar a lógica de aquisição de posições e fazer ajustes dinâmicos em função da volatilidade do mercado
  4. Adicionar sinais de confirmação de RSI para mais períodos de tempo
  5. Desenvolver um sistema de gestão de posições adaptável

Resumir

Trata-se de um sistema de negociação completo que combina análise técnica e gerenciamento de risco. Fornece sinais de negociação através da sinergia do RSI de vários períodos e controla o risco através de gerenciamento de fundos e mecanismos de parada. A estratégia é adequada para operar em mercados com tendências evidentes, mas precisa de otimização de parâmetros de acordo com as condições reais do mercado.

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

//@version=5
strategy("Dual RSI with Rebuy Logic + Capital, Commission, and Stop Loss", overlay=true)

// Parameter
rsi_length = input.int(7, title="RSI Length")
daily_rsi_length = input.int(7, title="Daily RSI Length")
capital = input.float(10000, title="Initial Capital", minval=0)  // Kapital
risk_per_trade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=1.0)  // Risikogröße in Prozent
commission = input.float(0.1, title="Commission (%)", minval=0, maxval=100)  // Kommission in Prozent
stop_loss_pct = input.float(5, title="Stop Loss (%)", minval=0.1, maxval=100)  // Stop-Loss in Prozent

// Ordergröße berechnen
risk_amount = capital * risk_per_trade
order_size = risk_amount / close  // Größe der Order basierend auf Risikogröße und Preis

// Daily RSI
day_rsi = request.security(syminfo.tickerid, "D", ta.rsi(close, daily_rsi_length), lookahead=barmerge.lookahead_on)

// RSI auf aktuellem Timeframe
rsi = ta.rsi(close, rsi_length)

// Kauf- und Verkaufsbedingungen
buy_condition = rsi[1] < 40 and rsi > rsi[1] and day_rsi > 55
sell_condition = rsi[1] > 60 and rsi < rsi[1]

// Variablen, um den Preis des ersten Kaufs zu speichern
var float first_buy_price = na
var bool is_position_open = false

// Kauf-Logik
if buy_condition
    if not is_position_open
        // Initiales Kaufsignal
        strategy.entry("Buy", strategy.long, qty=1)
        first_buy_price := close
        is_position_open := true
    else if close < first_buy_price
        // Rebuy-Signal, nur wenn Preis niedriger als erster Kaufpreis
        strategy.entry("Rebuy", strategy.long, qty=1)

// Verkaufs-Logik
if sell_condition and is_position_open
    strategy.close("Buy")
    strategy.close("Rebuy")
    first_buy_price := na  // Zurücksetzen des Kaufpreises
    is_position_open := false

// Stop-Loss-Bedingung
if is_position_open
    // Stop-Loss-Preis berechnen (5% unter dem Einstiegspreis)
    stop_loss_price = first_buy_price * (1 - stop_loss_pct / 100)
    
    // Stop-Loss für "Buy" und "Rebuy" festlegen
    strategy.exit("Stop Loss Buy", from_entry="Buy", stop=stop_loss_price)
    strategy.exit("Stop Loss Rebuy", from_entry="Rebuy", stop=stop_loss_price)

// Performance-Metriken berechnen (mit Kommission)
gross_profit = strategy.netprofit / capital * 100
commission_cost = commission / 100 * strategy.closedtrades
net_profit = gross_profit - commission_cost

// Debug-Plots
plot(first_buy_price, title="First Buy Price", color=color.blue, linewidth=1)
plotchar(buy_condition, title="Buy Condition", char='B', location=location.abovebar, color=color.green)
plotchar(sell_condition, title="Sell Condition", char='S', location=location.belowbar, color=color.red)

// Debugging für Performance