Tendência de stop loss dinâmica seguindo estratégia usando filtragem dupla RSI e MACD

RSI MACD SL (Stop Loss) TA (Technical Analysis)
Data de criação: 2025-02-20 16:50:43 última modificação: 2025-02-20 16:50:43
cópia: 0 Cliques: 289
2
focar em
319
Seguidores

Tendência de stop loss dinâmica seguindo estratégia usando filtragem dupla RSI e MACD Tendência de stop loss dinâmica seguindo estratégia usando filtragem dupla RSI e MACD

Visão geral

Esta estratégia é um sistema de acompanhamento de tendências baseado em MACD e RSI duplo indicador de filtragem, integrando um mecanismo de stop-loss dinâmico. A estratégia gera oportunidades de negociação principalmente através de sinais de cruzamento do MACD e usa o RSI como uma segunda confirmação, ao mesmo tempo em que introduz o percentual de stop-loss para controlar o risco. O núcleo da estratégia é aumentar a confiabilidade do sinal de negociação através do uso de indicadores técnicos em combinação e proteger os lucros com stop-loss dinâmico.

Princípio da estratégia

A estratégia usa o MACD (12 , 26 , 9) e o RSI (14) como principais indicadores. O sinal de entrada precisa atender simultaneamente a duas condições: fazer o MACD Gold Fork e o RSI quando estiver na área de oversold (default abaixo de 40) e fazer o MACD Dead Fork e o RSI quando estiver na área de overbought (default acima de 59). O sistema também define um stop loss dinâmico de 3%, que se desloca automaticamente para controlar o risco quando o preço se move na direção desfavorável acima da percentagem definida.

Vantagens estratégicas

  1. O filtro de duplo indicador aumenta a confiabilidade dos sinais de negociação e reduz os falsos.
  2. O mecanismo de stop loss dinâmico controla o risco de cada transação de forma eficaz.
  3. Os parâmetros da estratégia podem ser ajustados de forma flexível de acordo com as diferentes condições de mercado.
  4. A função de filtragem de tempo permite que as transações sejam executadas em um determinado período de tempo.
  5. A utilização de percentagens de capital em posições, favoráveis à gestão de fundos.

Risco estratégico

  1. A frequência de sinais de negociação em mercados turbulentos pode aumentar os custos de negociação.
  2. A perda de percentual fixa pode levar a liquidação prematura em mercados altamente voláteis.
  3. Como um indicador de atraso, o MACD pode perder importantes movimentos de preços em mercados rápidos.
  4. A definição do limiar do RSI precisa ser otimizada para diferentes mercados.
  5. Os custos de transação e os pontos de deslizamento podem afetar o desempenho real da estratégia.

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

  1. A introdução de um indicador de volatilidade para ajustar dinamicamente a percentagem de stop loss.
  2. Aumentar os filtros de intensidade de tendência para evitar o excesso de negociação em mercados em turbulência.
  3. Considere adicionar um stop loss móvel para proteger os lucros.
  4. Otimizar a configuração de parâmetros do RSI e do MACD para que sejam mais adaptados a diferentes ciclos de mercado.
  5. Aumentar a análise do volume de transações e aumentar a confiabilidade do sinal.

Resumir

Esta é uma estratégia de acompanhamento de tendências com uma estrutura completa e lógica clara. Usando a combinação de MACD e RSI, a qualidade do sinal de negociação é efetivamente aumentada. O projeto de stop loss dinâmico ajuda a controlar o risco, dando à estratégia boas características de gerenciamento de risco.

Código-fonte da estratégia
/*backtest
start: 2025-02-13 10:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © eagle916
//@version=5
strategy("EAG MACD + RSI Strategy",overlay=true, initial_capital = 300, default_qty_value = 10, default_qty_type = "percent_of_equity", commission_type=strategy.commission.percent, commission_value=0.1)


// Input para el RSI
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(59, title="RSI Overbought Level", minval=1, maxval=100)
rsi_oversold = input.int(40, title="RSI Oversold Level", minval=1, maxval=100)

// Input para el MACD
macd_length = input.int(12, title="MACD Length", minval=1)
macd_overbought = input.int(26, title="MACD Overbought Level", minval=1, maxval=100)
macd_signal = input.int(9, title="MACD Signal Level", minval=1, maxval=100)

// Input para el porcentaje de pérdida (stop loss)
stop_loss_percent = input.float(3.0, title="Porcentaje de Stop Loss (%)", minval=0.1, step=0.1)

// Calcular RSI
rsi_value = ta.rsi(close, rsi_length)

// Calcular MACD
[macdLine, signalLine, _] = ta.macd(close, macd_length, macd_overbought, macd_signal)
macd_crossup = ta.crossover(macdLine, signalLine)   // Cruce al alza del MACD
macd_crossdown = ta.crossunder(macdLine, signalLine) // Cruce a la baja del MACD

// Condiciones de compra y venta
buy_condition = macd_crossup and rsi_value <= rsi_oversold
sell_condition = macd_crossdown and rsi_value >= rsi_overbought


// Registrar precio de entrada
var float entry_price = na
if strategy.position_size == 0
    entry_price := na

// Mostrar señales de compra y venta en la gráfica principal
plotshape(series=buy_condition, title="Señal de Compra", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Compra debajo de la vela
plotshape(series=sell_condition, title="Señal de Venta", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Venta encima de la vela

// Órdenes de estrategia
if buy_condition 
    strategy.entry("Compra", strategy.long)
    entry_price := close
if sell_condition 
    strategy.entry("Venta", strategy.short)
    entry_price := close

// Calcular el precio de stop loss
long_stop_loss = entry_price * (1 - stop_loss_percent / 100)
short_stop_loss = entry_price * (1 + stop_loss_percent / 100)

// Cerrar posición si el precio va en contra el porcentaje definido por el usuario
if strategy.position_size > 0 and close < long_stop_loss
    strategy.close("Compra", comment="Stop Loss Compra")

if strategy.position_size < 0 and close > short_stop_loss
    strategy.close("Venta", comment="Stop Loss Venta")