O recurso está a ser carregado... Carregamento...

Supertendência de Dual Timeframe com sistema de otimização do RSI

Autora:ChaoZhang, Data: 2024-11-25 17:27:21
Tags:RSIATR

img

Resumo

Esta estratégia é um sistema de negociação de quadro de tempo duplo baseado no indicador SuperTrend e no RSI. Combina indicadores de análise técnica de 120 minutos e 15 minutos, usando o SuperTrend para capturar a direção da tendência de médio prazo, enquanto utiliza o RSI para lucro.

Princípios de estratégia

A lógica central é construída sobre vários elementos-chave:

  1. Utiliza o indicador SuperTrend de 120 minutos como principal ferramenta de determinação da tendência, com período ATR de 14 e fator de 3,42.
  2. Gerar sinais de negociação através de cruzamento de preços com a linha SuperTrend - cruzes ascendentes para entradas longas e cruzes descendentes para entradas curtas
  3. Emprega um indicador RSI de período de 15 minutos com período 5 como instrumento suplementar para as condições de sobrecompra/supervenda do mercado
  4. Fechar posições longas quando o RSI atingir a zona de sobrecompra (95) e posições curtas na zona de sobrevenda (5)
  5. Estabelece o nível de lucro de 30% calculado em relação ao preço médio de entrada

Vantagens da estratégia

  1. A combinação de vários intervalos de tempo melhora a confiabilidade do sinal e reduz os falsos sinais
  2. Parâmetros SuperTrend otimizados equilibram a sensibilidade à tendência evitando a negociação excessiva
  3. Os valores extremos rigorosos do RSI (5 e 95) garantem o encerramento da posição apenas em condições extremas
  4. O dimensionamento das posições utiliza uma percentagem fixa do capital próprio (35%), controlando eficazmente o risco, mantendo simultaneamente o potencial de lucro
  5. Fecha automaticamente as posições reversas antes de abrir novas, evitando a exposição simultânea longa e curta

Riscos estratégicos

  1. A abordagem de duplo prazo pode criar atrasos em mercados variados, exigindo a gestão da utilização
  2. Valores extremos rigorosos do RSI podem causar oportunidades perdidas de lucro
  3. O nível de take-profit de 30% é agressivo, levando potencialmente a saídas antecipadas em mercados voláteis
  4. A ausência de condições de stop-loss pode resultar em perdas significativas durante inversões súbitas da tendência
  5. O tamanho das posições de 35% é relativamente agressivo, criando um risco elevado durante a volatilidade extrema

Orientações de otimização

  1. Recomendar a inclusão de um mecanismo dinâmico de stop-loss, considerando as paradas de trailering baseadas no ATR
  2. Os limiares de sobrecompra/supervenda do RSI poderão ser ajustados para 10 e 90 para uma melhor adaptabilidade
  3. Indicadores de volume podem ser adicionados para confirmação do sinal
  4. Considerar o dimensionamento dinâmico das posições com base na volatilidade do mercado utilizando ATR ou indicadores de volatilidade
  5. Sugira adicionar filtros de força da tendência como DMI ou ADX para filtrar tendências fracas

Resumo

Trata-se de uma estratégia bem estruturada de seguimento de tendências com lógica clara. Combina diferentes indicadores técnicos de prazo para capturar tendências, mantendo o controle de risco. Embora haja espaço para otimização, o design geral se alinha com os princípios de negociação quantitativa. Os traders devem testar e otimizar os parâmetros antes da negociação ao vivo e ajustar o tamanho da posição de acordo com sua tolerância ao risco.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © felipemiransan

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Function for Supertrend
supertrend(_factor, _atrPeriod) =>
    [out, _] = ta.supertrend(_factor, _atrPeriod)
    out

// Supertrend Settings
factor = input.float(3.42, title="Supertrend Factor")
atrPeriod = input.int(14, title="ATR Period")
tf2 = input.timeframe("120", title="Supertrend Timeframe")

// RSI Settings
rsi_tf = input.timeframe("15", title="RSI Timeframe")
rsiLength = input.int(5, title="RSI Length")
rsiUpper = input.int(95, title="RSI Upper Limit")  
rsiLower = input.int(5, title="RSI Lower Limit")   

// RSI Timeframe
rsi_tf_value = request.security(syminfo.tickerid, rsi_tf, ta.rsi(close, rsiLength), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Supertrend Timeframe
supertrend_tf2 = request.security(syminfo.tickerid, tf2, supertrend(factor, atrPeriod), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Take Profit Settings (Percentage in relation to the average price)
takeProfitPercent = input.float(30, title="Take Profit", step=0.1) / 100

// Entry conditions based on price crossover with Supertrend Timeframe
longCondition = ta.crossover(close, supertrend_tf2) and barstate.isconfirmed
shortCondition = ta.crossunder(close, supertrend_tf2) and barstate.isconfirmed

// Execution of reversal orders with closing of previous position
if (longCondition)
    // Close a short position before opening a long position
    if (strategy.position_size < 0)
        strategy.close("Short", comment="Close Short for Long Entry")
    strategy.entry("Long", strategy.long)

if (shortCondition)
    // Close long position before opening short position
    if (strategy.position_size > 0)
        strategy.close("Long", comment="Close Long for Short Entry")
    strategy.entry("Short", strategy.short)

// Calculate take profit levels relative to the average entry price
if (strategy.position_size > 0)
    takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
    strategy.exit("Take Profit Long", "Long", limit=takeProfitLong)

if (strategy.position_size > 0 and (rsi_tf_value >= rsiUpper))
    strategy.close("Long", comment="RSI Take Profit Long")

if (strategy.position_size < 0)
    takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort)

if (strategy.position_size < 0 and (rsi_tf_value <= rsiLower))
    strategy.close("Short", comment="RSI Take Profit Short")

// Plot Supertrend timeframe with commit check to avoid repainting
plot(barstate.isconfirmed ? supertrend_tf2 : na, color=color.blue, title="Supertrend Timeframe (120 min)", linewidth=1)

// Plot RSI for visualization
plot(rsi_tf_value, "RSI", color=color.purple)
hline(rsiUpper, "RSI Upper", color=color.red)
hline(rsiLower, "RSI Lower", color=color.green)




Relacionados

Mais.