Sistema de otimização de estratégia de supertendência e RSI de ciclo de tempo duplo

RSI ATR
Data de criação: 2024-11-25 17:27:21 última modificação: 2024-11-25 17:27:21
cópia: 0 Cliques: 464
1
focar em
1617
Seguidores

Sistema de otimização de estratégia de supertendência e RSI de ciclo de tempo duplo

Visão geral

A estratégia é um sistema de negociação de dois períodos de tempo baseado no indicador SuperTrend e no indicador RSI. Combina dois períodos de tempo de 120 minutos e 15 minutos com indicadores de análise técnica para capturar a direção da tendência a médio prazo com o indicador SuperTrend, enquanto o indicador RSI é usado para lucrar.

Princípio da estratégia

A lógica central da estratégia baseia-se nos seguintes elementos-chave:

  1. Utiliza o indicador SuperTrend com um ciclo de 120 minutos como principal ferramenta de determinação de tendências, baseado no ATR de 14 ciclos, com um fator de 3,42
  2. Os sinais de negociação são definidos pela interseção dos preços com as linhas da SuperTrend, onde a travessia ascendente gera um sinal de cotação e a travessia descendente gera um sinal de cotação
  3. O indicador RSI com um ciclo de 15 minutos como ferramenta auxiliar, com um ciclo RSI de 5, para julgar se o mercado está quente ou frio demais
  4. Cancelar posições em cima quando o RSI atinge a zona de sobrecompra ((95)) e as posições em branco quando o RSI atinge a zona de sobrevenda ((5)
  5. Estabelecer um ponto de parada percentual de 30% em relação ao preço médio de abertura da posição

Vantagens estratégicas

  1. A combinação de múltiplos ciclos de tempo aumenta a confiabilidade do sinal e reduz o impacto de sinais falsos.
  2. O indicador de SuperTrend é moderadamente otimizado em termos de parâmetros, garantindo sensibilidade à tendência e evitando a negociação freqüente causada pela hipersensibilidade.
  3. A configuração de limites para o RSI é muito rigorosa (de 5 a 95) para garantir que a posição seja neutralizada somente em situações extremas e evitar a saída prematura.
  4. A gestão de fundos utiliza uma percentagem fixa do património líquido das contas (<35%) para controlar eficazmente os riscos e garantir a margem de lucro.
  5. A posição inversa é automaticamente liquidada antes da abertura de uma nova posição, evitando o risco de manter várias posições vazias ao mesmo tempo.

Risco estratégico

  1. A estratégia de duplo ciclo de tempo pode ter um efeito de atraso em mercados de turbulência, e é necessário tomar cuidado para controlar a retração.
  2. O RSI é muito rígido e pode fazer com que você perca algumas oportunidades de lucro
  3. 30% dos setores de stop-loss são mais agressivos, podendo ter terminado prematuramente em mercados mais voláteis
  4. A estratégia não estabelece condições de stop loss e pode suportar grandes perdas em caso de uma reversão súbita da tendência
  5. A correlação de 35% das posições é relativamente radical, sendo mais arriscada em momentos de forte volatilidade do mercado.

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

  1. Recomenda-se a adição de um mecanismo de stop loss dinâmico, podendo ser considerado o stop loss de rastreamento baseado no ATR
  2. Os limiares de sobrecompra e sobrevenda do RSI podem ser adequadamente amenizados, sendo recomendado um ajuste de 10 e 90, para melhorar a adaptabilidade da estratégia
  3. Indicadores de volume de transação podem ser adicionados como confirmação auxiliar, aumentando a confiabilidade do sinal
  4. Considere a possibilidade de ajustar dinamicamente a proporção de posições em função da volatilidade do mercado, usando o ATR ou o indicador de volatilidade
  5. Recomenda-se a adição de filtros de intensidade de tendência, como indicadores DMI ou ADX, para filtrar tendências fracas

Resumir

Esta é uma estratégia de acompanhamento de tendências de estrutura completa e lógica clara. Ao combinar indicadores técnicos de diferentes períodos de tempo, ao mesmo tempo em que controla as tendências, também presta atenção ao controle de risco. Embora ainda haja algum espaço para otimização, a ideia de design global está em conformidade com os princípios básicos da negociação quantitativa.

Código-fonte da estratégia
/*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)